devicely 2.0.8 → 2.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/devicely.js +1 -1
- package/lib/androidDeviceDetection.js +1 -1
- package/lib/appMappings.js +1 -1
- package/lib/deviceDetection.js +1 -1
- package/lib/devices.js +1 -1
- package/lib/doctor.js +1 -1
- package/lib/executor.js +1 -1
- package/lib/frontend/static/js/main.96600727.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/server.js +1 -1
- package/package.json +1 -1
- package/scripts/shell/android_device_control.sh +16 -5
- package/scripts/shell/connect_android_usb_multi_final.sh +16 -5
- package/scripts/shell/connect_android_wireless.sh +16 -5
- package/scripts/shell/connect_android_wireless_multi_final.sh +16 -5
- package/scripts/shell/connect_ios_usb_multi_final.sh +16 -5
- package/scripts/shell/connect_ios_wireless_multi_final.sh +16 -5
- package/scripts/shell/create_production_scripts.sh +16 -5
- package/scripts/shell/install_uiautomator2.sh +16 -5
- package/scripts/shell/ios_device_control.sh +16 -5
- package/scripts/shell/organize_project.sh +16 -5
- package/scripts/shell/pre-publish-check.sh +16 -5
- package/scripts/shell/publish-to-npm.sh +16 -5
- package/scripts/shell/publish.sh +16 -5
- package/scripts/shell/setup.sh +16 -5
- package/scripts/shell/start.sh +16 -5
- package/scripts/shell/sync-to-npm-package-final.sh +16 -5
- package/scripts/shell/sync-to-npm-package.sh +16 -5
- package/scripts/shell/test-local-package.sh +16 -5
- package/scripts/shell/verify-shell-protection.sh +16 -5
|
@@ -29,21 +29,32 @@ function decrypt(iv, content) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const encrypted = {
|
|
32
|
-
iv: '
|
|
33
|
-
content: '
|
|
32
|
+
iv: '86163e05c1c638696cb9d51f1aa4ce30',
|
|
33
|
+
content: 'f54a3a6a806711520211e20f28de15c04574945d6efce7131c3cf8284dee07b7474be21cbbda072d64c320192bea0e9b56b35a127b9ca555ff80ea72e9c79f7775b83d268f82b5cdc636c8a32c25968759734ffcd8c13d47509db710f7603381a05d26c3f3511ca7d27d214121a083c8e8cd86500acc6de62e265e49ba776dd5d69c6e24ef847b2eec6727efbba87a64531a41e8fa378c1d451d326da4d60b4454b96d4c222e72971218d24f4225579a02093f55fc5096825054c73b46a2ec697762cb1e43bac72bf6a869fb658e3d05715939175dd8db51d1612e7ac8105f139cc5c00c99f8e6fa5c42c5417dfbb46a1fbb6a4890a7e8e1aa9d1e3c01bbe7230981f072ad5cc603c623957f1ab5492e597b14e53646ce5524789e16feb12e79ef9b2eee08276ba4339bd8a3db27422d9a5a36dc28b1da40d93efd2a74f06a8ef7c80bfc521085db13d31ec087be14a81f9926690ac6fcf5f4fd72c5bf87c652fc83ddd5e09bb7639f27fa887284ecfbe8e7001d70043aa2a0ecc0d52123511f7a3cf3b79c6ff76471df21b12bd090fa86b023e16ac051d3c9e9281970e7d2288f189c1c108e992a22eb54761d8dbf40360682a1695e654d00a5bcf47391d6b2cb166dbf9d2eb698ff7c48cc2ce2b2287bf30e115fa2903522a8ce94daa6fe3fb2ac35dcd93f4eb8d1b682545a33b5203f2110cb13f50fda5a553e170bf953b3c47fbbcdc38dde36c3e9ae3e053b80c2ab98d4b1e67c743a84bbf0c9f00ac0f15b6d21489f9af9f19a7bffa5e86fac2fd01314389b34a8a8599e5072723f05760f58a6ecf0572ccd2625e2638e591a0b79558000f866b4f7b2ef777e6e4b22616dda6f2a5933f885dd318723acc8876bf02f62ae90b560ef0acd78331efa0327e7676e01e65596c3735f1dbe43a9539976b7cb7d464a9bd076f52f6e980e44eee3818a6d39ec3f71f8e023bafeb629aefa900a7b4381f9deafb116d8c2a205479a9454b3737027c33412729ceb8b663e20d03dbef018f04018c3ff71be015f1a887094537b6b4a6679f1a71b323e0c31d7e57e5ef01c064cabe60149169d1f61bf0a151b630ccbcd5244af3129359b608c837c2da9b4276f8fd92445f7a76e848e310aba09c9b3968fb3e24e04be6a52b987413d2b2cab125abc41c19a95362785b4c52aa9e09d32254db9577d9843c64a91d67152c112c205c1800e45acad865e911ea3806c67b3419fa3f8af7d940eb1b7c284006badad2f6d3f0faf54f6b8f17be528fef9354a00b5d54267a88b5e39c62e505ba19f6d29c288c62ab35d4b9ac369d7846cbc901c077afb9cf5079055c07a6a1fce3ad9d22746157aad7b1a9b83e640eb0c96a7e9c364ecb73ce7f22f0dac7c26f016659e3c47de9db495f9345bc4c1990fead6434c78e83b1b48dbc46c24b15d08a18d4c80e76892eddae09a188dc48ad002ed4e1ed011dbf890930a7e856b5b293087a17943010510b14019e34ea65a5c1de56162a8aa193ce619c58827df622896deefe84bff3a0989394e03f8124dea698a57a6294746482c728a69d66c7a0ca42bd4ae99e4e7b24fb5'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
37
|
const { execSync } = require('child_process');
|
|
38
38
|
|
|
39
|
-
//
|
|
39
|
+
// Get arguments passed to this wrapper (skip first two: node and script path)
|
|
40
|
+
const args = process.argv.slice(2);
|
|
41
|
+
|
|
42
|
+
// Create a temporary file for the decrypted script
|
|
43
|
+
const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
|
|
44
|
+
require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
|
|
45
|
+
|
|
46
|
+
// Execute the decrypted script with arguments
|
|
40
47
|
try {
|
|
41
|
-
execSync(
|
|
48
|
+
execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
|
|
42
49
|
stdio: 'inherit',
|
|
43
50
|
shell: '/bin/bash',
|
|
44
51
|
env: process.env
|
|
45
52
|
});
|
|
53
|
+
// Clean up temp file
|
|
54
|
+
require('fs').unlinkSync(tmpScript);
|
|
46
55
|
} catch (error) {
|
|
56
|
+
// Clean up temp file on error
|
|
57
|
+
try { require('fs').unlinkSync(tmpScript); } catch(e) {}
|
|
47
58
|
process.exit(error.status || 1);
|
|
48
59
|
}
|
|
49
|
-
"
|
|
60
|
+
"
|
|
@@ -29,21 +29,32 @@ function decrypt(iv, content) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const encrypted = {
|
|
32
|
-
iv: '
|
|
33
|
-
content: '
|
|
32
|
+
iv: '6d080db869a9b612a4ccf5ffa892aeaa',
|
|
33
|
+
content: '7643f1b71187134768541752cf34323f00ef61ee542e50956e876e4f2bcb1ba5ccbe7922a2c329be57b3d99013b3646a2f16dc6997344b84d99d68ed23b0f706966f98e122ac16bfb5b4569637f0880b5301d88b0f7f6c99686641d234e500e9d78815168fdbd7ec4c2b9524b40d54009074e03314826be56da685d804fc2019f8ce907876bd6ee9f27a81aad0788079c1b4695188ae20795756d3ef9bbdedcdd2af2b21bbf65adfc5714aff492cad6bc830ed431558e9b727777655a1f46e991617da45b2a8db4719b37c05458cf6e8321473ba134aa0bde2c595ab445e8dfb8f3e7c2eb60716a63a3949348bd06fe8698932df263f87806210f85e4077b8f2ae1cbcb166136f4275c1db0da850302c93a5770bce5f289c6f11b3a819be5e07cd4fc1bf8e171888d3c85fba925a2242545008490bce0845207450f68b50559632c58324186f8cec81d5d6b9808cbbeeda902374bad545600e843737f5327b3272529d11f052db5207a89b21ccf47810c4489dfb829b98936e6350dd4429fba946af92c5c6772a512bf633166bf0f3c03e3ea8f0b41c8713bc6a59ef9ee8e81efbe40c330faae084328577d6924e4578d78b832410acbad2a7aa05767516f0426ebe55646334fad5d6991bd04afc11a6c44e16923b3a056d7b8d6f5d8a23a67d6eb5ea85959f8e360d319f47360c2aa40d23c8bd7987263f10c270cf574f2c0830e89b912c3d59c2738a15b1caebeaa71fc0d88a0122ab799556dc9c252c9f326d3983fafb34867719a3cb2da90e13787a63992fb15d3526399e35b4fd4bb58359a2eae01e21f35ba55426944d96503e139dc129408e98d6307a4aac1af8efc9ad1faa3027cc05aca745dca47bb3814a264a2091bfec257db7f2ae7495ac2d8c2d7b5181a0bb134c960d912e2734b20f3341b70d9232e32c23090702261870bdead8617578aa920db6bb300d4f12e77c8d0e82a9a4d9f69f8dd3c3a54f91b3afa463cbb15119b60a9d7a085b08e5217161cc12995e417704ed037b6053867cf61625757350ecafb3962055c178dace98a805c8852dbe65251db18ab1b0966d5d7579df9cd413405ef2b655f5545fa712f7d6a24ee8bf96be7bceebc70a8c162d60dd36b0212ed88f4e9bc39a57d316c9a53f3bad6b6e04647d38e2a388fffff32687a4a9bb379f4696df3ef5e75dd45daa73d7fb0784f68fb16732854d11aad5e50c7a7b27e1483b2550970881fb9e64efbfa978b50ce7b655aa372b5a62eb0d3902758f1d4072017e3bbae32a0b769811251674fd4885c789296b315da5b53d5993feb1368ad6350d943c36e28936bc5a724f50391ff8245830ab66e5247d80688120baa091b81778c6a56cd03864c9082c4106569d1ec4917110a8123ffd427c49a0e5e3a34edcd129fe791d9136f981178aab5e5ffb24f9251cb374b5d3401d4f406cb30697d4240ac607f47cf78537a5df9a8f101af97e34e4e7540c016f7ff7bdca5eaac552d53a9a8da7c2342bd5d602e272961602667d267c3d8b97218419d0605d7698564b3dd94cb1c3639ef16fb67dd5b4b574ea55c5ec41f99c98e3b852c91bdf64be1a8a3fb5be9d2bc88d9de1291d2e3e7818c868168090402b2e7f51c2a46b80b084ca95ed8784e5371309c8dd54bf605b7712ea805e63e71a0c58366237fd3828acb5b36adf174fde6cfd5dce22c3d2e0b15a71fc6983093f736c77d12e4d08693699a81e7020e3761c161933ff9485d7632f77262fb97452956f504857336e7bd945d4c14d10baecd0c31344d1b7c1a82a0fde174163eb4458c08d30e513be6ce0d13007b914860a34032a58714e494d7a0a49de21db7c8305b22ba7aa8ceb63a2e197f69f8992636f83966977d82b1de7f7b6426da72b729d79899879a32f178d4264cdb7afaf80a8cb683e26ecf7050587c39f48022e80c786cac6ff37ad876d3996634a8dc6a7ccfb1fb7e6571538d57580f1ee1699617f9ef0635d990c81a764e8f3ff57a5459e793614f4f3623b4969b85c38ba73bbe86a33c3dc6dfe7ea187cc58b7671a79283a6fcfb6b775d8b2b3d1d6592d220f8a50df3b261b4800bf0953aed8204166b463aa8a438f6ede6a5f80e9cbc1d3db269e01e1f2363ff06a38a85ce092d0b6fdbe502d4269c5ecf25ca91c660d92d04ae2c1b1f2a86e6fbac092e6ffafd3d233c6657fba40ae97e2e516754c6798317dcc4084c62bc56646dda64d463e33abdba8011148cfa752c168abd62f036cc7325f252dd242fbc69c318012c5b8e0844400f14e9f6ee3f68e6a0b9aeb0e1260235355fd7e6d15f0f7a1d886473e8bf48b750f78b57a2dd48a8f2abb1977bfd758c34167c5f89ebdae12856c34223b950c22556c54d4b47bdd9c0112aaa88118a6afda2a7f9cbb4da6fb74b512deef398c7ffd86a4de16a76f188b36f6e62737e4cedd55108742efe830b971929d21893c2ede28d8830c39b698d2ba4220dbbcf96f1b33a136e7bffc8824e1d990d6593a706b9700f57421ef8bbf4e40969c1ed0c93421bd608710b29443d69995bbda13c59fc855129246b0fac4a03efc6b861952ff9b1667d1dc695c4f1c3e4dafbac78531b9b0aeb17f8a65ad782072d9b93a94f984cc0c82cec3393a1ee4f4fd530c8196cdfe9f723a0494636c783ff07f011b8eaeeb52829dc0cd2bad9d76d03b5050c5bb79cf77ad3767bdd78c69647b6203cdd8a90b5185a72a923f67f24ced2a28f209a8e2ef7b3da2c28a5209fce7d858ff228dd40ecf27093c757eb80409f618736dc6c1f68c2a4c0d23d3c44da9fdb7ce044e8eb898496fe547b04e02f167ee4bb1e2142ddd6447a55e63158d9677924b92d00fbffd8435b8dc309cb5d0cf624f94385e84769018d988edff1c086048447015cfec9e0aee001a9da728e08d737ac2414651c9aaf88208e8f2252521e8e0f08be3f05db459ccca49b31d61f4aeb9451804ff5dc1e96503cc42b19f447a83f81ca5bab84902b692b646b0ea81acb8627a496c054758682fee1e3e83919c60c66b0d3b5db2403fb33cea62443a2f83677523f0e57518bd2cbc886a7e2e1b2d93d6c61b967aad8ac1127b95049658338b24901647b85024810d5d93e48d6a6f0e7c31f7040e9baffaf97956ff2fc1d6d38db715f2939d3609d5135f9edc41e40a69d6cd96c52e5378c70b1800d2943c8253bdabd3b5cbd0d0d0c9dd8b3b7684cd0d38d7d5535e3c87b51204078a26c3e556c1698b0faf06186278d687be99704509f33b67c073f4b01b53f7779b9c07ba11e409c9a513e5bd0f1e776dd9a8583e49624186128236b91add47287005ea0bb9c65626f97d9e7e8232ca5a35fd205022caa0ca6816651fd34410d8b97ff8cb1a5c7025e68866865ea658b64b6cdd479d8f0cb29761d4d300ebc692103b56dee61de54ea84b59cccf9f7a4d6150eb0c03496f7b6f85447be9982c6b47e84885834b2d3ccaab0566b9206818227fabab00a84c3d133eb26b1c45855957e308dabc0651bca3c181cee0a19b3952759d02fc09424392ea3af418923cc16c49765ccd164b1591a2595aa65279b6b013ba0047ab39658e50a2e9c8d83503f90c37fdac64cb17dbf0de582dfc766ef26994ec81a8694e331ebf43439ceab5d0654f86022da328141da39faad5c711fad9da6d46254c0e97b95bab59aac68c'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
37
|
const { execSync } = require('child_process');
|
|
38
38
|
|
|
39
|
-
//
|
|
39
|
+
// Get arguments passed to this wrapper (skip first two: node and script path)
|
|
40
|
+
const args = process.argv.slice(2);
|
|
41
|
+
|
|
42
|
+
// Create a temporary file for the decrypted script
|
|
43
|
+
const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
|
|
44
|
+
require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
|
|
45
|
+
|
|
46
|
+
// Execute the decrypted script with arguments
|
|
40
47
|
try {
|
|
41
|
-
execSync(
|
|
48
|
+
execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
|
|
42
49
|
stdio: 'inherit',
|
|
43
50
|
shell: '/bin/bash',
|
|
44
51
|
env: process.env
|
|
45
52
|
});
|
|
53
|
+
// Clean up temp file
|
|
54
|
+
require('fs').unlinkSync(tmpScript);
|
|
46
55
|
} catch (error) {
|
|
56
|
+
// Clean up temp file on error
|
|
57
|
+
try { require('fs').unlinkSync(tmpScript); } catch(e) {}
|
|
47
58
|
process.exit(error.status || 1);
|
|
48
59
|
}
|
|
49
|
-
"
|
|
60
|
+
"
|
|
@@ -29,21 +29,32 @@ function decrypt(iv, content) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const encrypted = {
|
|
32
|
-
iv: '
|
|
33
|
-
content: '9ab337a902075183d0b76a30672a6e0c31bace27bfd1263c609b5c7d4ac75f12ff4c9584b233623223ababbe9f55257fecd1c03d5409a43dd4b41a2137543a97ef24e726c0baac4323f502407b218618a334c7e8afd6fcde320f2e70c0fd8a7d74c81851655fa8e9426941489608acd218cd3025aeed109214bccdc8f5df6eeb029fcb9f6ac874865de81167a3dfe641eccaa86c3095b3a7e027eaa00187ec4b24ba28e3356d8f378a95713ad80128067e421168e4560b664ef61f03fdd2e3ea130d80f992a5a27c848e8e1d5ff864495031ea0c409f93f88fac33272fb5e94645fa07432bb43b7b93adc74e47a858bcb66ca91a18a6df53647770bb4562ea61f65023bb554973c80a5d35467a936778fcb24ac62af252dd1473fac9c07e5a9ab14a7cfe0ebf8a7b7e5d048f932e1ccb5a109227e44613062376c29a576ebbef9370c779fdf44536995a901721a90b50b5c5bc3572466bf812d5b68eb5da2731a862c9b6b1e831fcadfcb71af8db971cedcdf822364ef187011f60e1bc4b35dfc0cb5145626e9618a542d9cdb9815fa29f885a4c5eb17f07d5c48eba1444025e305284b2873046fb4456afa469cba261ad0230135b62eb876a2d99e34e17cd5e42e157e23bb17a9e1b1c98d15a77622fc510367cdc1bd303f48f30c3d510eaeff7e5433cd8430230419496c2b411bdcffccac74e78efa95705183be5424eb8e8a766fe723efdfff401be3ff26d61e94fcd307b284bc70e640220c256e93d236c1969401cafb4fffadb426593804769adfd1c92cfe366fd4dc94fcad3c914daec03f782c29bdd87f62306060e37c95a119d640be39a6e257dd969004f7bd4e5fa27830ba5fc46bbbf1f549d661c95506c2de9b9e2db3e66486e624b1a2af27311243ad939018eb673d4db463d626b8cfa42444608f4ceff825d7560e288bb3741c6e9b2399fb52f68cd3986a624bcfa2efd8d4287611747ff2a0ca4cb73fd139c8c5f180e7d0f5dae4ef75adb283af212ddb5acf1af364eaaf28a240a5911613e2cdb794ef960835d03cd53092fe66f5d8019f54f415d8b483fac4d16e9ccb7a8b28ef44e4a548f21cb3910608ed29ec884008284c27a05c2c94b584fb05656fdd13eee01f3f3fdf967b9939dacde6331e95048cfdff34aeee7f6e0dc5095b6c23d48a0fdd942d02ebcf9893774dc0f9f3fde49a77dd2e4cb2b44d226309fd50359f337123301cccf017f75a552980ff252f412ea21f40a5a8095beffe8887dd657a7ff2425a78007d6fb5c6fd2abd1d1f83706e20533ad7dfc876ae0592ae53c94c27336bce1dffb7e724269f625aa1eefec6eee097bc0f54416523eade19c335316989285d6ee8ffcf65e4362652b1636f95a86bbf993d1b3052e4e7c1c3e82574cf34b3dc972a64e17f74041e03ce3457c5616d904a3a433c2f571169fd133e69af98e7b4bacd792522415b461af0252897cf0a331063ab115f9e22277b0f2856bb65fa87eb0beb1e092fb961f76c011dbd70e26bb1165363c6b170ac0b7c2e1f3e1a7ec914fdb06f1d24e6bc9333c6924c7090db434f18483a8a844a4625175b54b53ae03af6eac68b8248f5d01ad9e54882426e74a1d0719aad4bae031a5ef10210d8ab3d6104e838a59ddb0ae967c481c1e1ae07d33d2a4fc977fec2f68fbccf4a24af97d99c0910a07e767b279079c53e981965605a5087a8ddf306b27fe35b5720b2fb4c2e7d29089ee3d222b37200badb8ebcd5888b22f4e29ff0fc932857f41cf30e9fdec8b03547ed2dbe233666ba32fae94b227798ddd5bf20daf08e96475c569a8d6dda1de1c5b5f630519729b0eed2db736a4f132a9efbe6d2e68a4aed5dd0f77cbc4d3649a4f857bba52a037b09627799ee16427f3901daff5bc6a98c080fc5c7754b6b35543d88052bddd53a5e1a8a84c3c38ae72b95f03990671791a55bc23a788b47f7b53ce5f590ce55b57c60c9c29cbe3d88566a30ab929cfa706b8f4f2b21cd7d4b4ac0ff96e10b5b448d356f9104856230ecea9820607c2b5b45fc6d33cd03b9c4870f29a8730207d90571960b7c0c8d74ff69e6c0f1810f8d88fa01f4d859ba432fcef90ffd74c5098c27b3b1fe1a3647709f99ab654f68203fe7fb6ae9254253485ebdba7bd96ce1fb13bfa9d481e3c07a2fede4c2afd2705ca3eebea62b42633e961d06d83d841cb3698bd492969318e248f5490ee29179d1d0ac35147cde02c1d8a5de12c687733e82477b8aa2eca7c0e9d086e50fdd50fb6f443680b612d781b46fe3f67c88a2a3cb401818e72334eba7226b841be4281d6b01af9c67c07520a1f26d4ee219b4547d4babd73d7a7948529178e2cdf5cd3c1e89280e5b418104573729e8d426a742ebb0ea76ec5bebfa150b1efd0a4e735329d0a4334c56cc515547d26395a3b7884fdd00b6b7f560623ffa2e9d91d1547ac9fc2a8b3629cce86fbddd02c0a17b626c542c60af29d2ebf8cc3a5533c586df5c5673cdf1d0a327ea21d01fe4fb6824b1b6759223ec1aca96c8ddf817eb619eed613092063e37c7886d1329eb9c4abae0aa2e0dadc9d9fb198c2647f80ea263564f7a6d305703dbea351e823ab9b7721e696bc2c26f792a5ed114c2957038e2636b8c115516e7772a633567738b110d941caf060fa466a52779d3f7b89e5d8e71b8a4fedb217cbc7970c2e2b6060239b9db12415307eed711da7082e8c62b43b8727cbdfc70326ca0c330d3eef304493b6d32e946e1f8476e38b5ac3fce3c67aee586ae69f946059087bd2b03423c3922010801924637cebc035880f925c4091bf1becff28aa7435a52ba0cef880350ff19bd902e12b353f26bd8f1a6e386df83663e026717958e1a45a72d8bfc672e1e5d66db539af59fb4b21adb6e2c362c43a839dea8972726311c03ba627219e72662c25f93a33b3e9acefea8905ff7dedc4d69fd9eb736123d76bfb2c4eaec0e612f0129d73cf877cfdb5c34d887a39c6aedf8bd94b7436c1cab29f39b449c70dc1629ed486b7b9cd81f289573f795a2697d2b240545e65c4132f63c64c6184f3f126f3c40419b922edd3f815dae4b5197c92987a1066e4b834a323fb57a88b29a502390651fd0f269d4f1d54fe2e7ca7a6fc981cc2a8b597d848c8635a501a9b04ccf33268922dd2a8b1673251f718698374ffcf47ac961ba8d1f5e1c6cd6596f62ed86ba1e6b1fd21d2bee5222cff4794fb0ef1040743f0c43d771265827a27f13331bb8598cf0a2b88daab6338cf23112a11f632e773e04236fbd5d6b482693b42227df6c05c0a676a9115ba3c028b5a2d3404e63ef5ce1f46c71682fb51b8db7794fd1c512e382f53c9e795b5c4e914706eb73530ec05e397efd6266c01fb8c743d0502063cdfde984c3a0ccd39c233b9bc4503ed119842702251325d0c987894db2d004beaa3c882b5cdc73b4aeff1f0b9d54f8635a72201ea6d665c3d370e5dc32955599e03f02e9652db85ac700b83717cd3ba064c08f475db6f9de6cfadc237cfa8805da76fc8e481dde4b73fc9a2c74dae78d6528a317d6818c7471098e2703bac4572b4d38ab996cfc7e428aa9d07cc5a5f36fc56449cf3ec058e2886946e1ddcdf2150701b1aea4f1a15de86a3278403684efff1574ad5402eda9e30729f7ff457ea9f08867412c2a45e5bec766a2f3da4a86756cab7a98d4d6a8c2f615398a9068085b6da1e72ed788ddf1117cdbbc7d9b09f494f11862f7a74eb86662845e1ee5034ec1c0f937daca390c9bc89c39493a12a650ec1d1db428915d8888048c9e7ba2a8f2a9def710fabc4c9c754a5badbfb5d0483585ba250560bfc4ae43f4db2794f3c07e8df3b6c6cef51c8778c85de8bc722ca018e82719efb1d12ce55d6ceceae9e05f8505eea4fc847ef840bdd9a3ba21ff32c7d3abc07aace9b10a042175d01d1486ca24bf699390382d9dc5ceb2e78525aca39aab43113af970c27179726bb234986f29d8bbeca8f893b597f27c221cb5b63705ac8a3a4821954194b16ce138b517d23651211f1f2319a8da479b6a59c82097b54bf057194cfc8c2955cbca4e3ac2929bc884e9ebec01009dc6ed89e643f054f5ca5ef07928d65fe4fc81ba586396837242249d89288f55b0469bbaee4cfd7db85afdc0138f5929629ea9fbc350fc7b80fa2ff0ff98d1514b2f9858f4908490338ebcfc618ff39ba0181c88f8dbb9eb1e611495e72bdcc1a867f226010904d81dac53d486964a390594b6b1a2809ee197b9b20f1200d4db59eed94afb0687f234ad6414758fc82199069b74dfa5265e54f8de7f0a770d62c39ad55df669f7dea11ff746359d7d509bdd0c9f455c72d6a92e4e39983b7e23b22ead3786a2449c9348ece0b8139b0c29bb61db344f9971f82bc2e473e3fcdc03be99a88a471407fad669f42547c189d7dfc927c7ebd107edb5c64cc7611a4ca730b9e8a0468b444c3a54afaf89f3bb831011c48c71db71fff348cf6776bd67fcffff41942964250ca2862a74fedb3ba7862bed50d1bb016a30b7ddc993015c5f7d11b736f299df230c6a8b9c29ae296f57b5e564806d2dc1bdc10c2141e93fee79e445c65dc7415fa5a61dc8b53b0d6b1eb4fe5d8b5d872b9940ea58acb0cec32efca6fded7afe31843f890717c1c9ce9738fd2863ccfdd466e0c37780aef43ea4aac4d06d2ab30fa3474963298d9fb00c7c3a718e3ea0d2feae97ab4c4583fba1c8c20e1360a4e558f73768f77a66274da506f949091b4b90e077077c053885a63be989c80ad83cbb3ba9194e84344af866ef001c6d32e899fa8731b71cef210cd7eaaa38adebb7488f8f256d5643934cf090cb81dcf100339eb79704d3c0fc556fe57925bc4b4959f78c3a796e5d3fc7a13f0b53f3e2a65a4e3f1e238f3692515a046dcc17c2458e2a11057ff923d6947caf56d8af7074f0a094dcdd84241c3a5f6387baf163f9b94fb98ea0adc31974e2ff782f26e2b7ffb9e19ad09e6515e99fa5e6e627dbbf662cb8e23bd23b1b6d352c3acaa57d06d500aa437dbc0538b112fcbe2faa61662dd412df72f11380ffcedb2d5509172d6854eb82c9930b075afd9825f684c038a4c367bf753a7d08fdf3c380abcd056f54def35ae05b2b97adcf2e15baa4157f5101e892aa17ba47d84ae8b350f03b083d31423b04de8fdcbaddf853d83281e8bb7c35b85eec8a849a3c0643fe58224e481667db6ecfbbed345423d56b351fbc1f6d9fd80fa57974e0d53bbfa5f4ad380ca0354831a6a2d6a56636eb0ed940b11b29cd8fc61cbdae1e00f63c9206bad34caaf034bd6edbb1d045f170e4df70f0357a5b8256a490e9dbed9d6f7556ff498c71871b5fa47990e30ab2bd21e78fd3c72523f0d9d3f3375f69278b925b15029c04c4069ca2fce858d831d79addcc632f7e3729f82bd66b6b0fa37d1b8c7a79c994314b39a645d9c92484d8f78262c2c92bdb2535718e20fe7449be27e72dff65996f2715f32af569cbc7f9baa4608ab41d8c18e4514517857c2e774205feb02b1713aeb1c2fb4fca0b1037bdb55d0a186a788f93593a416897619b02635e46f23b9bb167a02702a26840ef1d50387efd64aa2a08d1c92b346a41719b44a0c485a2bf88e85affe8135981e9e0a294c5146edac2c6ed34b85cf9bd1ce1178be4398fb78eb3d6b41c9100b83e78d7c8b3e866af9ca1ad973f18afbeaa879dbe2f9b15bebfc8f6df094b58b0b47198d0d8aa5bd6237706224d72faf53ab7e990d611be0e057ffed1f8e47371ad1f02090a5ea35f02c0ee1a8b892d55967e23b1c03ffe3932cda431691c7865ad15f722dab9f5bb72f493c9a3f50fd197ae376c728f5bdd4fcc42ba746d70f1a1c91b28cdaa52d2ed5c46b3e95817944e92c9659c9289b756297a90929a2714f9cf823af1d4b25ce1c8ca58eafe9c21c89d6959d2e41a97079e03aa0c23e99f7f0dd2bf637c21c8de2d49c1986a72f076b1617b0c936c71296d60dee50d5ceeccef0c2a6855c54acbab02c610a91ce8d5601f73607c076a88a2e7aa703cfb5ddb6050123afd66220840cc42cfb36b32daa2ed9caeaee7d28b4b3147ef2600c4b4d7623228106ff483b2fa8ad87aa2f441dc05c24e1f5563582495b11cbcca49f9e530e4824cc99a22fe8e9ff12f5e3137f34dd700bdedad619a5b3f5e099b96448bd47c56752e85053890323e4e2999140b4cf327edf6f1f12a7526d97e8af4172121075feeb7160873640b323a45c360b44cbe7730f2f2b77bdbc899c7ead994fff6787cfd624abdc851b1ebdaabe0e8b5e73c242db9f0b269be2a4939cdaf1cbdcedf0c632656967c8950a4845e77c04a36c6ab0a8a62ef76efc909e7ceae8ab1d3125a9e814d1ceff0f8a510c18f1b39863d47da73bb1a086f6bfc80b84cebc0354808ecac865cd37a4d3c1c1856956aef1e35f59c2a43a30347703b01f8af723a8c19e56c9213ae5c438c79055ccafac9dedf06d7b4b642e15ffcf10bef49306e2c11221b1548a9b97998f73a648ca251c468a6501a950217aca922b998194b025cea153705e32128455136d17767243dd9252dcb04ae4a12aa6e3fc1796563708582c936800bbb79308902c88b5284b43fecd2bcf5ebd344c03c8d2e97b1a045c4aff0c796203be59f468bed5902edb19bc274f0707db26b5a07557f471a8fcc68695c9e1da05fc0d20f2555314e0ffbf2b99f7bdc85201cf5db292a042cd4adb338861fecd2da6993e64ba9b3e8dfbc59e31989a809ad8ed95fcccb2ec4490621ab7bd4a5ca6bb2ec2497432108c367515b1c056c42ea94b3c968c29729d17828730db799aad886b9bfe7b6c8586c352f53564bd30d02678e36a8d686836fb51b229cf651fc393fb314d19025e977f19d009a634d86da6e3c364f28d6cc449e1b2b6bce17006c9fddad146beb38fcecbf02401b1dc3352ef6ef5eedfa5218cfe44039a518c6a460ae2ab74b55ea2cf2f6369811dea9d086ab434b6e499e229f56510cc27a7ac0731bb6e20ce1024c0342589a037f1020ef15fcb50333c9b5c861f644b0f91bc94ff23702ad173530bc23c759a9016716ac0e601e6e0421d48f17ebc7bc3a1fbf9c0a6d22812425a10a86b1c5053ccf4784fc51866cfdec3fb2d0bde3473f694f23736e09c944f080c6e0c333c77e66d24f20e6d23cafe7bc80f05b5f625b9375a4084214ffbd04380b0c5ac686ec602ad7d2dd129184aff0b6e3ef7aedd25a7f1c2aea10eec2404ddeddfc0a25ae83b2535f8508932e7f29da852f70e64cb65dab52ac705ca85bd9181e677b754d5a86f3aade48985ed2e2639346e72101ccdf1a2f1fddab73dd1b901a686a03479dd61b6ae5a80cc29d77223ca8d4d772532dea25b2bb0ba6b58e2266a7557451014306163fc96cf9cf1dae98c54307cb9a041becb0f6c610417c905a45c5be899619ae418feb385e2953b20bddffba5f4a5bdca396feaaeacc76b484859c120d021d7760bcf10bd484f12f26a4e72622bacdb6c864f102e2233ed2b101bd214e99f554b4d93aa39ecd08374eb53d19b3f9ecaa4baaf684be034725010e499226b400e50f7216777c39b18cb156eb8d4de64479ac8e47c4e4c9999af2d9643ac6ea1c6d0967d8a3f01dfddde7bf0583fa1f8c2f53bf425ac54f2718f2cfdf977f29927ceae7bff1f189c44a2e685ba958967c2f2e2c1f4af61eaef0b0418bdfeea13d97060030363b87e7088a5f47dab7a2c15794693d64e97f796889981830311ed3285f922154c618568eca2c4ed8d2bddba6397aeb91703da0bb65064ce702c87f9ceb8fd3cf44c20dba155a7a6bd5322e7774cd5cd89898d18ea3b490104949860be7cc2a346cb4ce57eb216ce85d15ebb369488226b4211cbf603db4200073d90ae78690e3e5dd2d83d5806d87b9493961790dff1c43c6ab2e4b776bb75ac80c54e2796ba5c79589365bd99c952d31bafee52a7a1afda23d466677bdc9e22df14de92e194e42031167cb624e87c8569e8f651c77d092c515b00ea29248be45279fe9229eb1ebf4b47f43a4c6c4dca0644d27540f7e42da78be66f244bcd332981f43eacac36aba18ac0ea8acdd805e0e576128d97a02f73225b60ab0df057fdf77e4a412cd2ab5f2eee4b00ad33bbbf2f2aa2356301ab89ec8b8405c98cb0b2b60272f6030cc0e58653c5e92bffd1da98ef254c8c2897b8f7a796e1a3936460b1ee65dd988e657e5c6390c33ff8b8c52423ec59f9fd23de14748bcf21dcb0243545b8572524b9baaae5e9e84de6201878f9e821a630e98cb0a5b7df3516e0a4a9056a1c5b543b5c69ca16f43b00cf6df2492d8f3ab05a7719a19320e82c5cc403d005b07ffdbde203e0b3ce20a70fc7709c844dcec70c98ccaecd10a2e53efabe3efd311e0de51288a0fc2304a9d3e416669644cd2558bb0d66a6c30aceafaace987c2e3a5b9170f1a43eb4fa7b14dc73e0590e1e2221683f1e5b1070054758403e30d1ef5e1d13017f4be209ef88d141275e85963d6d0aac3072f377558215e66afbb38a87424c8bda08ab64179a4f63e5449fe535e902a28a5d1a4d739c05e39bd82f47df25680cf6eac717625bdbc0ce6261309bdbaa0a2aed4f6bd82dffb32da2dff373df5049c8d7e86e8bf8d00126ca9560cc324e3749d4f5ffcf53efd7ad5b865dabe57dfd28ce3c9761fc832e9cf28a72e8fc47c890001db3d1b5e030ac1701f154ec4584917d29dd6b3c5cd732784c0defb0ce0540823b03e66de1b5a51a9afef958af4f476443994ebc9c0029b7744cd023d0b2017bf130303b860f7409b29213e6762cc3f66e47fe5a9c43930fab5683724f77b24bbc8564702b36f0df5e3837f99ab71650aafe25d872869d161d695159c3b270c7ec419f784e0f485c3b256e102dafb38892a83e1ae750c2c1a7eaaa7b251bc261571a154bdab1ce11daa7ffdfb83e614d27ec953c21194e993a34c7694340962b109645c3bc4976392c3d5ac29308aba585df1afaf9b85e9292b26f8ccdf61a505724928dd3d9a132ab0961f005946765d4a6f7b93137a451967ef48c234363cf879edd0cbed783e94343ab355f90ce10f8730eee42f5c1ab5c61bf4c560a184e4f06961db5b9b1c6df7be0b05b6067'
|
|
32
|
+
iv: '22b3335a375224316dcb0e33f5d25591',
|
|
33
|
+
content: '740eed8702c8ea16617a4fcde05639ecb3e3ce88de2db8c01bfb8ce2ba2b0d9ed8ba76376aa54ec5b2ce183467273ff743634be6ce023fa11414ad8bff00568df27218218644fe353a303d8c83b6af178d6b83e6629d4908f1b66f4bc181a0013c61a31ac7043ca15546b5195e8848d4ba7b6d11ba06b5cfa7211df7f2d12e243555722afaa07af8b3174755a9c1827d781df1b66338dc9c4a66289709de139131b8c31f355d3c0570a13ca283996d37c6457596396e3bb6a9785bcaccea6cbd1643ec495d3b2c8372bafbd506266e72ada46d4b00739ddf6fad51a17200ed4373de97317792f66334b3c41ae04420089037e6bc7f390d189bb915945df4ab82eccfe616b1494884facada1e6712db3e7d593fc936395e14b9a216090f94cd7a69faca5d7ae671a88918a5a8115db8c64f60f0f76cac90acd2bd85eeffbb8059cb996e98fe7a26e43a2be0b0c7061c3a252667e8a8ff0901b74da76a0a43dfbbb0560e9076b21016600acfe0a6a06a1d76e6ddf381cab020ca81bead9c280218b97d4a551421834056d84c3c2d6d7d49233f2046b4c9736ddce3a18f0d8ccfc4d3320c5cb9cac25067b16cb3ff07e94168bb931c4e3793514f76a3b718744a6a2b340263f03829672ec5777dc0f9ffc41d14882a6804bc26c8e282ea83d319cfd6839d2f254902191d9c5a6d22b152083075dede84b3dfd6f4497ba96da77c1f201af52b780208ba07cc4552991205f2c791481e732589a680cd5858b5cd3eb7d8b24dc13f877c305ac8431f126d0d6fc3ca026820a749b9f45814685aeaeee1b6f0af1cf476a878cd11f8cef4ff0bcefa0d7955e461f79eb2855fa802f74b88fddd69bc0f6801e995e2f43a27516dcab8dd3baec88a1809c8f1207a3589db219e2b4fa50992cd64b3e012c81ca0898d4811f631560cd74ef2ef017cad0453d95e8d58f48745dba7e0ec479b925572395d501a7f189059ab6e4c604f34e1dc3af18e85a5f7470d5e308ea15799f608d2b06660924539127e06c318d094da271600c978eccc84cf1f83e3f5fd18f1b168635d4e9b35774ce95e940a6b7fcda03628a969d6fc938a0031a3b505839f3aa698528da81933e9688ac56a8dbc2dac79334d74a85172c0e8a06a4d792225628fcf7a612aca31f23348864f0037f3d03b109bd0434b7d5d0fc5f4172debb3a8c2edc4ea47ac24b936a82c476233292c7e33bb098be81704513c34302cac6984ba0905efbe0cc65d88beefa65302ff67ecb329613b3200cc15813533204a65aec740b91e05f91b3eccf403fde67c58b8f7943c7156eb1c8d0632386bce28a95808c83fecbe304af76a0d35ca56ae80c0cd56cb41225931d299895ce405ee8d9c2952fb98aa957bfe42180a1c08fa345d8d860bdc8209626f3ff1601205a51a6d64daee700358517829c6e87a0709ec117aeb82de5eb3fc9be9b445a817294268d434298d6f1cb599f198a383fa20182be4dc80a6401b62e5353e20b211908366b1678bb38b0dfc568425625db33e089559a4cbfefe395ff8064929b7a6e935093524c4caeeb3510b6f8e710af05cc1abeaff778a11174e34b1421138c10e2de53c9a6d4ddca5f2f4b6f77c7b83f8066dbc3215f42c675a23776656d7fe313cfb097807728d414d6ebbf3d853a65dd00977c2be5e5db521e22d6e0cbb8b2c46ccad502904038c972f4397912bafbe933f756f550377c0756dc4c69d6f5b084c409b816e111b012e28c7d5131b26fbcbf4a7b066ed4c5618c760877fe62a9529ff0b9b0144cc30bfd1097cb9b964f82a47db58d3c5de36c565109ac3990151888d758040ff4711d3b7b5c69973d45ba253decbe295a3afa47d5a08071d70824f59be71ee2145c766cb25fd5114149b1d505b6597ff212d20df1160207a7fed1bf5cc99dee23377c2645ba585865255d6743a9b94f2c508c7406a37dee16148447c6ee27fd2df79f08328bd07762140069feaceb9be2923a0eb6922568346fa161f1b86e151a1f0d90d0170f4a79bda8c005b7bfb9705a14e6993234bf3c85bfec9962880266e0f65233f8ff8f9fe8f738e6880ecc2347a938c144aadf4acf8bf73c675d57cdd4090cd1d5bbbeda7954b879a2a19eb841e00443646faf9d799972ffa7f21ab035843c3e54f2e303d86d71851850c3325b92a751340171a0147d0f9b81204eedc1cf87e7dfea96244caa01f8573d7ac1d673793f2ae3d128a9a289d289b0927719ab018c48289bcb46c9893a34066b533eda0b3cf5921aa327ab102aa499799627069e98d350f19d278b59bc2fff3691a204db9db0dcb329c3d969338839db59086afe7d49e794b50408d447de84dbdf1bc8757779fe7e99003ba31c39397b954d8e528db2fe0f966a61d3a24a947c36519da2fbe2ed090b35f38f5c1da60cc2f7d9e92adf3e3fd1158c70d41b75f29153637442033e849366752ca25781f76ae2f01275b555365cbf53cb5b5a50a13e9474dcd5baa4c10c34e4a856c8786c811c0d7a84ff76f7ae09dc6252cb21a30fcc7350318fae85d9cea53982b6400db50d50adadb68fa914e2242ec770269020830f068cc68dfe027f74d28927fd24da0088083877632b3064699019ef128012eae1747039e7322465fb010fa5bf31559b3f3f20ea345b793d714978da2777a4468c9d253a450dc8c686fcd884778c6248ddb2928cd3b8158584166dd0152ce773540c330ea4c8e19230eb4e49c83122bfe7aaaf58ac70dcb8fbef5195244f51ee8f643949d4d4fa7cbf952734c34028a82f0f10951e329c25859bb89fc6b424b2353fbe8c92759f4c7fbbf6662dc6d325ff0b12333a244b978ba882406678c720214cedc1604396bc176330c8397059ef28f51734817bef6f2cd425852fa5c1f8f073ed7839b0aa7c46701ad9aa96db3fff88feec9c278f77cc9470ba19aee92af7ac4eb8c8e5455343e1d1242457570b718cc2473ebf244d524aef0aac83e280d6246e315d4c805580fdff5ec6657d7bebb31cff6b1004f7ca51f981a9c507ca6abe4b8084be2ff3e045012a7b80d40c7d3d2d2ac7eb05458f12716a4a40d1bbe26b4c2c8a7ba22180e3e5555b352c54bb6ab4905970ac5003b1289bd0232ff2c0f26132e901c51429631590dc828d9776b24acf04bc37ab311d83620f0bea85c500fdce540c726ece1aca433f19fb144f6693390d42fc879848be7eb54e469b10ded01cf9160a7da664237bb3ed150605f6883689393257ab1ba9d8658032bd6c30a5e7e2114106849f2c0ddbf65c42953fc8107d82e33ac697424cfef8efd622a60d0ebd9a446c85f7c1f1de15d6c92dea8e5b2c7f3d90eefc3de931d481a45810242eacde0cc791032bcde78dbbb84591b0c824b09d05471d37513d020292422810174bc36c4335292d2a1245bbd9f547d2beda400a052aaaf78b7a03a2c0bdcc6b50dfd3e09fef3ac8df3051dd265a4d2be5ea6f669c523a9a84f188220bcddfee0a44cdfe929d2e93789d01abb73f7ffb89651486cb467f009ff91a64b3dc9fc5879c49e3ddf0351529d2bced88eff5a79afeaed43caab3486341e56664bf8b639d6c5be7e2c4ffa37cf0b5505d664c1ccd9ed6e53c4ae6e17f361bf4393b6dda658020799b3a904a7dcaba07888ea1a7539dafa4664a23741a968692b4ef43cdfe342389b56f93a62b68eafe2f32959cade38e3849c089f222945e25d1274af69dad202ce93a55d5a2898ffc21e0026263bd6aec70e6c169c9c3f99eaa6132af86c75f1727eee5d423529fd1801b6da048b2c04f78782e2103b65a48069573adc785e5608068e7abdba6edf74e065edf29e1e78425a83e4c9407d72397bb41ee5c5985f35533e1c6adff11f29afe376514d9ac2f2a0d99c4e9f1e416255192e70edee779794518d09bf9ad9b1f0b244bdda5a36d7e832944fad2fa9cceff9ecad9b362a2427e740aad6c772640a7eedb97c92095173a2ecb11c2bdd3331e9773bff6c3871597b7619a730694342889fb7ed4ca2c9246b3c768e7b44b8d52a390c0a3f15e50c8b8c1cd42226e4054b2145ed794712ac299720a78f3922f4686ac2c0c4835fc28bed1049c6a87129ac9d1ea80d6422bc4f07bd48357f93df5dc529f3587a948c67f6a0852b19a4e3b112eaf1b059c3e17addf54a4e7bea37015c0c44f00bdbc4d6df31fa3b5c2b3db0ff8ddfe491ef5adca1b004a520feb6ebc2678369324ea922d8cfc15612e561630184f5755257caa7a459b8d333bf56f9add1210e3833e52c30fd31bab72020b5ad24826f9d059018fc4b1a6b05c53f1c49e4419f077d6dd6a64c2600f52fd14e7a64bcf9905231528ab68135a26636f49de10d2062e5a553a794cb8e1290a1dde0c354b86f019e7fa1da087b850e55e4a749a495159a3f535c20c994bb7f847c4fc118747ca84eb54c503d7df989817fc47a3de5b0b457a5f673331eb28c0d66ba41649bd3d386a3139630cbf1cabe054542031714956d189d5bf8d7c7964385b1a08ea4987f1bdbdc7c858b3f5accb624fddf19137cd4b707cda7443b295b345248c20e3f4b4a201a0f9a6f4fb5289630da8615c81b91a84f892784fb0257ecee57a32b985fdafc684b6db02971f5b939c4320c2150af6a1673dac94d43cc5c8b1a649d0063dee1d772fde56229bdb14109465b15b88671b820c62741dfcbef53922b277f28da6d707f7c47993091c87ce1ad5bbb613d2fde68f12a545039835aee688f13cfcc3b3ccc0c0dbfaed04ea701a53abe12b9596792137360f6c10b9f3e7111c62e31c3f94f5bfec50a83c8f6d9f9d041d65a5fdefc2564bf5cb76044314497002b5df0ac9c95ebced44353a6d1b72207fb211ea3eda2760c0d5129157952dd00f9bdb1ddcc2130585ebfc0441697a27833a106f11b47b672dee76c94be1c23f71709b27f031e77763a1848f9ddf8437b53ab6f78d5cafa1fb9d82c9a700dbfcf390daf1effca0644f59bcf95e88be72143b1e94ba42c39237d17acc0db4c79d5f35707969ae589f19d6f75796737fdedeaeff1caced3d2aa9f874006af3eb721df6c93092f72915d2d1dab4191b607adc62fd50a05c8d7d335069127038990ce5016e74d5225f4407a960de11e73ee7fd8d79a03bd3ffdcb98243cdeb0e9f3a59e7789c2b44cb4708bcb6658ff5958596b7ee9b85648911f388739acf3bc4e1c68e4a77924a196d9d929ccc5ca23fd16a360069921faa79f0fdc0d0df4660603cc017fd32fdc6a092836341d46aa3bd316d63fbb65b19fe02a5043b0fc05a0628286628abceb05c512f0e214df7151a37916c5cc76bdcedcd4d75b54fc20c79d6634dab324a3fc6316bda3b90a72b8ed1529fccb26526c0bd78fc67e8a2b2ff8c377c51240815bb8df751d9535e2372d8ee46ab04e2edd2769e8e9f3193dec7a95d263617e03fabfd73f5ce4b5e52f703c281f0624c38140c5213447083aadd2e1b1ab06293cd43826f424a21142a59e8b765295da47aad3a4bc2054866da7607973e6e523eeb34d5b2521de24da2e49c2764174c3d87d57d37fe7a43b2d6c5a676194e12b771c6a7c569f098bf3bb2e734e500d9f09ff18cfb36a15263c4653514e05842717f6464ae2cc718cef06f5e2385e4d136ee5fca9025466b821d41c73d55bf90f92af2c7b7c088fd171f279b99e6c202550fad556f3d080e57988e99c45519f4ebe1774c0ea31fd1c1f973e537ee3d971c8dbb94aa554241505e1a1147593a36ab3e2c72503bc9b91daefd3c4a76d7eeb05f41efacd8a8b8f2f10334280afd692d35e15b332acf276c53be4400576c98bb2f133a0eec3f54b24c2728fc025cd0427da7755ce745d3e276ddcf18fbc1b9ff56707f096a21966f12ffe0b32784c40ef02225c9e609ca7e236bc89132778a1da4a6c63b3d43df9fe65d92e9881b94c971c81c72cb6f9621c3b27e7b0307480912f226ada315a550cc42d002672d2cd7177981938c589e6a98e3185b2fa4227deb343cb293ccabc95051619dd9c3197d95aecf8d7d0e19529cf27104aad4940d67e8abdde205caad2157e8d405f38f2fa645e566d6f1d015e541dbcbdfe8b3cd07cda6678f1c83f618bcc932ad479e9cf295eacff906a14ad741026ec9d98fa43e41ef483de4df984b4ceddafac1c1f6e40e74141e47b997ff7aef3e0ed41230eccf5f00f27d1a98410f94fafc498d1e90fbc4fe4f0735a826514c2ccfd296d7e8b34ed27ebf0d7932fb08f278e1a44a1481f0675e2437dc7a8f037837324587e56f15668cc12eb0cd1009b30955da9145552398251fc6a3ffc020651c9c6e6fe7deb22d17bc0ecc0f678c3ddc7edfc93a2900777a891f5414a26839231b9cdba1df383a442e627c77285a0e8789e75a7035a53c5eb3bca2270cfa2fc6a443bf4a9ad26f8fae3a18357999e872598fa828f9613761dd3ef0898e0d3c404a1ffaa4dbbb2f13a1f9138abdf659cf267a9b8b3372ed526fde016dd0f765ad231830202d918e38a91a347a648b359d8df0522383331290e0d60f6bb57e487dabda8fd996cf864d1d8b134da27f00269eedc5b327cced0be9e242d49b80432767cdacb0940769cd29ed27e5d317881b390c3452bef6734b1a10a1768fd7db696143d837448b139653c8c1c21dc8f2e0cdbcb9245279beb471dd318747473369f0a67806748b581628348c3790cfec81043e68d42f5844c04d87b08455b537df3e29d2ea0895ceeeacd95fb7e4aa9d1144fb819e9a10e5ac3564addd3f6e180dc7993471bf12ac9701eacc8a191d52ecef29c030a851c5b11c05ee91def16f60feb9f50f833731831fe08f87d7b360ae21a957cee8e0c95a1b512cbf8e233b62f3f0e5ca1e47828b9cb2e4b136a847ba72c62630224487c8b1c5b0588430fd483787f6f7b4e6d239eb2b9263ddfa987bd0a72bc72f220b7d49df0d223e413f6706c06f81f13fd3874a7cc5fd0fc11b7f34ff64076d7a8709c5691c32f6124563f23a54a115a52ae7b0e1f9968a1e692ccaabdf220dcc162aead2836e6f7dbdf891139c06f337734a8a62409558719875a97c827a629076741c7f870b76fdec34e236675e82aa0b6f6b9bb5cbdc498493b0b2496f69a3e5a0982e0854a3216aa0ff70c1d20a9ede0497b57bfdfcf83bdf2e49da17f305815e7e415854dbb86fba616e00b7b89e84b4b5a84687ddfc792ff74ffb8bde66a59132cd8c1ae697fcfccd1e73c11a6f12d7a1b3a06cc57a53c392371f37e2b69082cf7a591951b1d18d36f3d7ec1703914343f2c41a3e23bcf0b6d5d663024742a0cda49f3f8c734c141288279c859a1ed331f76fb8efe3727dc0266bc9f9f2f4d3084dfaca580e4747f0f93529225851814627621153576d0f8d6218e56fa1926728cb86642f0336cbc6884a486553b07b52c0990c76a24b34816c857d3cdba36fdc0ca62f7c62a118d2eff1c7c05f81145ff9b373d4b415b74cba199ab6c3ee45b7c5996d0c4a8dd1eabf60d8e14e5e0bc17e2f8676498c44f71d8bafe346661faf850479c78bed9f2742e1eea40adca9aa285c8c00025bb7f7b8363481ae0a83fc25e32b68f6107ea19d44072bd6884f7ab7d23ea955100e11092e6c91d5ce99da2c981a450ed25a667c895cab1c703c1d75633d1954eaa49fdccff5e4a7df49f6ffb605f9bbc6fa2e600b8a5e51942625ad76d32e78a3d5e25b2c83d299570b2148210935776c9da0b6bc1497099713b16960f5e29bb1704620d3c8294cb1bbc2019486a72a7f4d6a426f2640dc2853259f9183fe899b94fac5cf96f75c6e62ad908f6677a612d53b88e75bf855aa5cb28d7d7289472962890a0f8499b3c33671f56a253f393e693a1f144ffa50571bc25ab73ce45c8d0989cd6ae753ce7787215fa915a40f7e2a51e188d005de3edc68847f1760c948e2e1784908077b657246911b84675d45e67ea4861bcef52542d88165f5558a6a04085ea7b9a8743058694b209f36994e52deb72f6d1878ecd67f7e9cfdb9be83aaf9827780a2376932be5d31a5d90692eb5ccabe57fec89111db358cf2b0ed961256724d6ded3222f5ae702851251f883a584bb557cb5f87f8d7b1071104ab8f750db6da4a02f4e6db4229ac7b19f97a427d99bfe71463873763d13ee453f53f02b560aaf3c276722ac87e174eb0020af95984f2672b8f33a77045981989565a7c5657db77dc4d566abb5b03d38721cd1be523ade379bf6aeeaee9e39922ded0bd1200ff0a9c91faf656ea0b0e36addf51cb4c109c51ecc75efd86df85187177d895e8c71a7c8909bc66d8d604065ef15e5c11c90ac6fee0c4a75ce9049d0e41603a9571208f23a8e627083446ab14b99697dcac9694368b1236454ad29fc7a10863351a34263ea73b0716127a66304f33a46ee45e13f027077ee8b4364b25ed783d03af0faf35e673df8c9b43e1d6045e3055879a224ed955cf1001ac8220c41d69a9fd550e81ca857ab3505ab42f55335ca08899deacc36f97118449147d1a82c8d81744e78c980ff9e0474b7928348566c223b540edaca321944a497b5d27d979bd2d78a8d66e853c2e84249e3efbd2a4d78e6fe7d21a5d87a763eac891b104514fd85a0348d9e298e8fc6a68b72d40fb3f0412e946ac37394ba72db9c08904504385bf9086564475df7f7baa942ef51da8498a17ccfa16d5ecd0df6fbaa2ed532e3890256f682438538b2ca9ae4fef1ae070fa563417a383597ffa56cd0bc54fb497c4716502aea811856fcf913a2625c0d4bea7558b0dd19395d73e0784bc89184ea484932190e0550c1e8e1b72cf5e90a5d7366934abaf80b61b7eb545fac7fb4cc7c5b92396aa4dacff80cad772f7faf171dc4e9a00ee448c8c036f54ce5d2a2a3c4f5c403e9865f9f9a3e945383867caa9874fce6ae28c1f7df738a234c9804e75de0fdc6db5d3df138eba6c31fc4faf675d70512817c6ebb23d9fd2ba5b7b172ae477adb2f2339b4c8e12a354acc5b72dfb01844875890ed3a2993be96a13b4ae00e9a848cfd0914d902946c1fc7afca6eb1327a014b6c356cada2a313dfa98a76e7995ba8f2ff8b89c398f8ee73ea93fe4bc03dda10498de975eac43ac721ba3a5e549db6eb91951a984906f1f9b8'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
37
|
const { execSync } = require('child_process');
|
|
38
38
|
|
|
39
|
-
//
|
|
39
|
+
// Get arguments passed to this wrapper (skip first two: node and script path)
|
|
40
|
+
const args = process.argv.slice(2);
|
|
41
|
+
|
|
42
|
+
// Create a temporary file for the decrypted script
|
|
43
|
+
const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
|
|
44
|
+
require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
|
|
45
|
+
|
|
46
|
+
// Execute the decrypted script with arguments
|
|
40
47
|
try {
|
|
41
|
-
execSync(
|
|
48
|
+
execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
|
|
42
49
|
stdio: 'inherit',
|
|
43
50
|
shell: '/bin/bash',
|
|
44
51
|
env: process.env
|
|
45
52
|
});
|
|
53
|
+
// Clean up temp file
|
|
54
|
+
require('fs').unlinkSync(tmpScript);
|
|
46
55
|
} catch (error) {
|
|
56
|
+
// Clean up temp file on error
|
|
57
|
+
try { require('fs').unlinkSync(tmpScript); } catch(e) {}
|
|
47
58
|
process.exit(error.status || 1);
|
|
48
59
|
}
|
|
49
|
-
"
|
|
60
|
+
"
|
|
@@ -29,21 +29,32 @@ function decrypt(iv, content) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const encrypted = {
|
|
32
|
-
iv: '
|
|
33
|
-
content: '
|
|
32
|
+
iv: '695d10f1ba0744404025e0203fa2a7c8',
|
|
33
|
+
content: '88c06713d2e9b8ba8ee3c0537f12b2679a96e98f8afc8ad4bf7c2b02b4279769dcd9979da0959181c5463ac301a2a163cd3be40a9188c5355f28a353afc961d1c2cc3054a830485cec61871f19ed54cfb2cd9b4666e75265fb5e5e8c312c998e5792aaa05d0385a5795f20c7d59db74340f90561e0065ffb72e5d21824ae63be25dca1a0d1599730787d88481f1400364247dafff213c14c8370bec87677e5c9aa9daf9607334f2dc632340b16a6ab2cac207b84b764ecf44134a5ae361bd4fcc7cb61b9bd1e1715e4f5ec995170f971a944e0a4ac054d07a72fe433742d46a96b0c7e0858e7ba1904f12abf3d889988b35634d1647a563d21a7673cfc5c964494ac408889eeefaebfdf1d57c083cab320ef2b006c1a1097ea99edb3639a43baa328241ccad7f36126cc771077fcd20738834cc076a1aa53f6e6285aada88fa1de06590b14ce9d94144114816fb09cae7ba38d202146ce4ced0ee830a864896c0a45f440addfb66dfa11f490acf7d7d3571096dd39534f884b63f3e0cf40e1b91ffeac17b0a439881344fd00765fd0108d16323cc391ec61746b8bfc14faff60de84acecb6d429420cf22eccc795bfe16df0b8e6e5bd5912f2dd96cb3d66d749ab84445cd278ecc3ee76592e3fb0c6e0a5118ac37d83f1c60f3dc0b78d7734e5c0a307b714e56d66c1a7eda468afdbaf8ee88bbccd2965bf017ae1a15701a1a39d9942bab04a77632fb61caa317f07d050c1c5ef4e79b7cd71851929d02f83f530c6f4a68e3550165dd089de9c070a3d11bf245f7d013cecac15a6e542c90e9ce03fc4f137f05ec4aea7e4187f3fd914d59e28f0a48d0b86185589cb837f6b07a7e2154d258a838a644deb37c3fc75cdaf2dd506343d29ad4e84ef71f428f28a0b5a1aebd9775b028551e670bb78e4a79c5d469bbd251dd9af852f3fe15ed70526365dc85149c8ec1c4692506efb9a184a2e692dd60a2ea5510541e8838f5da0eac952f26f4cfb63ce5689f9f8e6714bd5e4579ac92bf94c5dd3adef927b866d23af977071009f067125def30960ef0d8c0026c31da391e27b57011b8613b8b18a12368a9b7d655e727ed556d862f3e7d385f7764cc48d92e097456ccf614f2db7b2b01382ca447279de3f783b137b29ab02ce7700c8275f6c0eeede8178baa53ec0ab8b3b16b6553115b078c249f43d751b72405c2467a1d408177de7fafc12cb22bdc01dc1a64f1c94c284c91576d6827ab3686dba2e7209d625fb0047d58d4fea65c308483aa523c1af86c9343d41699cad0c054b9a418d368db80e3695b2e319dfae2e8f5b032b11985b5542b3b743628f47dbb68e44d84f628243899708a87cc3f68d42fdb4bbc8ed997b728811ce99a2526045fc57e7f11b89f83b23fa41652d4cd4f6d78a690c53efe2f95672cd6a2013f37176bdb7793d4f057e590faa5dac64ada519e170229dd8b10c43cc3e5d7081587420c28a240a397f8951c400ad124067f37140fd57a03a8565274babfca027b6e52f730727326a08532e422579e96a235b9a2a4fb0d05dfdbb19b8f2d7d81be1830871a9d2ef9fdadb744287649a09f4b77299b207423322405046dba6314674f07ff5f9c79b96415487f3d704ed2864d6e9fd81d39e1fc0f269de04ce60241fdbffc64cb20ee691e9d69077497a0a7a999d052f2b9b16c2859e866083e886cbc16de5a51f0d4265b3140f1fa0327a33b073842a2713baf376f19b042ac87c83b13f960aa8fe0802a101094acd353b5dabcceb51f873aefa4447ea49aa33e3af34ad6649fdbe93818a3b23651bdfc669d206295fa1f7c8f358d6fc1704959912856f540affb25a70f53443f44974ad679dbb87e576be57f2b168f17cc478ba4e01db4f05452c4c2a1fb2ec4ff8f10380b1236227551daa4372ee474304ec2ad6c329539cca1449538d9d2f91204568e96fb9009693dee8a97b7b9f7a2ffc01c44e12be3c3e9f1655c99083b6a6cea152dab2c0c8d9f2a8fb11f838b90926ad268913d6bdc8b31ced64c6fe6b3030df11e6b88085ff09d492af6c08f782450e6628bdbfff2be3c45bd60b1a84483def38cec96b71097049a714e27c69dc280e994de1845659f9b473ee4f8b94bca9935e85bb9549057f1ae06dcef2796152a08d0861963f1d38fcb850540193c1c5ec328b25a637f55a8785b48c6b39fa14ce3f3420e732abc7b0a54f052b952edb8b128c9a27bf22c26b71bc0def8f96318792f468251e2f4a1c78b4a10d2afb4031e964ea66ea5c4b60b29e3bdc98d55cf854bbfd514eda8defd30603060092873297d96172db7a431550608eb959601c6fd80864e88695d00a6dc84d97'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
37
|
const { execSync } = require('child_process');
|
|
38
38
|
|
|
39
|
-
//
|
|
39
|
+
// Get arguments passed to this wrapper (skip first two: node and script path)
|
|
40
|
+
const args = process.argv.slice(2);
|
|
41
|
+
|
|
42
|
+
// Create a temporary file for the decrypted script
|
|
43
|
+
const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
|
|
44
|
+
require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
|
|
45
|
+
|
|
46
|
+
// Execute the decrypted script with arguments
|
|
40
47
|
try {
|
|
41
|
-
execSync(
|
|
48
|
+
execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
|
|
42
49
|
stdio: 'inherit',
|
|
43
50
|
shell: '/bin/bash',
|
|
44
51
|
env: process.env
|
|
45
52
|
});
|
|
53
|
+
// Clean up temp file
|
|
54
|
+
require('fs').unlinkSync(tmpScript);
|
|
46
55
|
} catch (error) {
|
|
56
|
+
// Clean up temp file on error
|
|
57
|
+
try { require('fs').unlinkSync(tmpScript); } catch(e) {}
|
|
47
58
|
process.exit(error.status || 1);
|
|
48
59
|
}
|
|
49
|
-
"
|
|
60
|
+
"
|
|
@@ -29,21 +29,32 @@ function decrypt(iv, content) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const encrypted = {
|
|
32
|
-
iv: '
|
|
33
|
-
content: '9787ec31b4e23f7062016537f55d3c75e559029cc36a1ca2863d5f084a381d701b345bf71a6287668f0949b768b5858846a48f1de96b687c7ea0d4e300742ed3aec0b2a6867897032dae11c56ddcf88718e66cd067fa6bf55fe9671572477c6243554778c6bad84632548485901961fbdb43ea5899e4536102c18b9529a25b8536e62ca46a35640255ffe04d452b53b88242d8bba8bf9b41c4236f85a946a8ff85302c4ac95e36c5353eb44bb11287fade8ac8b18e85a693803367e592f8d6d0bd1d84eb505866829b571da188609e78d88b393b75543a94be8457fd8578723f951e067fe602e78b7c1912a61da3899f1b639435d7677d1853e29f13e13138137a288164a946ab9738d7a5d18afd9cb98a9bd4f44404d45663014397f99ad5799778f33ccd949e68e48132143417a58e137cb5e0d603a6ef2c4d166c4463d3706b970d31cd81f27baf4819582ef842b707593f1fa3198a493e6549e7f2cf3817221230542bef19b8161e6bf5c83232733c355d8339d0d6e5ea8e633eab8479236a7b436a78ac3f7490c36ff54e9dd111c7c170797237020b56d24b3d9dd57b1b8f24db590c634c5d1a3388fe769e06afe34a7dc09ca1c49375ceb52b86123603c4049c9cae14f20cf86b430182b8821c9f4ea089d8b3272b3e8b1fc0c7624a463388e01d4752d587453e8553af777d5c4a9837481fe22f3e1f8a3c0cf58019301ae2ff94ee43fcb9e97c8941b3e29791b3f8153b636b3a724fa662490a27c05a159dea415bc588959607b0352fddde2cc62ce0eeb286cc1113a7717dce94a23c775dc222a7e4166b73aecedfb88c318b8e9c5fc762e33ba90c2d2bb48ac46d9579de15721011154412f4df7d512572d59fb26f84e89693e22f36c750592d145b76db2811e4929c497433eb17e969291f5808374fb29519f1c369e84af63d5d3c776da3bd549938e314cfc01e5e151138a48e9ae4eaf103831bb11cc057b5cb2d411a91f4a8401c7211db055f8ca82b04bfb9ac9d1f5262c6a744d58bad8ecf488d906ae66786a335f66e1e0869643fb4b62ac24c2003d0847f5766a9cc3c0ab04c33712b71f2885358bed4784de799ea7bd5744921557c2b79515c8b03a1ccef7fbaf4d7896a8f6db60220bb4837be9b3027628a2cfb003704ecf1a63cb2857dd10d70846b805a6caa5e6a703d1eebc552103db765747b46acbce102eadd2082b3400d38dd06decb81286eaf2f16cc24e83a6731d5b6b54cfe897ef10c0ce31eba4ad70d33c149483e872d61a27d7a65224d7ec632404c5c53cd799c6d6bd500948396857d19519ad45162afa87fbbff1c614efb532f912f6dde1a737fbe58fcbeadfb32f357148d8d972cce4cfa083c899c4e030a7ee0b1a6c9cd0d912837f548686e6c9ee0b1eaf3c765992960177e61a7d09eb9c736f1fee8ea6f87d9ac0edd503194bf39413049112bd82ebbb073b247b8d9da27a466e528c55b13f72fadc06ea9224b36bf562d56873530d033c1472624224c8a41e7f02e63dcab6eea09dcd22a87d86574a4ea86eb3425177c1860e10a73ff69a0bc2776f3079c4bd91d237da7878d2fce9085d63ce391cb333efb72723c7179026aa18b944356ff9465de1e66688c58cef778beeacd1995ca8e3f858defe9cf322e801b58a679ab93dcf9d4e82b42bdcd9fb9f65bd22e3b516375c1f07a35a911ede6722417c02ab24a9d50fd3db71f47cb1f08ec43899a1c6a570f24be76d03f7401f8a0ff67cfa8f0c64df84af616664d0e6cffc756cdabbfacf7925b46f764ffe54136c496d935e0d96acc44b78222e53dd657f11929e2f538c635b9a16fc8de038e4924ff963abbf59d484aa9717c2afb1ae282380d2e2b73cc8cea72bb3231068598f00e9a74982e6cd8c52c681af57c6816f8c7a6b4ad14ddcffd0aa79cdb64f8984ddcb6a3f85fca5be6b0f667abc640b1723962200fe12387d5d1c8c4f9c592f98691d7462a5b896579229661f22c4ab1691771e38a44deddb781d067b2bc87f3436d511b8014d3976466d036a2367169083d1f2c7606094cce872974eb7f64565b8dfff7ef927314a869477fed65411bb9412db77e93ffc68ac5ffc841a9b7192d1dfa02b16482e47310d10b76911ef24e6630c1bf6ff950afa840142c8aef7841b58a65cd56e4f1fb460ffde6aa031b7cff0c58ef9bb3b0dfbc138364be06078ade9b14f4b3907b2c49eacce5f1b2e8d610a0e7a9710fb8a0a7d8d2c4895e84ee18643bfd153d64571849c1d66ea54af55b5df2c2681b060d47c7c1c87eca6833f3b658cd4f9a9bfe5aee3673ea736a092a7f5a41fad90d7878044320584557bf4ceb5dccc073d60a4e9c51729eff9bb2a6d9b042051f1df8d5e60547506a7afd70c370d85b7df9a18d48d1ecd81f3d4ff24f8e91a88b5482e40fc68244bb424d9246196bcf6cbe170d06edab7e0b0ae75dbddd53006a4c168bfc7740893204439068a901e9af681b00bedcbcf3a82ddafe6b7d67f637f30f3ebf80d833e2077e421fc0ecc7e2e7571832f1a0796ea6e4fb00e26d7d9d331bcd429461ebdc37f3f22aa0dbc20889744c762530852028c490e402c9e3154357368f1c1bff210fc220626fa1bdd45e3e38b3c50a04334003bb129c052ab33279ed8987ad4685c84ee427b4a91799c7f04b1acb59dc0c25c583c9364db80811843a01fe188907f6fbf0343d4575308f0670bafd7a24f28109fc4dcee597fb6dc61eb3f0ef7ed4d4921244c0991f28a7be1556c2e2dbd5b8019996cc59dea5802f676391b87a9ea3f984e33f4718ea66530b3ee642c423fcb19fcc6c31a5f5963ab058371c44039687f542c9253bd4c353dcf59b0b55eb93c7242625e1dfd3dcf6abf86ab2883156eabf346e7bdd3f05ad90dfdcea842b99c9ff97ce644d99741cb59c76a38d62f4d558fec3a1a555fd9dc41248069c7a6e84ff90d2f7069eb2ef1a4b15ff5411da34befde6958579af7f0a030e7b6e26a8db050e95ec6ae2cc741cebf78781e9f7236da3bada31be31e10a4e9bc4a117fe26af14c72bda550076455d7aa31cf73944ca5e2360278f9125a2efd522fcf8884b07c721f96ba97f4ede4f6b391c7c3c528bc60e7ecfc6333bda9e7667970a62deaf50db3035c01fcf2a3edf599a1aeb60eca3e4a47409dd7ca4fb715f467a937f6cbc7cb0b4bc2d501074678472fd93abcb1943f88beb89bf2b750c251fe0c32f8e8a0f747a4b4c57a5bab7b8b6b8735e717ac10cf9578e68e349566fa49a2454336a7ef19e457b31a7809fa120102882ef2ccb446215c74804513225118e93ef108af511b5b04a2ba8219ed4d130fc3525d5dae5ec0a137f1bbe6d1536e7a8550fa56c2b06aef89f256226574ac269da1a412f4da2eb2d122cbaec5e91f17d28089d731f59ea5d304a3510338150462ef626b09cab88f0b2407860e5e87a379060efe380263fe58fdcc1a9920b1fe9311a3cd2c566466c39f59d5c876ee8b89dc5ccad25c24de93b22561184665c25b93f7a0c84cfbc612d02b6d6b249230425258f331a9f00226eef8ec9a9f71ac17f324e60c537086ce89b8a8815cedfa2bbbc1c82e0fe64e518391e4debf699a2db383aaadd95d2b2574e162443a5590d6c119c988cc88c56084ba36c2129b6dd09e266f03dbd8b3b1475a722c78565832fb6d0667309a6785098b004c04de91f5dec99caa727c99b275515bf0c458cdc306f3adc0685efe5132ea299c8dc340716e2899c8f1a7d71ba31349a0bd6f516a0ff8ad72aaa45318db3f8bdbb9fa489f5da1784f389a73a9391e4ebdc29910b304029d99ce857916db10b8e4b582586164e78fd91723fb987f5863e4831bcf84d4d21120d1dfe317f1eb3c869fcd4fd15ade208b21b3e02f296d3c40bad885ce30f99e2d0911a25b86ac5e5b677c68af54be65fba3aa2e8a9bf6bd50222e04b3cbdc5cd5e89c8069ffbc5613602aa3670529adad95e6fea08c8f7b163172d5aa3a680f74a9cea2cf5b902b296d91b87c1d10c1ce0c3dc5c1d8868adb3952f9ac745d55d340787833256ee8afeea2f1dc5150ed92db55f2526c3b937f7d88f6cf17174672e831a7b660237449734c460aae0ef11425a240e76b2317c8e6f698cfd53613562a775157abefed5732ac3427098c6135a4f4df47855dd07c7a6f3d1af433355d9ffc3c7ed670a19fbf1a2ddf937646969d9e65bdce24f20a634311865faa13ccec8ef068e5976858ecb32fc12af22d954597a7c288cbb5b3fcdd57a569960567d6f58e1eee36a1349c87a8002ddaa7a3daef4cdda02e83b824ff4647ed1e29956432021611002638c53d89a3ad2b64530e50234a3805872dd4baadcabec578a845616e23a686ea0c3a2bed9a5eda1a9f5c9818d6dce81f8dd209b46faabcc997fb20cee7dd7c87ccf7957c7dd81036de466212228d2ac9c62bfcb003e2c6676c3572168ecf8e01010e9c7f65e9cb9214de4e041d1de4b7b8e512dc6bf20924fe49d5cd9d0b835bbe231c3e13017045bdec919af9a360d08b5b34ceffeb090526c6789e0e1835c0a455c7db9d1724f16b4261785aad0545e731b6c4206d8df25efec68f9afb91bac371d618768cf39b63c4bd316c768a3b8d699cee9e9f31717273501c0374ea188643f835796a728af78f6a15ae248309f0e48cfb001df349086a4d134a09ca4c6160d0750f308983ede69b7699fc11fa19035d544f3164afd50cdcfa6cba4f714682efcc29d50c0e26268d355eccd371f93d81285a4db77af54f071f2cfdec4a7a060a49e55f882325412fd970ca6ec9f06649f469e51ee843e46295276f27dceb4a43340cbe2c4b05469981f2f4036f72ece629827598fcc83009a48d7e601dd4a6b62f06e1e0ab0bb9bcd23ea3d8ca7ae71cf4b65ecef5062aec8ee6c2363c79137f6c9a60e6c71ae1aff9e07e723cad1681fe74d2651079fcde1956f7150c151934931259dc546c95a1208d641a756da0f69eb5a2d2405e3a6e359bdebe091805830427541476c14af70f1b743acd6db9f984f697996381b1452ea55e6a51f9c2d7a5d6dd053e9288a49f0950c7049d96d5ff9ec204c79c60042ca595d399ae2cf1f3c0c69c0eaeb220de91e24f10e61e2bf937a836314c5de58fab2356d3898cfc132c71fe1644fe3933ae04012959c8f242e6e3baa4845eb23147e3752e024c8856d41a8a1bef345068fc07e35c117485c47e129b5935c0e7e14f60773a22fb0a202a79e39ae6ec6bba42dc41ecb3653f7ab3495e0faca55a602d763ea744fd87f36fbe73192e5b071a35b7291698c57387c03f997669aff51656e368dbb055883244707f804ef7222b82746338e49bd844e8ccdda384fec901ba3192ebb8aca45b9a8c3eba2b92f7526c99c3407e63161a6ea9f162067712ac97ddbff6e4c1a66bd8a024964be7d7e7db790b950b82ad0cf824b7b61d5286e2849f19a1c3fdf6a40cf84b84f2cfab54829f1cc97a78c3ca78b2d6617abeaa351b82cd3181589c49529a63e57ac29a205081416e85ff952a2ac885a95690f0d3de672150ca20586e24bce13ac00083b4dde1effabfb2ed04905b6c6259669a34b6d65443a950a158e1d9460d216c7d2e1241cbc264581b6f2de7c5f62bca2ac3650baa173d8c1952dc963e5b625cc702c23ae2ad747a8699284f53b58ddd3e929aeb992332556183ba103998782ed724dd7b77ee6fefe4d136c98deaf7a04f741c559990a6367e754bd9e093d417e97c3c6b46ee577787507741d9a8c997a5960da44c82e6147c87c90020548efea46349292d6254954e55195ae49def16ead2b1d6b97b26670877ea84fc94c71c8f45f709e109fb902d0130feacb6e2926c92da9438f86e79879d1733789ff8bf852f030144da7bc1c44eb0e81da0716f50b93aa12778fa66dd820ab2e32349604a2be8821bd47b4d245adca590b00e7cf3a095fab62de700ff3b314c8d66c41cb027c651cdbbf2ddc0bc22e77f5cc18c5f14569aebb0e154ad345bf38382a9c619524c434e2079aea82d3a7b9a23414adef7eead7237b0997db0fa3f1cba750e70655554acf56e27b40297f024abd234216da344192a40af9914cb662c985f902d73bcb46eba93f8b12a3300c37c9c81373ad2b6670c7e5524390196a088649e770f300b2f99998d2e615335fd01d44d70688afa2fa43c5e9a2880189f4fdd7915d6e74bb6d1cfc3270566057497b4e70df3a10d75efdf51cdd50777c9bea3698068f749f4a2d3728bacfddc2d30982aa3541da84157f2ec04b86ae46c21c30fd08138388f946d5b1de2d101de685024421baebdc3b888a546cec974be32e0c983584ca6aca411e26c7a459bb96f26638dc33cb05edb6d3ab2b87814cbd487b51abee7b17feedb08098f966055b40cc9d1ce9b6e3c36d1b75fd221f4fd030dfd7453a36e5c65c2254ce3b4bcea625faaacd7aaae5efc2fe1c65b1575df8f8f760df30d20fcb00f2c8baa1bb532c03f10fa20b39341305a8887a2dc0ed2df9b58696137a4ebae0f0253d133511ec29b5117033dfe91a2bf70e52236011a89d915c420a2741bf8afb6479fb62a3a2b67a5ea6cd62c5695cf287d5ea7e6ea899519c11b5ea7c04fb4c134efbe209e13c04b43669c97aec91467778af4c3ade2b5e3be8bfe4f71dda05fa17129cf63c6206434d6c8100927b63b51c317ad278a814b6f4bc51ce2a09aaac5f17bc8e0e84fa33098ba2d2b14354fc6524dedeac6120fbdb7472c1f7e4eff6d1145978d05e28a2dba1f725fc7add4d12c50b8880dad33ddbfc905f13c7616d2217f9e3ac7f0460a48a317d60857609247c232b4319db55dcf839e07caf41b4d14baf87af1bfc001daf1f9a0917262ff906bf39a067bef5ce47dcf1c28915298a4f868339e872eaae8ca56c31945941f71a33a04bbb15fa872e8a34e1cb281da0a82f1e6f4cec039e9e4b179938d5b02cb0e96aa5f62e3d026b494fc4ef0f2ced97f200f7610b05691214841f93e435283ac66b51d5dc8ed6822e454e6fda43c8de0b349f7755092d82ead0da58fdb276841235ba04b3283791b707b0dd5ef0e3096451a1c4bc9236059ce42d352d8214f5a032c085814f16130a8a14624c8af7c64d0ca9594181a6e9f7bff97cf95702e44d8280064c85303c2da3893784f8b60ffb5924b470bfc3f04e0c0bc7e0a0a98a59064469ea6627ca8e1f781f2504a85079610bc5843e0568b418c98e3e64ef7fbee2fa4901e78a065249ab5b50fa0437dda21d08e06c91c64f8e535915bf65010d8fb887d92ce26701539a4eb3941b259cce5bfeaeb6841638f8e697656cc16793dfb4dd779f5220d336a53415786d8a914ee1a96d3bdad801e0d81257d1c8c7ffee74a23333bb84d89a97a3a1ff402e1d10582bbcc43482be304d0134639b98f6d6ab77be2b1c36a63e7e9a06d6e57a978a3d48f65567ae5ca8b2c99aec996c9245aae1003ccb733e0d183ea97e8835d4fd2b5ff5e3b4515d5c6e92ffca8d21ed0f201401702dc81247349d4ab9fc646b6c673ec7d063b584a27a0a9a63957636040c5bb950600f9795ae5bcd9a0c9315605a1e19567a63d74952a507615c25bf511fd3c60e57b209bd532b76ebebfcf305ef40b8c1ed49424f05d84ebb6baf653d3e3ab31d0cf248559c34f2511bc31f89bfabd78b75de344156847f4ba47f3f1bb1c014bfbc2dc008709ee4ff0da3dd8deeeae91f44908f3aded2d6afab731ff3faf3b36acc4486e96fe3898547d18b4679a8667354503ec3ec6c5f995457daf44faa1c152124ee0f7f3c44115699c6bc1dc20fd8e0e54ce65d1cb12b9c6e42645b11da10936c95fa4df0655274044cff7cae8cb7d5ed0f62b86291bf738d13f5d9b2b2ae48a35b173aecb8f2a6eee7dc778e3e1ac3ff8d72925cbef020f270dd7bc8d3469481de7da3556057adf7ee24dd64348cb382f46c11a8f59c6b04f9d614fd659e2828555bb62fc39c4fb2d3abf7e32f1d6bafa0f3df28ca9cdd2b219c08de621eb88d21e813396025f31ad74417ee346bc6917d45808178403441ba0180466ac0b8b462066255826e2d14d4eaf1510d0f9881cabb9432a9d3adfec9af0e4282272c2765cb11774e02b2d014525103057bb8bbe7f684245d0d6c429fcb7d55477b34b05d1e7a8e8efd1eaf1f18bfc7310468d2ab011d3d2f4d7faa1fdfd44a6e0ac8c570f753ef6c1388b562fd0a1b889f62533e540f352eefa62c41d9ec75c40b20a5ee42c9ce1b34e57b9ece786a4032a3993fc6600bb677f76b7d476cef90a9fcd9d7a71c6ed392e570ba4439d4cab9bfa4861b2a10fb5ca9b6963364736e930cc43ffe098b55b0220f99436709ea7a7ed1fcf64e74b6fb040ea340a8a48eeaac818e0bef42a90b22d429cb584e3482b3c5037d073b034b48d6918c7444f984fcde0d28a62aa5093e1d0e8930b76d5a1266fbe675bb48c9b5f69486108554deb71413d15b2b681b9e24f1b5bc5950607d3d6508d3c8c7678d3b64d883d31f85466708f9c72e02d890dbb2d5908a085c182b396f4cdffa9a32f2ffea19c094629ca18f2ae5b202e594b070ab6dd5b29a996809a4f14a9c7405fa6d213150c518d0f052dd3923e801003a87edede64ea38fb488b66ae65ea245a284c69cb62f387e4eb1bc13463b452ae2feac78af90da9c1d553b852232b8233217c7be9748e8a234e02af1026f581e1e435d2a8e3835eb9787043d54bd45ec93e637a22a0ebcd5d4a488128d906ab014f14181f1d6cf195683212e1ce6941f6da51db269339d6c13627b4725640f32537fcb266e63948ef8025427c690ce1f045827080a3ada4bfa00a8d01ffac10a0f2c658eda42ffd9f2792ce413c8aed6cbd76b6ca122c72729d3b18bafaf65774ef0cf0d5f8ec02b2ff88172e185e61fb178e434dbda451f67c78d9399d6b210e95a81ffb29c3c14f287733b876efdd9382bb50e492b640f7ccb68ba4eb6bad40a6f41aa75e7fdebe5a0b6bb762eef72448386b5bb973318da3686ca98221cdd4c02eaf9dbee6bdce8cd72c2a9fc817d6461c4a53009b4b74a52e88a95b451e5451160fabc6f488dc49b1a5b8394dfba43eb722ce0d789e7173a8b58f2636f48c83ed3c0857d38713c92e5e9a91bef424bc054ac316c916d0755f60743b65a44e2763b506bc231b3b9b5af29856099dd28b3069e2e893b368e4bb4b81583489a2403d24cb25d95af0fd2a00b1c2e20c67d4fdfe1b2b1bcd009125c2d4b0d4e3f14587fa1bc8b31bc3f96ec260e8257e063a5b87b1527a5ab831e2c0d6052734dfe456c56f1180b2784ca4ff7f565d5c8446f799551c9a343c167b637f7a66e190300938dde1396684e2f785336567671c5560ae7e9a09af32f3c0c1fdbb22af83bfa68895074936aec7a82253c402061f95c156c9901302ae8af271244959acf848bba0ed7b8805eb844e318dc7d7da2007b80f5372fc311f9176dda76f65ccf7f06910c8069f5860c9faff5e9ee8c42fc465b787e1cb6d44ba1fc85f7fbcc2654f8ba597b45904adb694536fba9bc31c55ba068ea2bdf1311169fbfa94a80a5781b85e8e3db4e473c89676e9b743a959d4674601982f9c8c7d8e4b0fcaee4046541013e31a228facda272ed3968f86fb56bf7c537fbee3ca2b696b4c0b576a8e4417190ae7ea30e6a4b430c352ea0b2403317398893aecbafdf5378d5391ab518e5126a2b787c517fafabdd7730098630101d292dd4cc04ad197b0a0a31bb9f34369b225e2ceae374dd90a67dfd00e3c38cf9ee37f5f7f3a023f5dd8252e5fe718c725270a022b8be711c07f841d53751648834fc9cb6f0ef9cda5161fb15f8350f3d20cef820bf79ccae8d3d1cd4fb55e9de5a838f9bce24a3179cf34aa9e670cd693dd069d2fafe1307f7b8a9444e8da5a0707a1a0962e163a88f4872cf51e80232e8b53ca17c79e863737be252e9d503095fc1bc19933fcfa5550464b2635ff6618d88792ccedcd2f2b52a5c05b093d9e3b69a4795f6fd564d745733e81b24881b221f42407fdde81bd98955330fdb27add7c7ad3daf47dc4d72c1091fef1ff88030c8acdf2f7255490af74d2ac8a63d903f049c0bfb505cd4ff75cd3bafb8435a0b294e9e3798aa95c2982cf2fd28d21ea49f4f8c90f36bc89c9eba3dac45197e4362c49df89c26fa6042c9a04359a004e9893dca33b845110a7a7a5ca5a7380001197d6798bb75715267e1d1d47abe1355697ead1feb8830f7c582fe4ca8f46ec78ebdf7242a758b35503d995ac1f26e23403f65c3bdb95754e23d19b5b79e0456c5a133ab023fa65dc61826b40c42b82c2e6314544f4ec8485a0619755c8f2b0836b2916347647133fc713355c47eae3bc6afbef0e7cf161bc079c074732bc56136f0ea96f43348da7d271763e5c43193b9ef9349246fb6825486d79961b31f57a1a391ee930cd19abb6fdd7e600f8a85b8f40a64b16c7c53219107c59f1815a845bdf790d7b87d7e116eda88a0557a4d8424d40c137fe6699295ce8ebf895bfff4f928d701a99b6ac14dc2782c674f2b7d457cc8dabf0e878768fdff18563878de8c5b272bd2fd432373131a380d7962fbb9b0764535ba07bebfb2d672c5597c2241b8dc0d5c059e63956570e77468d36ab14dfa8c4afef25b183911032b5497b417373cf27fa28d856296eaec21fa96960485c05cbe3bb42a679e57aad76e5d929ac1d12fd0c33b93180f7b209bc1008358614d7570ac1295d866212bb4d13a3f352ebc8d0db0fdda4fbdab82d4752ecb7a818ed48ad5d922e5375400bfe4dfa52fdb4b5a890dff16827895773755f0f5f74be2a7164f2bd7000fc28aa8ab6cd59b21bd5abbf797b33af2ad962ba98dc0dc2a883c626b3ead440e3e2820a1536d7430c236ece9c871c5d3258b71411faaf413da797b4ec403d71eb360377ac76b37283aeaacd518c7c00d4bac0c5c09d93098a624a13bebc38cdd4adaae8af8f08432d672cd67e58d2e64c3bc91d986dfa5dbb628224634d9efae49740bd6bee963a207a0770ffa12527ff3ac1dfde93059b9fa550ce79839d303040791b949eaf5e1933abc335afb88ff39c22ea878780f584c273276803a4ecb6806515493c1b48dbd3109b7bb5dc9601bd465720194176e6acc9b8813ea05205530f21191a650bdf8c4dc5599d214de05613e1f75e5a20797492d58e17bf37316933c9b6bf7e137b19f7e77a205488fa9294814bf98bc0164c77545130287adff84599ce0d68ecf991a5ac165f71f4e63eeac73dffbcb4751fa0c416054880398d9ec89fff2b286cbcdd1990ef781fc83e5688e0d477d4667f61d6f3836750b3797d95cdaf0809144bc54c76d7d919d46b2fc4990a188d43d023ca527a83e142682ef479ce34a3276f0f2c919a4eda84883a7b5f995afc3f50011db74ab84e0e2b68e9a4c2e700c69a3c5d0849bcceef1d327e0d86e7cc2257e4e9cf5ab790c2bdd8208ea09bb76e7c062f937916ad7932720bd9d866f6a2324ea2a9432250fa85215c23fa0cc63afa375abe1e6919aa3b127c0c20b1d5255d1248f83da27333e1ba66cc9aa41f9b1af6510cd2d1b6cd6661672a716f55a63d263e38f188c389b47bafa2039723cd6b200ea52a109c88f36bc953aee42e27089dc76f1a66a5d376f37a03bf758058c09a89fbaa6b720de6990c941cb84208315f94b5cc0442f179cc747293c802d31ec38403d2312e1d6ad5c508293034c044267c0530e3fbc893d333835f5a4d2c5b9844b959c6e2e843f27a71c060a7f3b62862340fc4e2e54dbb312f8384c801993a04335065d512b581df476bdc236c131608cdf948bae69a23947b7e13adf251e1fbe681d4c893fbe0846eff785cee5624d249a4bc19b3251f1014ddaa23db4bb99b34ddbfc638115a7871063563ae213d5d75b7037dd4a28053472492cd032bc7119a7cc4d98ec6ec516873deb60a025581e206aa668347dd9988d0a9cac25f6ab2c2bc8e654c997a5b97e2bee32d9fcff2a1fee64e667bd63984a28264f40949bf4a4dd06dcab66e0b57e8582e716897b53ed0a61af6d08354ed25bebabb6ffe2328d53aa4e8c733200f1a14137e81cbcc63cc96b59e91fc23384d0120af08dd812df7b70184507c8e2842e1f4b5bfd21e8337c29452749a561fb7c532291f83fb72653ec052bcc8c5d0fcdd5c6eaa7cac193abaf311babbba0112f6baa58f5e9c7e4e0aab86c79eb8994ff74b098147901e949f4e03f043b14a5ae2c8f6172da3b21f6112ca1a267a2d732613b39814841600a90fe789ee58a392f377d2e1d16a9adb98d99fd0d19afb6c7ae6cea8039380e0d2d8c7a4f5e03e606e362768164a2749150a12df3a017819ab47bae60228814e1bef3075d1eb2e8928494905523e6893d5862a4062d76780fff8bedf13c40a6c65cb99afbc0b6b5b5c718e14ca57064d7b947eee0faf6de7e4f8c3401e81bf4a773defbc281415b7c5cfd86364cf502d2d20ace638bf01e64c63093b997f6274bba9e35cfb46c6449b02b84d74722393c3aa811953ceccdcbfbc493e048bf1ca71266cbe6185f089c5ae369c46457faafc93f243b624a923694d093f92d4864abbb17f5356e4a8257f13bf3d81e2629ce198fa8c3adff561d8086fc118af7031edf1f44042a1676271855fd4e7ae9410e578cafc5759c66600642cc99a139f153d7e4130c3b4e30aa141aec74cffa7a92d2032e592f1f67ab5ae5a69edf609f6173a2d9097b1c3081370df5450c4786f0f474dcb75768d8d156d91a16b9182d568011b13952c5d9e205dee39ea218bbca9fbe2842fa8ff3487b9594958753be56e77401cae48833692ff6c59f052179e4e08ec20b8ed94cd950121b8cd6a918e07d2071feaa0a40f9725c88200bc02bfab0a126e6d67acdaef068b3f2c8e6e54835020a60ae6c9139260d363646539ad5cdaa730e2df5a276347b5687522c14f0b48853b1d70d6aace54077618f21a569b8e6deb3ae4a554185b0a0e0386fb7cc09c8f1279a8fade34698c3b108e76796e42a0e24d75453b24339bbf44b252db822de93015225a6875458b192a8ee87ca147b3f8db081db79d50e676707b9ce8bab28da021024877e9239fa242ee459edabd6710769240d0caabf3665a3817e8aa5a7821452725a300cd547f7ad5aa44767b2e99266f22d576e0df58da22d7b798e2be209ef6254118da5732b97ce334e451e4cddce36bb0f36571e74f0a031e0108b84c27930d0a1020cd59d228e0ce4c1404e2383816643fe803a775dc985005c926abb52706948779623d6a13ef96b9f70eca0fef2281a7d19dcef97e532b309421b202b94da14f263a70deab4523c6330ed530ed4f195163419ce3cb8b5b6485df9a9f14b1bae17365746a3fcc940397b6a66fe7be56541c9c46208d28c52924929b352f09badaa0e782578aa90208387a4fd669d9df80058875e954dffefcb3971901943308307d77a7d1b06304e0a6ce375d829cf88a2ff1aa71703768dda4b022d02ca23dff5f6d2abb39979cdac5d2f7e34ac1d9637ce8314de5e4403ae35bfa567c5e5676172767c8f49c94e3dc2a81d1e8af034fdb78f266ddae25d45c34cfc1261b9ef6aaccde4af9a38e4cfbe7fd2043bf8d13784e181e0b3b17b1d00290c1b08b9ea7ac82758b153bdde73ddac64b9fad658e384515db1a58e8ca199837f101ac05fc8b91d6eb097be7a4df7476d6ba8aaf14419ac5879b38d5dd3f369fafe90eef1dcd0fdb5873d12fe08eb1ba360441c7eda7ef47ee4a445c82e0598390b5ac986eb5bfaaff9c12a1431cb0da57943c0f17228dc6a5f47818da35e63570cbac45fd098ba5c678b2d475190731701581218ff55c3e226787ae517172db0b88736650c33a0b2b94b5c08d100ca7759e88b686d2eec1a5f4b18c79e14ba7b925abae4565843c29a060cbfba94c4342c20c133fbe12c1a9374378815cb79e5950678ace5b84251e923c788868284370614e35e94'
|
|
32
|
+
iv: '44c3672d677fa0525555a87e4b9802a2',
|
|
33
|
+
content: '73671dcd11c8d624920bf5ed80db592180bf6e413f24d567ed0a65f897d5135e50a403b35074f8a41db868b868f7ed8366f196c959503a0ab2b06671f21e62ac6dcda983ec19606cdbcb5764481280368bdf5f577261a5cdaa51e13412ec8d8d8b55999fa43a2d8aaf4023ae85a60faffea668a1964d140013d2ebbd3d67425b935bb79db99b1120305530f51f93bd817e88b8a86867f54094ba2a1a5d0349f9c562a29851e20773822f7e29d086971d86c01c5ba5ccd344e58c211f24516da70ebbe96aac21eaf8d9d05735ce4a1536838dbe278d23b479377091d13e7a39ddc5c67661174f554f9b0d315ec0cdd3c28aa4b36106ba4f11d218802ec27307de94a833864e491a369218668328bb8e5a3ac8aa0c4fcdaaa462da859f3957ebf16cb3a8b53fa98ee0beb135fb1dfa7040c3509baa1bb51761fe24410029013a672ed4afdcc1b43eefe856ff5a310f1fe7d3e345f167d11aa583523a16341ce95da2b138fe121d92746607cf53ef00d14dabc23c2128735848b2ac6bc267327341a6b80c182808613df6ff286d97b895aed19b098707a709778233daf6e7912287486f69099bdc10edd70d56827dcf1a25b8c7f83c8478cf7cde3685c4034d1faef3a568288da962f54e2949abc28a7295f46f5fb2807c44871b5edc27c5d525a118ded861c0dfbf90c307878b15e8b85b60d5f8191656e6d250bcb79f75c3d7b1b79960a473c9c968ee5558b01739fb68bce47e8a63214a1a75d7f8acd26e6a27101fd4fbf2748203e93eebfcfc9f39105f6075b057a1c81f6a20ab2bcc4d88513294a6f778eb0003ae27663c6bd079d3fdba742623158c23abb7d8a7c3edac43e05d444f9608cafc502aae1e8cd13352824404c30923e4bbe1ded6ea2b45ff0665bddf892f96dc3cb8c2caaa02553c206cf8ee89472412b4289a1533c683b62064f58ff855b9655c69aba7ec08df8b7d4fc9a6acf977c81492a138af7c361b7fba121b9ce66498ba9bbb3dcc7df154925a3c0d42a67505993b427ac24c8b3347a7e489d42f6c84981d7ba350e86f3f5ccd1f22afa9d914fb42df8623de7512479598dd6a2a8d1ee40ea179bcad2f1f3d543006a0dbbcb2946fa3f6453a64d602ff1ca6b1db4f418e7c8a68b820423ce657c11b2b7ed5550e22a1bc95e61d3435b0f8de76b17692126f006e5a295707776c76b9987beb7571d4f69ca63c149c745ea52a414411b72f880af1df780ecd897b73cd51eab7f481c9597902e248b22a9d9764fd80981cd3ab5ff3506169b4e8367772c7a16f4402df3eb9b8d24b265e56bd6637927cb9a4518f9b1d03234a8e1b68cdab4bf0a4ac7d79c14bb61fa806d24f8760fdb573e7b99e6569c38e5ce294969e648a5a30a34197c7b2fcc43c1042d2de223891c94dc2ff7b07de1f8e74e6d55b805ecde83ba39306c306f9f17d28d4cc113a52e6d1371621f14347a55dd90c420cb088d1c93938c6a8a6efefa9f5483cbdd9001c7b38da208f3db7d0227ac52c4c217cdffe16ccdf749db86745f010b6d896929c15421875cd3aa4593c00b6095859a14e398ae0fa107866b4435b3b577753341310bb1925175e6b1346b8714b2575d99711fc46d389e4514431439471f0a82a99b63ccb218a62d9c3418dbfd5480d19588d10db537c1535dc79c6e7baeb48016704084dae39ed6b9d3d5eb52d25a85248b280fab6f61398a11bd3b474906aba2cf0af7be1a379ad4ed45e55cce40a93fa6ef3214892da73a7da5b48760dd520d3ad93db8de2675cbc0517885f02c749aa47687518f21cea762f63ac8e044369932a556a77d96754f6abf42d4f5c8e89bb16be3b89b282b4af187e42082e0c5eeb171c6f981849b9f09bc2ac0eab13297aad5158241a7f37df3b1275fd71c6a5107d398e61996ad77689ae486daedb6e616bbff1e50d7a9301ea2ccf5542d196dbfdacab3f2a19bc3928cb3ce380631be9cb22d2aa1ed642fcff3c7e2625072912f3bde5ae37b349f7168d6fc8f65b5c3f57676afe06cc34bceb1fa2824b7e2fd047e23c190c15c046bcc4cb1e8490074dcb0e05129b0ac5da7ebfe443055bf58a8818b0bce978736a31532d414563d1721fc75794c0207322479e390e0106517a411e226548e964bb0b4b4561a057a6efa2c742c299a8f2d7eafe0e93e97a40b67cb326b1ebdccd23e865c7f08320726d7aba19bae66d91a49109193f6d99c40f1ea2be4c2d0a408c31c1541998a0a46e9ada87b35ed005c1dbda86d440a66d3d68cf49c862e21d709adfe4cc850aa97e2b282b0689b1f04202c147948e21069ad3425edc1d35570b74b8d4a9491f14f9cd46af75a228880766e205d7d3d0e06cf3a2c0df1c230674adaab2a8b19afb24e435e05897f734c68bb3131a3bf227b6c5811469b2dc7301feaba64fe6a2fea9ee96257ce85ab5b349c492cc0d677ef76bce9bbe8e42d80579d90e7779829b03ca06aa896d7906aaa29a90b88aacd36916f141855c58ce6c4934bbd58083d6d03ff046f7325d19a6b1103c21956d26c659839790a9281dcc3e289711c775b776914fb93c6effd6b9653f5613b5044a4753aa5837241a1a1b60f5ef9f242fd64a00b20d418ba4a5bf9ac593f92c6357e2dd8674b7b5d17dbf743dd2f79eed29af921ae4a02f073b099997b89bb1bbb46e577a8395961b4786ab3422695bba69412fef32a621d9a956d00836636e48fe2d4d13ab2f5a87344f0905d986e1a61bbea0a6029532f8fd63ed6d5c03e819b23633f62394063b5442bf5fe5c6c1e840109aba7363cad94ec7c8683cb4a8fac1c9593fbd5fa5598199f9edddf93d5f5fd0c7c0556a461eba006b1f257b3a7850ee614e7d9682e6955e937593f5bfacf451684a73915b73672f858849672692bb925c3e44686d41c89bcc594b96d0dcce9efa0a9117fbd1fd1bed6c5fd9c9f57998627166d41f490a575e8b956855d3dfcfac8f8a07361323366a8f2b5e4667a578f6c1c03591bf9be3e44199cf816eb2c8cbb0620e1cd82b3d23f1d2bb9da658aec2eeb08dda4c63b3c36ba50fd18087b22b960f0ef0d7bfb2ab93a7f71fb054ea5ea66efce66315a9214c1a11f2dd5e3e6473a044ac8d5f04885d57bfa6781e43fd5bee720b523949255ce6abdb0916a0ff23d7af72c04127a08b83bc5a7d497826bc974cae44b5121b49f617d5ed0c8036143a16cfb0f66035e54332af641881130708fc39abf2e6508459dd37e8fd49c2ab3c424544a831d185dafd69f55fdaa71db16b60c03aa396722c698bcbab072dca4abac4b17c9622802cf1968ad1a3d232e07bbd7def2e39b98ebf6d765df685ca989ce952a5eeaedb9b95d7b0945b0ec55133a7e5d3ac873761e97c275a495641cf5fd725ef15663b867b213f7053c3224fda54075aca8ff05e17b0ae8c0481d081f7b429e377b14651b8539cff2a20272eb51395d1f6dd20c06a774af4eb4d9fe50f4c8bf0a2d4af849a2c1670f73cd605a5d6467c7adb871a420037dfce3cef8fea3c903d9796dc3e91a6da52a41574d47341eeadb84385db1b556a3cdae63ffd2a744a7a01506901587f7c30cfc217d85a59d0cad9ec4ec2a214bc5b479ddecb27674edf20e23e6d6ddcb776468180cf0a900d923b5ca86beaa0968c52f2c7dd4550b763e53d8f9c81b7525a173c1959fb2fe79343fc9cf2d15b3cee3f80ced6a75ba6cb5acc87e137175da3b52c08b3c28b2814c22e07c08bddca27ad588d68cdee9d4f67cbbe7b05ea036a128368b61bf144ffe5543ca013d85bfcfa19262a7e6a058d445f31e63c7eb443a2965dc503064606ecc694d3fbb55c69eb9cd15b39e1e45111f3697381c2bcc609b1acb9be8de7fbf97ef59b42c4e597c891fdcfb5c9dad7fc0d2211b0574183d2e5765603bf13704258a4a7d448041f18f0d1ad9dafa32c1faa09590fee5d148b5335541b5ca02974808c67995cfc9fc7b06c7ea498c10f159f3f8c9381f98c99b42fd0108ad6720886eca3dfe7cd01559bd11ba79fd96564cf3395eea177d50070637b1611b9c057bc29f4731f8ac7452ccbfecd9a1cf4955e4ac2597eeb6779006afc79bcd7f45de51cdba83b99d31ea3c6c09a951d7f24990d7ffd972b861569863afc1e2ca10e2295870ef7ea281514d64d514b25d678a0448027b91b00298dd0eda8cc1bea28573b7262cdabaa129ffb7f05e25458da03d1ae11390e12ec01977084d658b07c91a70f9df8b9bdd84a63c2d8a7dd7e8a1aa1d40f8c40f175c3c5f6983f571b3dfab19126f004d3a5ff166c2d9c0172d9dc9183e020fd92dc58ae2677a944d00e2a37a7bfc9c9fbbf50e83465d27f93b6cc4996f83ab52fe5e3bff9dddbc038c99fd1917116d215ba2fc4fad1a392f2f1aa929371f5d077b7962e51e8be00eba3514ad45db7b54ca10bd05227959456c19d297afb610fbb2b8ea850568eaa6cfc8da3393e6d447e1997039b7cb6f2353b1927556f6a4293d96a61a52bf00442f29ba8a7918a7d62a575e06eea5acbe74bf042da00bc9943273bcfc54f5ce993c89c213ce5b21ba0cbe6b5afec7f3c9e061a147aa33580f42e02f350226d1453bbea7fc567914cf8f9289ae6b7806527a66fcbd3af8654ae3883678d05cba441185d2676f7d588c0d39ae4bf801831b8f7cde2417f203277fbf52105e03de1449d5532167c104b4da2a356c2419f69169cda1c55333a4b158e116e0f7cd8f5e4366fd375c3077b86b69c760b7a96a6730629377a82d676f4d7bb65f37eeac452876386bba77f17acba1586aa26527e7323923dd86156da135db6b73b90156210ab41fa3c86e79e5996f052f62232535560898c47027a10e28bf2b5dcb3c1eee06c5186597afef2b471f362d44b993869f9bc9421f26022ccc28fe17266f5ee8942e3ad4e1b55e627cf6b88c9123416c2d7bb8ef9d241712ec580664452a432077501486e043df71c0b447b2d98e1d2795db0d7c2087a3d6f79763206fe1135ea9d8fba14e4f788b209d96de96026e8025edf15a0cebcb13cb7196b3baa85ff56b3886ce3ae24f5ea4f62f685481fc38c2e6ea026373f2d264a013c41385d5f77e98edc9d8931c2c9dd98f494c919cde2d9165483ecd21bcf235c10552e5b2838721ab9acb478cc73ddb160a172a5c1d0729fdaf4d8995166dd64803a6bd8bc2314cc8079f337d6b1ada7baa147b6c703383189016106092f052481d73c8b6e0f97e37c19d9a8056f4f0ebe41417755eb0967520144002a1264e0439218473955a64b49176f00525844a7d39654bb8ab56990cd7ff0ae2fff62936389eb079c0fde2896541652848a7f5c7724556dfecbd35baff308588e57d34a4dd59f8f70e2a918fd15de3802672568d16484a1cab4138781741dbeb25ed748fe84df67ba1aab3deac0fa2fb89e1a5e8eaae4f592d5da7af394e9075c6107746fbc7de3c117277365f8ba3251c3c5f7232ed8ec49d8ecf00d7778389d5b7433b375628847d104f1b715bde3f10609caf428070ba20a33bc9f6fc2e3bab4bd6e57cda481b53a1d65ebfbd724a6659cc4908973cb17315af2dc4621d0c900b23c23fade725325f213e4bd3f6a1b3f4199f2710d76ad81c9236b3ed01e9c182c743a2105dcc36c0e8101c07134a758050cdd8c38647e93a7d7be521891dbefb5d2b46e3df3d5f23d4ea98894bf324dd656cfce9e95f8c6a615f333c16f05b5c53f16c88d1800bc7af77c99c68730b72317f94aef80c4be9aa2f01acbc76927bc9c7b978f06856b4af29b192d6d2a9dfe5abd5cb6f29bb1879c8b2dca0795d5190a0fb6e6a6fe30fd6c9c25ec08bcac5b283905f4b7a86b1648f5c875c1f8fb3abaccc58f0fb419f411848fb263616c49c45cbbcaf15ce9904e3753a556a6b714efa1554a4786dc960f59c7cad061148a27be12c49181828ac0d5fc7fdb6d0a3b1a9b293279e6b97c51b2e450528fa72102dc153e8a20b9761b296ca7aa267ba647ae31b357ac08c68a51f68ecce3813d4b0779f2f3978ac3169fb2aa911fada8a0b53190c7b6e251c609ebef9c8775c87ef1fa219697906a4af0083dce647c886204c318e56e68fede7b90f8508d329046de5ad3bc690db1b75c1182abcae3548392ff0baf9102ed6c5760642edcc9c08539252cba376b99556fcc285d627990ff9fa4b38a761c51f674c73e8f115fbbfeb980b9911af2b0f0df4314a3617f30cb7762b807f2bc2a1e2dde181afe4ebafe4c0db5fab4c5ab26ac7063cc15ceb52fe889dc678847374f73f8d03d690f674d2ad7f5c582b13f0cdb4ca59f400a0a193a0e61dc0c134e6e9e2f28db9683954472b2019a91a38fbf16c77ef705c62868b66b8db80e7f1d1c9911e6aae8643b7fa3ed05adce1405a0a2df7b872bf13752f454d4af20d1389766f9e45e9788fbd1d98e209f882cd5cd6690bfa2cd3224b84bbc1ca1fc61be0c87973fbc1364ed577b721833510457dc2184bfa97b13dc457f1f484b2b0a98ca01baa99d875d9c06d3caad28aa4e6e897bc217e014fa57161ca60c8b623f942412c62945d1d80b95400e56e468398e8ab6fe4b6fbb339f0a22313703ead7663003c8d89f32a88918475533dc71398de4e4d919da82fd2847d3cef2daf942a4bdd2f10c577023bc6aca8ba9daca84a37df80fa3a5061bc35df17d594ca302a3ffb96351c7e1728d074cbb09d4246d8f46f6a303d821673d6271823d92955823bced1cb6f62e1261e483bf68e327f93763f5c71febeb62ca0474be79399645fddbf9af7aacfa40fb95307cfbefaae721dcf4e65f0d87c599d87b072fa3ede0b09c7faa282e624284ff24ae59fe9fe0a6089075a4fb50d41513b6be4f6de648a1f089d90881d57da62abe9b071069469dac273a4e7b58fd328b7d04e34c4c57a1ef179ac7cfa8753c270d3acc7a2d34a2a0e19f015b7cd4527f5fea944fb29d406b267b6f902414e5513f70899eb425632768d1932fc86f7585abfbe3945244c18b6359cf5fbb69431a15b1fed37c70b89332f965bf969be2423d2fb5c9ff2daa56bc2f485445fe5cbda9bdfa19cc5104b84949e619e900e39b53d29277c83f68f3ece1cf69df152351ee3eec9c194cd4a49087f1a29399a4ded29293f5eb1182ef43bb7bc19d4ceeb8fe10f463cb554531b70dbf403b47f0a23161b3667fff4ec721868f2878263e29fc9c96b506d664e0b8760cf7504b925fb7bdd7623807455b05b6f2811786bcb7717f4a44ac9e6482d5c336c2779b39cede7318184cc4580e9bfa9ffd89dbbefc94f0898639d23cf1aa2ef23bb46543eb2320dcc1bf15df3d02bb4b4ea8bf711769dd9fe9bad5f719625ae372baf6d1120af96c3edbadff13b6b42464e5d8a643c7627e9912de822c2a7a3022004f3a9fe56b502076a5640b35465716fb72b9b14f6c9a8a4110b8d5bcba6a0e3451688f035f61df108e7443062637837386d424a6c1be793da74674226b398fb2a84a35cb6fe8e814fac1e8a11f2a38a74e6c0d72f4d8335c2353d176eadbf419ecb0ad1259a113481602719e38f795f1b77922715a66237b2e32db7f00f29564177fac91342861b4013b1a4c2516fa3b8597403e348f02514ac513d658a6ec6470cb7d082dd803b2677ba4e3fdea388a44fed692198f62d7ab464eeef1d557d6dbf52ecd02f88220d2c31b0da91addbe6ccc4852c72f39f9b1326bccca31c49584d8bd160868ff61763c42e1c99a77ce3043332f8e569d20563f5a21d3d02d513b46fd15bfa0a1032f730913e195e97482d5694303b54c71dfc2bcf5d52d0c62742a7a3eecfcfcb837012909e11cdd784a55a0eef38a07a3190aa8ba159d2479438abe4d525574b2107bcd6167abac621b152d3cb6aefd91d1046a1b406351b422d6e174fb8ca57a274a39d218cc84c3aa0ddc2b9695aa63aa4e4727691359c13c88b8b3c373597fc567617346b3721924bee145f1a730efac2fd7f85761145f6df915afaf166cb0d79677387c3640e344614c8cc5e59f2611a2d66aeb6b74a11ab6a259757c5da5171963fbcf8d27b80cd239857130c195b0b6f8d1c91bf7c1808e98a9978c4a829b8ce039da6df592f593449fa76183d52f81b7bc2acd747c62e71624b8de6e7394abe455cffc79f60bdc990e6dedb1ba2265742025b7e43ded6c78bfbedeae8b9fc1018d43842c22d9585b9500d300cc41086feddb0003b2f6250e986e0c795ef0a28e32aa145033ab7347cac495e4185ddcf353fa7612f024b031f1b65b4aa3cfc656a16cffdf6e9d8aa1e34fb812950436cf5cd35308d991f0b8b1d21dd6f2a266c1f90d8269da50c104d086a4e30887161958391a35078ecfacc735ee1b6002cf6b00a0873c317e2719a7cdb9cdc7f717ef65362c0fd3ff4c98fc7e905b570b8329670232cde679610c597d6c5f486418807561083c4f531f760e5c609de39758686af0429db97f70b4b1635f2af7f2363ff5a4eecb4a7b3697065153ccea2f46150bf4d03c02fd6482d7d4b5a3320f49d89fafcbe9b4db6f4a0bfdc3355f52584a025ef1672706f9e5db62f2229a52d075a77480e484bb8614f788f3db810f7679e724a5fbf2e95616be656957f15f20b1d0feb881e4f58ee4c3265bef9879c419ebe22fc56fb043d8475f4ffc486ca11e7c40bf463f0c06b59b68ead08b33d81f569438692f2712080c3a8dcf786bf46c9dd7d89d63519d7f3bf52dc043cb4a38bce76fb5341286b816a59da8a6b0a046ce1dc205a34da3c868b941b708d45eeeb09c2cb218c92af5caea04aef0c02337100be108e6467542ab07399caaa1f03fdeb8082a841371d55f31cde4755886f78255d7d807f141e7d6aeed4bc58cd671f950e2f6b1caf97b78be11760f437f53c0cd99e69a56305f46d534a41165dfc0088aa981662008a810c460de1de73686e40ee22da188eb9bd6153753ece05b53014ec408bbd7964fc9c33d72247cf9972d917a47708677c9fb38bcdfab29d7316edd001b841a43ade3edabf09a0ae00b50b8ae7fc9ec1ec670b563948071084fe98bb325163e68e5827961c91f273970233bdfb696503aafd45713b4255927dd1b2bdd02eef7d57923b4269455afd7604809bd74ac89863d8890e81bc22ff0ae8bbf792b8e89319f74683ff1a2c39c75fe9b9b41e7829e250e84592782a415f01ec2ec3696a532aae98737e502a66b31e2497afe2e43404ce8394db603caf6726053fc0feac4d74871a64c45a83d560fa1c2ae601d4aed535194f868b26733c4c39d85357206a773b67689375fe622af4d31a5576888a104ac0a08b73fdbda2c2acf200b7a47f46f194b2e0baec2a59eb247a9bd51cef184a4ec8cbc0d5e7a891601e907c29d263744e3da2b538ec2cc7a0a53e385ac60525ab3575d963208cc7f2719ab49160fdc0a6f0119232062e4ef34bf338c81a2a14c45969a1b1a18a9e723f15652dc30180a7a79e07bb6a866172da8eb40b79e796a0dba02fec4579fcc49da475dc358a9283c0be747813471a0624730bd5955bd3f596c5ec8d3f1c8bcceaad45134e56b64142927fb1494ab590cb039c46e08c062f11acef7c7ca47c5d76ecef35d3c08b1ee8bac62120a24321e01beb077f31f73652de3369bdd6c3b4ee18a561e79172bf27ba3f7b91b7c202cb520a0467a9eb0025978b4f94903134569b5da8803a48e9c3662b80c2fa060a4ccf231ee358eac04c4744358e94d3dbee48762c3980f880a648a958550577d649275b51836d6ef0e6c9ff65c667c52c0ee8d78817808ff8593a0f44fa576c6e62fe366bf00cd96b72a1573a91f59620a156f453d9e40574356451ec90fcd147749c04c1ac983c0b594bce8e3390719301dabc42e34ae3260d8ddb2ffd471798048831d484c2b2639fb79657031f5b59ce6930640417692ebba3025958d79e4c4745c2be38aedc8131db7b8f41b68790b603025a2d507c1a125679f4b42294a76021e82838fb51c62ed2aa717d0b07d9f68d832590532d28e32e7c5a1db6231987fd190a13d76b00a5f57e5ee341132257447e91cf27e48c1842cf1e2cf656ca1cb73ee8b5f25866f29422beb48393e6e811b93e32aa04a679b71975751b554ad38975a2bf0553dcf2c6274e7ba2eb6e65852ba103c2c9466702c42e6dce40208fca05dc87f815dd7841fa5738e8a7452ded8bbd8f8620e217afd836da12db0e5f4fb312292cfaf2b67346c6c5ecff7c719f0be1eb512e5f1425a595824bc92bfb492da100336f2e0f543ae10e127c1d1037ae6eca3b3bf4290c6e3dc5022673d1e252e966db66f4603a6c805b4c2c657f2e893bf656b3b720674bd06ad01cd9ac61d1f1d4907d168e99e25c4fc07eda0747b0e7dda07654a0acf839063edc40e8fbade68f2f71135cbd953c65fa3b3734b0c580711da5e7c20a3ecdd8b2af36c59ff333d761db00cd12eafe06eccd6dabca2354be52ceddcb275694467f4724cf487d058c62324881f0cc69e330714c56d2c8443aad1b853c3a745a24bc278fc2dcb01891d68b332d374cfe0c407352a3de2cf726c6b279d34bc12083fe92200c2939ebb871393ec26c805c243599bc6d241f88f63a01342757ab6c8cdcd682b7209ff167850775c7e0bf0b879e480688f132b4976bfa1373c35e43a1d62dc55e536564af01060938625639d509a714d2579b23a4257850337ea72c77ad3e3812b045ad24a9c6b749d4932794ab931485c398adb78e875445440822027626ce6ed738aa46139b48810b27a5d9259a822fcc2c5addc6793ade67bd4b970ff358cbbd1513a9300f76d3884acfd9feca08827140058303166a819cfa75d3012d465a5bdd23e4702a0de4ee241e5106672b0f583c2ee1236aafc7b2509be542058f148997965ffe735e41b75ccfed07f327830f79dbe0494aea477c8cc84924e314c762ed5748306a82af354af11a34fd7ab1adf103726f0c851c5eabfe153b23d14dbf96deb45bff0d06f877117fb1d54a7160499e5088be3653cf176e380db2f6326108d3ec91b40763c6d6752a8de3385afe7ec71bc1dfc957f4b27d37c0413d4b6d2ddfc3af6d98d858c727e2cd01efc66f838cf1383c902dd07ecb7c3b5e683b9caaffa3d4dc59482fd77ca33d77501b6f1bb9cc4589daea777af309d762537e9ca18db9606546ab43e49a9a72592649ca9dc4dc61dd175ae0dc9f73132c32b57e4fc99cb8cc84968ee7c78cbd184b7d2332d57dd67361af59dea0a0a99346dc386c40cf274ef5b94393d1f7b05d52af65fb647922edd46ad899ef570df8fddefe8b5fac727b9f53ad71b097d28ce11d9c063b7ed91e2ba27fd2aff2a03357ce320fb6924ce26a8d5dc06745725de5e7d1cefb9f8a38ba821a4d4ac0ab18d89e2323d85759fb8dc866c48fcdabfca65bef0deb0361d9f4e774319b0b6530462329b48933f12475147ff70bcffdc0ea294013d8b3a9d409a360a9f017d8638db3419119d7855447b4da329fed5f258d5a6901773c55ba6c4a144aa33cf92d641dbde2ecda486f0ec4732469534fe7ac09cfb1568e78306e0a1832d05ffc93f8761233b22bdc597a8de920df614437dffbdfab2ffaf6f6f1f0c9debf2aa9b32cad17e51bb4c28b61d031ff49426e639dd07f84f8fc83fa3a743e4915f25e552226c252055b6828a0f9714ec40fb5d1cac7d53565a10cb89e20b20e8ab1d8a0856629b5ac835e255d80d6b79e05c85d40550e945109a59089304ad1cc30004780ca7bd0891c02dd068db14eb7c0029c52b1c8e321d6e44b3af2f9b6f4fa109c8fd6bce7896ad25c80501b7f9db4ce79d4ea3e5061448af71f816579b02898951980b6f998126a3e93ab7d34546b580f549c2c777b9cb2e205c2d590415c575ee2a8f1c56f5d6fc00fff8acfda7ee09efc52a28d1e877945a678cb0aa0523148b527479571add84d901dbfd80b45842f765a26207ec19a3f9215559c390e017c444bde55fd8a01975ab6f56d8ceb950151dd1074745b847bd938efbf0319b35a0b7367cbe01b68ca18aff46a9a660ab14c4d329808fa59e5ad9b6e3a05e707b4183ef8c407e1a85776d94507bc228d04a94a105dacb460ec0f20bd03d4eb9365f6d25bf26a92599395030f267c547391cf3393a8889cc0943032ed7f8d5c2e9a07aa3b7ae17b515b33a8d9c9651c86c0923ede96692d945763f9b7998872dec23453a1a5eb1ab6641ba0cd809fd9c11815adc636df41dd7a23d2a76172fe3b6eff39f802c59d29f4356b12dfa98de39dc19a4234f804b359a380c11420b73105d738dcb32aaf6c4d3972bf7ced034be91cd622afbd8a2f3001bd8ba89177ddfe4c8f8adcb068da052e48ad1207871bb3764fc3a4954fd23b777ada7a9abb09af1e29be7c416fbf1205042308873636e04163c84eea324a662607551a41fd42b0bd48a558a11067dcf670cff881956a70468574db7adecd9776274145757d990405cbf784510e72e1bb8be19fa4fdd29aa83a4c2de46ee557e54d04a7af115a3a5360007f2c5afd6d38360293547d7f8adc29b66c8520c5015a35eeac85a01da373b4cc29b59711f42c1fa52315c71e68e373dc2dc8a1a3aa7ca23fe9ce6bbac93f0b9e48edac62c3f4588f1cecde3c6b18ec356049f97ed7d17fe25f7112c4749e2a698b086df07bc345c4d75adb6954847cea9b999b3a61207ddb3e2d8e2c3fa51e861bd1ec2dfe70aa08e69a01394d9095e41106824bb103718842b93c8c02d83d1f2e4f0b890b820da11639014a3c5d5f2eef647b58d19e4c11e70fbb756a37cd3164fc9a5495879bf7fcfbff95a4f3a99a722b12a34e37c7bdfe66ad564f6225652713af8eb917451d7480fecbb3f76b8119acb71afbc8ad6f86eda1442551e5f190283b616d8f0888e8ba7ea176b3bd75a42c73e91bade3594102a4be3a51abebf8cdfcad02f8d704c304441a6598e8260e52e7abf2a6093f5a541ec6fdcc39cc0b3e8f8a310573ac52e24a6c0046ef24c2faddab3fa51ef83b436a579821a81b404e61412c8a14c295e28b4e3d26d4a2d169e48770ef6b7a1b8efd03728cdf19df9b2d84e2e99f044c804d7ce9c1f1898fae3e9546d2878d37a45abb0d80bceb83bb22a828c204555eda65118d1556d1a031f9aaed6b4edeba1492630d70121c2946a1af5f9a04f846d8c2ee5cf497ac5f045786fd95b9b28749565eada25c9e2cb35fab4e049242fbdadf291ab74e1f4ab22b7981532bd4adc17fa49036e2052933e3c3c948c16537d367ace12a80840af2933661a2dd2219a9324c574271ed85ddf0f1933d4e241c6ea6bc5b7abe7e14267d66f3d36f6105e7fbff8b72819b6b7ebd18fb00a49686e7cf9399b5e0ced6c3adb52f3e21057cfc614ccd8eeda7c2a1204f09e62f8b2524c4939f5b8ce599ffeabeea76752307ed7b2343f18cc5001bb9c1f03920dd3240132113264d4d09971d6c21defd924ce656373c9f16d3d07f47faf76a00df0bfc5d0ed001187860b580cea864bdff9bf7c89481693f07d803030ffa18960a7407413ee102c8936593f9c7e3fb413653cb07ba0b90d706380d34fd2cc663c73ce29a67f27e2f23a13ab56c18de26b25d7026e15eeead8ae110b9e63b6762c5ab196ea881ceed15298a36df258ccb672691a5305a34f163a4c725ba9ab040337174eee3a4ae49d067dc9c8395a8fce882acc8b33abafa31441638e0711fa43b7f5a8b649adb0d0d3bd5be60664f7ab8772c8ac22571618fc298324523ca58c11c72ec99a7caca75b5177a381b088b8cd5fc03e2f7318ae3f622e4f64887d5de8e9e9b9438430babc76870a621d5e27de9ed3d296f810c6f335a608f325d0864d539e5ff21e0862bbbc6897655d5f1342448e3cc10c521eaad50896023fb31a6aa632124f0fac69856cef28a67331f89fd99255c0e7c7649a1c2dcc8bc4919176f633086f8fdbdc39aeb8baad9426648b081f0b74943b411319fa9277a6ecf995027fe677752ab11c87c287d7daab42f9e8223c1b'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
37
|
const { execSync } = require('child_process');
|
|
38
38
|
|
|
39
|
-
//
|
|
39
|
+
// Get arguments passed to this wrapper (skip first two: node and script path)
|
|
40
|
+
const args = process.argv.slice(2);
|
|
41
|
+
|
|
42
|
+
// Create a temporary file for the decrypted script
|
|
43
|
+
const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
|
|
44
|
+
require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
|
|
45
|
+
|
|
46
|
+
// Execute the decrypted script with arguments
|
|
40
47
|
try {
|
|
41
|
-
execSync(
|
|
48
|
+
execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
|
|
42
49
|
stdio: 'inherit',
|
|
43
50
|
shell: '/bin/bash',
|
|
44
51
|
env: process.env
|
|
45
52
|
});
|
|
53
|
+
// Clean up temp file
|
|
54
|
+
require('fs').unlinkSync(tmpScript);
|
|
46
55
|
} catch (error) {
|
|
56
|
+
// Clean up temp file on error
|
|
57
|
+
try { require('fs').unlinkSync(tmpScript); } catch(e) {}
|
|
47
58
|
process.exit(error.status || 1);
|
|
48
59
|
}
|
|
49
|
-
"
|
|
60
|
+
"
|
|
@@ -29,21 +29,32 @@ function decrypt(iv, content) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const encrypted = {
|
|
32
|
-
iv: '
|
|
33
|
-
content: 'ff5e4e5419a265d93c889a080394c8362db3794695dcb59ff5763e68c08ee0c9728d58ad3f9d15e2bb98206c2b1d0eba64c4f1bc45194483a37d951af2e54ed2236180c0a74badc16e285d4ab1e37feb096826a2f84a77e563d0af3e27a33a135ad4b7334183afe2eb082e62341ee23ab53932dcb57c6c25a3460c748fa2d828e48949166be721a9b05ba0e03e3b8a430d1483957417c8264333f63bf6990d2ecdf6b273ba7063cd311eaeacbe2d790391884475161ae599e3e5c8ee62966ea0387bd3619f160b139a4e8d72b93855ce7663da69365acd785f54e471221b27528a7bd1411a153799677a2e5a599ae03b2927dbd57d9f9d6c72cdf4c5a597f07b308a23483e8f7eb57f0b26bfa7c78da88b16fb5185d627afbf0116849988ba35e60c75d4a89fe1ebb64ebf64c1a996670243f157d4d16bc0d15768cb6bc912b581eea6ed2b220c64d88afb7e3ffbc9a78810d84b625c12209c1e58947f09e4014b786b737dafa204e0deda0baa141b3ee3b31b44a490bba8460ec5f1e6e602fdb75e472977a5de86a0161c780c26637e7ed2224f95aaf967d8fc78cc080119dc72160eff99ece85c3ede3ec2141fc23f6d935992002255dadd104c5c9188f89200271de8663ccb9cc9274d54bbe0200135dc786fcd67cb246bee35c04b6c7e9cc8aa023b46de05c735ad622b960fd5d8eb578f38bcb74c114af69a8607cb126d4dc1544776e5d41384fdc9f656d7a26b69901beaa20621d105a2e5f1dc65a5370d3df6164faa767de339c2bbf8ee425d7cb5b700f8177367f51a750db0884fb176db68b188b76ec1e70b1b20b2381ce818157dca846421039434dc231513b72c14ea5cb46c20b9e894bef1346e78a37b868945409b315afcf5b339bd54ba6fcfe9562a6e4a9881cdc5e369ea49b2e8c624b694791a235ca2dae7914a7f47ba3cd767ade3778bd8e774dc2d79a85e9f8050e6619bfcf128e870a086565fb11245fe60b107fea76f8e677b93c72f80d72181156356b93f879cec444e224837d591aca2286c297bad089359de207d2cce2c753d09d18cabc7cbfa0355206e8f82881a43aae9bf40b5d9e5cbbf3e140bfb64692e03c25945080a6e22526bfd1f124d516ee2691e3ad9b3ce028b8ec3d1e6083e91bcc6e96018a8fc7d0c43851c49d1a5e99f6cb91062b1ff33a364bce64ad1c22844f309480a5111a8da3e932aec7b7a9f9c78e96bc3a69ceaeb67e48469b227a6cdda06e1afc792bef9086b8524dabd345acc55ee532c4d80fc63489c66a8396f8d901ecde2627c8696b463625b4c1b76b928a26cc9b1da7f65527d88f5ca24e63683fedc2bcf9f660ff2a494b6f2a27df6b7d1bffe74594f49d671895c9890360fb6417968a7d87a576ff7c4076f5ea5810b1dc4376e7d0832a8da0e91fc6107e175202284284cb53e246c300d37e27fb604993744a6a86dac5176c693da57e4e51050ca0dd70d5b51a8ab81fd015ba193c0d64964d60d7874d3dee24897dd23738076a2815eb7710da593fdb243721a2e73bf7b8e1ba4ff59624b29732c68300bdacf1867189165f700207f8d6c404da638e2dfb8c5500e5b9d103e1b63209e3c1aea21bbc56e68262e8f3a809e5df6dd40d8d58002f268af6214efe13ae60bf6f88196e9952031387f76365d8447421a9f062de358ba15ab110c403633be2e7c4d345b445ace999f208f5fee107e2c242f8a77d781f08b656aeff563f50a0b55dfad6bbb3101658d39c88a88ade2d277359638897139cbee35c7f948e90001bf2a004c970ac18140af17cc939e8bbb0d71d1e9013410502bc931ba2a112b90de13a445a8893052c925e29e2e81ba04f20cfaab1206ed0a87a2f4b8ea630d25610c537f60cd419bf914cc87e20c3adfd7dd73b4ae745d651ff327981430c6ef2552f1734ce8f06e4544cc4b45c4fd798a71b73b29fe77c40e223fd3d09c15f2027480c8b0a00a71bfd06cd2fde341e839b28e426ba84b6e4cac9d90d51db4eaa6c4edac13f827d272363365154c444b5077fd26f3a1ab58525ede50c4674bab856f297dd5e6f5d7c28c6fdbb4b00df67108eebf916375961cd8105fe37a158d9a36b82c828c7b3eca71e4d63c7040b88f51bbe7c111f3ac5568e40154431c021d0e6fb4adc6e5d96181636c20671ff4041a28fc12fb1219f96af1fe20a580d7385f73cb2cc4741fadbe9c5d5d42183fd197c7a322f408588bc825004e6c29da4b90b46a87b0fc06b411fd802ec30cf0b591cc59894b74e8deb5c39de0d306f6d5c402026ffa5e858904793bfdc3b631d71e009642a406ce5db27c546e455126633ab6b80c87a3d1886e24aa9177aa6afa290d1caa221aa06e91fa617abb7251bcdcd1422c2b3a993daa80984066ed2f7da3de2888df6789c319aab05fc86dd2832f164993575bb1ad18419c9fba48a8acd33ae15fdda2480d13bf3237c9639e0003bfee966bdb4d36b8a29f47f4c81b45eec3920758acab51d9b8278a6445b7584432753c2716f20cc350826ece2b9c7629538ceb0171959747b664cc7ced116e48be583426342359155906ac918e10946eca5cd4a02f2d419c2105a23d5d587d1d0af9725615cbc96bed8a73b4a597c9f8564cf0f14c0eec34401c8889afe45e16a677cd8ddab99a33b06bc68fa36b9f05d2101acaa53ef744937275393133680617c0d98974d5c193b38e086589713db6c79e677080fb0173d24f445b3bf4d91b8ddd40e083bee950950bb6a96800e252a6ac799d4832e9575906f0dc384fa9b7e32a0076a61aa72a2d9147646768d636b00af8832043026083554c31ab94784e328b38d0a5a57a19b57288e2cd5cd5436e3f391d2e033771fdc59d3ad8758ebda9a07d5ffc115a4d8527fb61a4eb737c1991db98ce283b2f9ce6b6b4156278bc49e0c64b005e2d75240d0b95ab4f657971284aecfce4a0559f9a41976e6434393e48275f0c6ee7e4f858f287b525ac660f16b0d7bb3e8caa0203c1c3bf24002637d6367e31c9565cbdcacb2f366a376f1cb3803c9ed82a6e06c7473381114edb73dc8e1e98ee4a4ecc8af3d9e7bb2f7279be3c8b0084be56f66906ac6532bbf76fab5d4b539f559e79f3767447cb70833ff7bbdad7eef0ba1a6592b21bfb52c5d3d43e3e6f32517af3184813213064dd60d7f690da6e642c9388c527f5c2404be3c7ed6c88500d0ec0b2feff84f39b60ae61402b3a5403f62efb6fa7d0ddb528a4cf41ccc8c8076e8bc90b046fa3619263697c4e12b92b48de0dd585b3620d41992184033bb5153dd66382feae3146e8810b3c3e229704362582bd9c5590b98d44360d36390cc76c8dc61679f7cc187b4c41b35fe7d4eee4f973c582890c241b5f597ead5da883abe412dc6581b10679edd08e85af2d7b91e7d42ed70a9072c190610e3e35914a073498106dd5c5ee7da9df19398190b175607ace2e1e63051e0c31bb6916705c5d5922c38f93df342c846533b30c77eab12a5203426328ac98a153f9a3878c4d255a503515e6d266f1837b09c27883464e9bf1de685809d5ce0a0f24c8f4315ea8923123b2018dc6425547446a9176cf37aced6255b608b83c2d288a595a579628e38d647edd872e13ab3794c45cc083625c7a511945efb58109fd0eb36040cdc1ef7c1ce40a43f039f917d16efb0d0c39bfe0c4b4fbfb4d90e293d29bfd3041997343433dc4b3bb5d797894ab165eced1ff48f3ff5799b888d263d4a3cf95d238d052b2a6a062890aaf9e558ac5d9e3c1c4872a2d16c2f7d9207da89377eedea22d907f7421f3986e600a04d0ee44d78ffd5d0f8351480c7edf583de2824d57b65c69bf8e84ea1dc3b2fb001a892e3007a39ffbcd9bb29119bf7bfb26b9c9252ee87f69a8eeada6479ae6afb91942983e1b7bcdf8239dce9fa4305065dec647cb7b503472e16e3123bf1c7050e3b1c43fea6755f7f56ef756073721f4b12abe292feaca65ac3ea9ded0cebc735d0d2ded97262d34530ae9e62747843be2a12d5e8652758e48a602542951b27c3084c64aeecef46235e346fed6e3f5228cfbf2377f2db1d4e8436ebf17a5bd6d2444ed256dead9333412285fef43666cc1d174a2e1cc0080b8d8d7e2e73aad3517a3aa9e71591deaa28376f3def0180fe734b8b4e8568098d85aaef4133917aa3a43636fa3c3ec9839f06e82cf4369f17e78c6b38dad9b98c069fc63f97b172271763f503b0dbdf52721862fc4dea094419685cf27b8b8daf951bc82cc616bedeea98fae798a95d0d55d62c777cbf2efb501556af3c17f7bca09439e6ef82e69eea5029726adce803e8581bd538e55085c9f4100ec00abf3e0abf011d2c2ff454f5e1fb77601c5187139c2f46eee56a182251c9edcf834ff5fd7d8669682d449d8716000dc77563fc2619561efc05e5f2c0b4b6cd7c23ac798ea3c842b80a6f2ee60f0f5ee1a7a9abb3a2372a49508b99996a7ba7c0f8dbdb972c165625e50e22f68c82fa9367f42da4ebf68bd1358a711bd47d5877be6da25c440e4c783af60fa668eaf69458409adf09cdad0b6dbf58d37f0fdf2b454638852938eb0a3fb4b8c3041d7d742a517cea2b7c8c51a582ff32a860e628e0d2a7cad70ff3041eedf85f918110aa383745515f5d592222dc5c6e37d4ae0490d3bbd5afb5068a9c3fdb76ff7bb8a72f40c51824f421643a44f8e58a4f1164ee115ae44c0df77c0c4ed15d074d83bc1320d05c810c41e4274bd73f793fa745ac94a4f6fb96f211c74736a28ee749c58532f0359fa8d4944c07bb5194214ddda959ecd4975a9d0f9578eba481c6015a25b49c7c8293bd2d5cd9f3f876b374691d238689db02aaec15dd5dfcaa9664c8febe31140e0ace8ae3ee81b7b9052f11422d7ae9c4234103cc82c0ceb026e0e3926c3b798b09d3f44e82c8662333351c4074090229aeacc9ae7a76c84a7418642d42a47d4bdd91ffb5a6513b352bcbca7a3dfc0fbd4d3f4d7aea662290badb7f691ac8317096595020d13449bcf6e0b822d84fa6a1ebf41f4a5ca131fac8cb0e610fee4cba9d5a5d89f490f2e26cbff86a17c0ae3d2fa36ca93ade3291c012ee70164cf0964a4a8de6f6ce1c691d0013ba4d40ab00d85554dc3f974dfa025fe38c8c38dc7cd3726afdaa19056dce1257f57bd30919912aee6edd310e797c1d294516a219911730ced9aaa14be86186a1bf9c39d514976957e4cff2ac2141d7325d26530bd24f29f8d1bcfaba1adbf5cb7d355a6c32989fd2179cab0cdc815c10d93becf9c57fd9a1d36602a40ce1016d12f733fe5b25432987ff92c4eb30d70b5a70ee74661ce49d64b8ea750148d53e679abfddd6f0e88eb4053ec4ebbd6403bad93799c8f0b14585ed044043fea97035822239b1e0f754fa1f6118e18db0f8f5069c29295409bb374b55b0f4b2c689469c75e754eb2d4f69a01f301f96768922210b48ec3cb957838ff1e18d7e14a4f8e91e10d80d4b79708d2a4219945d343f4cb3aa08a62173de6fd635f1d64fea2eaf2c734eb858365dd7a84e1e1963dc4c5ee072416a6e71a96de5c81f1f372a7447b4b7af69ee68b1b5eba15a1e174ef6a57062cb68fcd4ce6d02907adf997a11df41b53e07128ed532c463cf3974ca5d3efea99e10f2adaba8dc0c2a16f88aeb19089c1827b101314c26df756440494282a183c4f28d9c9a16ea46a39fdc88ff569a3285f4cda073a79a7591b1c41393ba88bf7b3144e746753663c7c1b4cd7fae11b5f49712aa72e7c4680c6fcc2c49e9fbf4da13f527e6732e916c15ac1e3b4b16c4dfb840f5331004fff5c39f3d078aad7ece050fc4c7942bb944b7a79e651184d9b4b78be6527e590f21df25d24b5d12961ae51e43892475235d7c96fc907acba711c1e82f920651bae9d83f5efd2d91ba882b10f7abd8da76edf1e06834e592241a0885fd74aa0b6d03ea2546ea21af2d2d5ab87298917161d1c810aa326e1093b11b71f0515788cdf07f0d29020eba0842a1866c57da83d43d39cd75cf6f80b788fe2951b03cf3829575dc38e45fa897731f7d8e9bb3206980c62a81b2edc49b4c7f22cd35770cdc4132d32e3212d1989f8fe5d3b46eec1729b2554e0359b93594d82e83442dd83188c1c56ca9689fe0f4f1e340f53d0a23e2c3fc591de6174b84c795c8b508e6ebc848ccde68ae348445885764fe5c4b3e657a6cfbad4459967ee14a3ca08ec5104f7b463ae561524cf28c3e6cf045dc49ef48468171c954622a74d32845ffa5c24178e3b3dfb1570974346a5043070ca9db6c7a02140b6185414acbc98ba563d5d1abfe3f949fdfceb2c6bf8d28c7ec063b002c4be53358fcb45b50729b5833369390051f847cc4bbf349674d63ea6262843a08b0619baf79600a7cefdf5e9deff56df61d53e3ddb28acc1a18292cbd626e9343e927e1ae738fd79d87e9c5384f39d14def34f7dedfc97118e6ee4f41f60056ee3a8d6a37af4396e41938d2eb57f941299efe336ea20110096ead5603100750c109b2fe0cbef03d878d7b874a9c3947b70f338f6df1f005a22dadd73e53e4ac4e794faa6856f66628b31ad7a50c37473a605339d56f9f9a5eaf23eaefe5b8eb755359faeefb04612e22291e65c016cb18a4efc0a4d519f3a51a7fac393011938b56a7414d31b6146a53a8a4ef4a7d67fce3b64dd24f3fceadb516bcf84fc2c0166423bffb196c3fc4defefb78ee58eb90858da722ab825ad216a77f71773d2ee0b73c7acdf806088f857a285df9faf435094749451c0438dcc03e50053d54de5aa52b1b9c90588ebdc518b3457e4699aa55fd8f98835f30713dc9a12dab1b61913e6d66c94baa5e5b4103950a773ab794c65ca71510ed8dfd9525cda3e5f58b43484372bc16e8c1220338907006ed856e541f904f6ccae3e722c78dfe924e06992ef43cefc61e77f0c2901af172c31e29ef84a5a1db37448784feea1d0d57b3172c540fdf0473fca040db9b12075c83727ead8bc66967fc3ea7a7e441196db2f9aff3711dca39bc41c3c06f6c3bceb6586def8e07f39e004fff51f6bc4fa391ad1725d8fb1697337381a0b06f0b6cb71bb4063377a57871fbe8efbf8f8c49e43045ffc2a829257623a3921869f8b001b07c9df4864d388ab8275ba416ffbaf4e8eec8d2b2f7ab91cb3a6831d6d9c8eff8de8fbc9c81e8c523cd862c4951a207cfde0cefcc657bf0ffe41897b637df01b0ccb809f4c130fa1b39398f383818e46d1161c76d44a3c636de380bd37b3aa9ac03896aabeb5a5a7889a45b4ebfbaa312167dc3fcf1501dc5ca48f6cf2824b1f8832b4159e19677f67fddd18d9f4e2fe546b991257de43c2a973bd9378e870e68b2e7014890cb487665cdd3f78ba3011a8b2a84e05aea8a350900aec7e2dfcc0a1fffaf4926dcb6d45a731e4e054cd37b5dbce8208c45af80ba7b3f8c476e0d1af941a1b778d5a28c89d33e3e1616fa90ca6b2ecc830922bec78d6833bbd4cd72caa069c2a4cfaabbf084b4f89aa37f27d0040dd0092e731253a63f329f9bc9fe802b6271aa5eef5ff9c782f2160f41d8d7281dfd9246006c2d261f3ba4d07b0c2d95ccbd07427d50f67a52218968ec81d7c2f833db432384e0a1741df94f210314dd47e9e8ee55bdd9af83488fc1b4b8e6d6061c9229f71dca3b47b55cd32126356ed2c73ae17109cb0b36115e7130335cca238e4a7594c06e986c1ae9403815c7b722843d35e7dcbd62342690485cf935eba03fdd71a4c3f910f8be5dacc8daa7926e5bb1fde483353b7106391d8bca7dac63ea8f2d156dff06fde5f407a902f2b1fbc54bef820448e18204d8047adf51eabd99ff23e17ab8020657ef22ae9a6a801956ccb5f936d4714eff2b86afc094fecf184223785d3323677fd88edc051e1dce1e4a79ce86fea890cf77cbbdf6da9f424486fa313ee80d696ee63dcb9d2aaa9dc1201ea88e56ffe54346195af27e0e56086feeb50c829d1eb88f878664f3ff7d06bc081f69f2d23010859fe1883b4c988e9cdb9cd62c86c90463bc80d635b612fafbeaca162e2a6f913dc543fa1ee1e5754153b20cc705b4e0b7455cc4b287c3fc4337a8cfa56d374774a1b735aba082c977a9d9b983fbe1256c51f99b43a928054a141607cf5d9edb647762bb289c26a60edbac756744dfd503c67249b307dc030edae5b32152b52ba5aa4e086a9f3ba26c77967ace3ab9e8275cecbcad1a7285c6688379291cda2b682f9d2d206953ee64662c11f49e9739b256a8d5131b6fe2a0f8c16113de92d7e411b92afa245c3e7a0a4049bdf2fb0f2535f23561c690a434c4fe9a397bcc0881117548a0b8becb9263bdd67031626240b148a00bf64ac8592f29cec01bb9bbe6619fcebc669580fdff3b6d872279c07d681cbc216711fdbc7d0cb61342ca0a0a9f2fd27e6b0918cc41ead580efbeb13a9141e56c8b051a5ad4d01b13327635368cb411318023bf30b4645287c45ee3cabd76e8d4b5d1f3ecd51d46572412c69aa36654d06d5feed9ea660bef1763abc8090cde5804406b48f4b3ea5f07c5ce0a1f7b6cf868ee518d687740a9957498880031fe9a66dc3834a947c0a65c7258d257e7553bb55a3edb0537152a8e55419bd6c3e9b2bbc4fa61483e2a360ec763a36681409febf23af9c174f9e6b5043229f3f33a3e347e4f79abbb67b283ecbf5a1f0f4255213ed8a945896b3b3f5e3de872e5335835aa855dd7d9a21c181263ebbe37e4623e870744097ba2c86679f0b01e5f80ce1081e64dc4e47d168756867bb7b36b8c9aa7c69b92ae2521c2eac41708d3a990fff72888ae20cbae2d2cd35000b365929b1f9f716df2ac90f832a15e01cf124d9b12b5889500825288121a8094e0cff2519a75ac30b7bb8bb7cc3c18a117de2578aaef7d3e2bbf94ca6b2dc5a926d420a55d474dc8d2a7a090f3cb005ae4119c1a04c79ddee4eada080120272dd0249527b341fa6df2f9f12742b54603cdd3305b082a87045ce7ddbbdf0b5b518766bf6f364b113b01d2224b3b5f68a0520eeeb5fb85801b6bc07873263f02844ad622331aeb166c3535f360b35b8f0d7752d8100a710367700843575f57ff146b4f3e305c503982273a497d0a829c27169ce1600b2c1f40370d9eea685c9b1fdd48ee91ece41b602766deee1ae25452e76726cc044d07a8e9e6a4530d671e4e0bcf5de79866983f7559ed78fd9cb51127d061708cd21c1a288c00d8bf7138d7def81c7cda23d09cc89c485dcc1b89dbc56cdd60ef69f448b46c3387fa38136746ef9db8ab1bed9a451c43c57beea9548c791e278af5ae75298c7c02709d527f042b568e8875b1813d47ab1ec1e8365b0af66c0ac2e57356aef7d9f5804670f0ef3728596f3f47515c1ecf196ed7fbedd8b964766d498d4eca92eb8e0bac1bc7e7871f1c7da24131af22ec448130eb60bf139ad846eb1b447c64945289a13d8cac31d7fc85eaba9f3d63b90ebfa11b2f39b0a6eef2ed6f5725e51b602ec04a128528af14e24a8fec7a21ecc5c98a5eb0e2abb3c773cc87c02fd9bf98db8913d6ab774b9578e7683ad05cc1e6309f73026df4d545a7f348ede30397130763c812140f942b06be83558d66c40b980992f4d7fb57d2e59791de6a6952572cfcc073001aa5e995a1d08d7d780cb48c02cd0fd5fc2c9e12412d769e9c718a7cabc2dea933b84a24b01e46bd0d390fb86ede944d54683889733739061a21f9dbd5113a40f96259a0f4339d6c6631c1ba27f80a1a58a76adc7fbf4ceb5f3a9ececb85bff42b6734792f280e7023567234fdab99342fc5dd9b23840291269ac1ac85f8e3ef78cf721355818809b40156ee3f87eb3b6d55b423fe855f7224d9497269d7bf401fdd22791981bf2e666a3118ae821225a0330ab96a0a801449b6db132281dbc731c9906154f68e0a3536470de71325ffae33b1a1549e093738adca30ab9e4658dfa5bd08f7adf317367784fa73f3ce629e909cb023ea240fe5518abb5fb847e9a1684c847b8e1074336a158e0e438eaa158eccecb3229e7ec4a58d46ec9a1f1c4ab3723633f9736f3e8bc56b5f1b4ead17b31db97a7daa2d115e33f2d93376a91bd04a2754dda404c9987b0fcf3ff08e2ab50c7ad5aba486d78567d90ee5035f77b3cb652b13906d0a53428d53d1213fdb74bac70af2405748ad191916af79cd180d7bacc4675d52ba7d809ff876209af174bc829a0c8e1345daee94b4bcb23e708826c988e13e402b74ac0f7d8cec0bfb3239ddf06bfae07a89cc55ee7c2c29c5688ebb0840d8f18d397950b29cb3269468ef7a05ada446dee06ec0637ac236163cf0c4c36b71846abee6cd3dbd69ffa34cad72a57abde099ac58378bf0fc8e7a919e1fd5050fa963049043c835016602db5d45ec5be402af55efcb92e4246948ae45d00820ae90d41f760cef815de6cdef548973dc2f6277c0b722084a9f799b0641aeb77e43f367ee389f3e493bb7833a7c3524ee66709df0ed45167d0809815dcaf773a977beeccf083f1cc005711459881df0518b56a6d417c430c3765dec23fca7865f18d5948257413efcab92493591570cdbe4824adf810d81fa599dbeb0abd2af65595064befb3c0e77dc62e33f141e32dc201ff90ef5b2ff09f4baa04fe7a73f63ad3d26442c524026906663b3360f98f8fe03fc43899c1b962f621ef7666fcd5548c72658febc94e69f85e46836d6ec3cd35ba2eaf84106e4085b354335bb2ba91909b37ba61b50c71851b949659dbf519206e929166a78960fc51f838ba2bb9f2d54d602ce40e4f94949c017461a87ec0d24b7f8c93986e393c9707929c0bce98cc6f18dcff1c7e4aa3dc962ccf665dc1235295f252ac8aa52a0a10ce8bc3402e3dc42b64eb312875a1ddc1c4d82656971a87f30cd712f54165528e0ccec8e8894e8ba1edbec00d480bdb24ab885669181bf8455a49b54686b295e437a9046ac097181103bb142c78f48474d21d6edcd1928a1011dcdcf5fd9dc42e10a9fcb602a7140b95a5070d97e09c58c091d4fdf585c497c75b82b0b62756588c9bc6f4f30849b6468a5dc5eec5b5998a798c47616c76cfe4c53cc0f8cd25a043aefe9580efc930a1ee9db57f9ea363b457dfeb9a76ac359fdb1f083be0d0088b77d85946a7f859aadaaf5ace5eaa024a6e0d009f1889ae40e3d4e5e20ca9af95d9c616b9b2d4929b1d4f0006a7766cbebaab682065335d080cfcecdcbf3cd041450c0935fe05728737237509044b078c7de64333fc871f23e9105c0ffd34fa0bee75135e7beb3e9efa8f1deffc5647fc2c7e6359e4879b589b05a57b3ccb83903734939249da8ae7f0c51e8a9d400526278f9d0b8edd1d534b0ca9fd8068bbe7669137cc5287cbc5fc7175b96e5a7a47a825ce49a3c02ab42f8c2164630a68f6b5ef01058ae54bd883a840b18a3b44c321c3753cc5fbcc5c49d0f7242582204a0adf8be8861e65258bdb1a414e9fcba583331d08777f53bf463f3e9525d37f60f97a723b3d493f4e087d6060b4d0fdc771599b1fa047c5bbde3464853f01706681181a43ea0c2e35ae642326d1253fb3bd2c072d238b2ed60eaead0750f2e27323178aeca052e009821d8a0c73383456ac0e2a4743f013050bbfc3d98c1bfa0ab37619073e2b90d83374b9b16eb4fb8f1059177ba69db2b958679dbf43e094f97d5ca7ae0312df7170504986f7d4a52820547911f46312d24d0c644e6431212f9d6599207377d68899bf096670bdc1bf9cb2c961aa245015803e5974001b466448aa2b110c0a8538116ada94a2215020afda01f8d5bb32808039e29840cf0c4be8d0e35abb4af6491b4352c4ec69dfb7eb4b2c106f636121a01601c563f6abd59d968c9d3979208536ffc9cd214c42a3b95be7d5a2c10085f9328e91ef67d89d3b826e4fb35fc9a4c024f065d48b8f4fce8b1ecfa77f8917e2cd8ba97128133f8750969ef0b786360366410f870fa997f0463f2b67797a285f7d9fb518dc69532bea888d811a0f6612922ac6e2146bdd91f0f4b74104c24f24bb9d628d2be331d2c59e10836eb70b18b8f8415b3b502dbc5ef23d008285917c0e7cd67b41c1719216712154d5e6e443cede1b55625e3851166b27b563eaaaf2edd7a3ac282e07c43ff1b9628c8c25a82089984267e2f27f3d410e48caf3ee61eb49f2cf4c6a4832de73aa7f38eac4d8e6152ca5d518a98306f253df2558022ce0bf07156a9f4fdc95bf17bc9b9740f2f05579eb3c7843959a1a3a30329275b9fe7d45acd4b9f4140cb42d2a98fac574590f6b0790c9d94baf76b66489e13a76b948e9915f4fadc824622f9e874801bcd6eca360da24108542e470d3dd203b4a51027233c999d10155e68c9e96b71080c49c4c68152df675f61905e992e5d9ca885a5f2257156dac8c2e4a5c0979197734e39fe71edb2ddccb33225a8aa1978e8f43f08f14be3ce36307562b81dbe09760308ac644fc2a7e2241c7a14a2f93760e2d07f97aa350bcbcb48bc515735d9cc814ccec6cce85f62e1e9603a933fa4f9d5048c762811bbfd651499a63c553b1eb1e7007540cab962421d128984d46b75810c17a3c838513eb152e20d46f0194b145d9d4a1d5762d9c84140299111abd2e324dcdaca7106fb17d6dac9bd01229a162cac2f049cd4e4a4e79e208a23437795dc4d3f63e4df27a30f747e6e75b769a8c0d9ff83bb205aacc0cc1660da70dad56795962a6468c28e1c972b5e61324093ea115d37e5698a376c2417a6d3f43f90eb40fcf5c082bd79975dec9a8dec82c4f1377ec59602149242ed891d90549e46e563168fd14ff29e478f1e0ecaacb8dd5bb50113eda41249cb81fa245257639e3dcbb4d8acef12c57fc95afd3271d52dade9ed14766c4c7db2487444be169b6ecd9e1d14e448accaa0d447fa735e7ef58934851e59134e1b606ae53d454d01052f0ee18040678be051b1c8af3ef762dfbefa64a852f576b2c4db203948f11690bbe5e71c00028d4bc7f1f331f45d12ca5c66993eb90a2308baa49c25911b7106e9c58f8c6a03d8a39be65d349ea5b75b7d077e07ac106dbcb7a9ecc9e8b1c8c6757bbc3fa7b2f4fe50a618a208d861058f0c33bc6c3ca561eeee6e7e602d960bbc982059e204fde2df39c8e9ca8e98ed2ec4e7ec464b672df396888a89e440143328393e500a38d36dbefef3e758a15fc6dec0cf3818d7912cded68688ab0ec2623edde82d66c1186bad0f4ffc67a0a5c09a76edf453139beb0619e80faf8e725b4b4647ad87f25b80269389ebddf9841a857089829175b4bf0479dbcf80f9f590188d466d17f56f08c65e4ad0c59ce4e193df14e2798e0f40b0018e30170baaa3c8ae8244a985b47eeca493ce58f2a25920fbb7dfd4b16d643ecf50d47465f76480e13e613d9da6a9368ad19cdb45d238514b62b2daff01f642653ff174d92ca8cbe822ae6eb961bd8e3af35ab6860d21464727655a60adbfe9b8cfc85bbb3cfa6290bc6aa6b37cff00dabb659c7f7a0aeff46cd5e4fbbd8a355b9dfb1e4fd366e3741b357bcbc1a9a210f226ed8993c0322f588f04b854ffb78bb3d5d7ddbda56f07973172e3ff452516c8ba1f053b2b4db07d042cc959be997fa87dcea45e65c6b59154f8963a585d712da65fd7d767c93f198d51c0fd3a6f9e12ea41b1969c55ddd7b2d6d68f98316ccc1dd7ff083777e6f005e1f99589a27be8fd37cb6780d3fce3c55daae3f8163bdf05664c82daafa5a57f73c0b03b0c65ecacfd8c757248b71590795063607d358e5d20508adb0d81dd19c68548daec9762efa55e66a94f32313f7390bebab6d6c9d00c28c25fa40c882c018fbe11a84d542c15b5850718332e43771290b4f88dccfc7b74607dd2a519789fb13250bd1d25a8817083952183821e032638cac8479c9c6f812b0e25f69efdf08693523e5e1a6e30c7c522babf5d2d98e50e5e4b2eda621179379570d22b33f4e63e741b68292b16ea1a31d819dc2821c1996052095ddbb7a6b119f2131a02a6b448bfa73ba6a20e3e0c19c332e6aa22dc68ae9ddf2467f1149592b31cb154e4de5eeed757e6fe78b8d804ae4be94d43717c1a7a6deb7be8d21489e23af0f5705c31fa764187ee82b79bd47834c5b8981b400d65e7bb6c3211639b45410a8a4254673f165e9427313afa5548e8e272ba0d8e14d4a44247a5fb4ff7e5c228ec32d8f3ff751fcccaf4069a908437c256b9f91498f861abfbf7b5a4902d20afd09ba0dc6ddf44ecdcab9c412552e67fdc96fa0c70dc67ad28e9772c1ef40d6fb9d056af75ad200ee76d55992bc82c7b49dcf9b77b4a2378c334bf96d963645f7d72bb138e52b624914645132ae8a03df345bb8a4d1893e7a15c273bb148df8ea4da09198ff24bc01d9fcfcfff0b7e96550086f54eef6add5d9847ac24965377bdced009d6791b44c8c0f4cb0c0d955d6d6cc4862e07e6ed79d126ec9ddc9e404217560fde375709b9a7f04721221307494e322f0ca0f2312e793baa91c4b2d5a137223d2138b7d5bd854c6737e80939aa45e71005eb6e7c051d4bf815ee6bb9ddbd03322b96aa8d4097b9107c48a27e876cba7710b484c7e2c2336623050ff342e02236cb5496f87b1211dcf2268b0bbd95c03a4346e6d2f94d2a2ec495efa909d627f449d22bd945550e46149326c318127e135255d1107afb942f213e048e650061ea822adc0a7613d93a7c27a7aac645d8182be95db9063c129712eaa0ce74a40648e92ba4b2e8ac3e421f69dad5c7a42dcecb9a7af8ab33b642c8337fd9f8d649b3dfab00862a15a61118cc78ec0d699b0d288cc762bb356cc9e21914a279fb7b5f5c3cdbef4f4de9422b50e7603cca8b5891e2f8639a5fff8848c1d0025efcda88b3f0ab5e5f1b658fa1f7273ff4695ecfaa9cfdf00a4d703e3bd90591f4ed8f97e02c2148b22ddb9a52092a93e888bc46569d5f96dd2cdd9c6b7dca68ddac755d54db2ce5e961c7ea4efc01df5c914668750c873ddc894a9b9f1981c9eef86d944bda07eb6eb77ec0a92dba24941c775c0e86c572d8597cf787ba559a1f4c7f5ad33485e0f281ec5839936151046ea02557d94f80c201a3bfc0583acce7135af78aa14fed77ea5260af7d05be25e6a7b9bb37a5e9ed30804f4e2a62cc086ad8fefe202641a77a55a5114635a9df9e980ff9320c1c9b37fcea0d0645bfd00fdad1a4b40a2178c90f2d3ed60f95789b6c0925dedba5aa7576aa802800e67ea19f6b43896dafcd450f381e4d2f33dad0f0ce421b3e03924e6f7f0d23d42e8d88d448d3cde614038162c7ff2728119b3e3943b3e9874dd2efd239abea8e76cd9d4e26ee4b9d24e5515458dbb6825d0617b9ace5bdf24d8f83b872cdb6122fa41f5a6523ed39aa1590e213cdfb4bc0fdd138c3866b480b3e9f3a896969fc2e9b7a7a5a05c0ad537d31bb6d6f885938205a86edbb4fddaf9f767fe1014d34e37257677b7ae65aa8d24e4b9f99c9910b6fba94eb4760562eb57af0501253fb85193cfd26feb8529b74d9ade9e1add8e10511c1d5d65f98bb9edc66fd8010bdc6133f1bbefb7b0423a34b9ac1f3090fe3058615e2ca3328e3b353da3b39015df8896522f7756230e14b696e8f0afc9625ebfd78519aa901ca9fd8950f7ae305e1be6f99b293447bce35a38e1aa41d85886f82d33bfd65725c683de3c20e210b65e4909233ab2356518766347e0e47fd97fd1b8c28b6278c9bc352cc4385002a07a5a0d07ce0b085e62d344ca1c2279bbce3896033a86c14675a1c065bb65c8853cb239a405da4676769593566af3f51554678adde1cd2a37081e8911bbef7043b956db299998731f8212e2d60d4b3cdd1aa021b55172501124895103ef586e9cb92a57e739ff950b7e1557b3be0427ab85e40fdcc6ac5411a3c92f291b50c9f96b4ca6d12d258a926f577ff50d3630aa529f4e1f495399fb38c84282a10a6b121a8f6683286b5610a0fbdbd30b3c313204c0b2202aff4599c9f38cc7100bdfa6893513d3f08206369299b787f65dcc3e00f1cd405a574090b37ee0e88150880e04681c7ecac03b2ea8cc1d41712d9a54c2f2a0b88e79c2165ac38c8b44d619ae0c8a0def2ad2f032f37aeee68e42224a38f2e0334994d00e37aed73c472d71ed38e4ab1f9d914f0d9024e68b5396cff2eab3568614663d7d9101b6e6734110b9c332c6558a4c9b209992ebf38dbc3af9ac039157564dedd691eb8b6054bd2e0cb7c6338982f53d3653e6947400ac13da5c3190b712f26af68d16d2899708d60572d635711cf0145bef11fbd8f893dad6e65fc7d57c07c48a46a5e5a35b94fe3dc1ac06faea924e3076a1679155ad93d0efd526c25987efa21ef98899d9014a2e17d58bd026f407ef1059ab664edfe248af3a40c53c2b3723ef23156d056e5dce2e249c8e2f5b288719409b5277f214015e54d9dfaa7daa26e4b436746d39a78fd2558dc4693e5c3ff5ffa95e437c1268e3159565fb406594884adeaf0716813f7ae9542d40401cc1082604a6d20456db75ecb22054beba3ac813522ddccbca8a585f2b1fab21d26bbf1f3b579b2c026ae702d351d9b921d961ef2f5f3d9200e9072b99d113898777dc5bf19c42a43010ffaaa165f9377ac658a6ee4b7ebe5dca1e21f50ade7c551ba2a674cbee0f7544cb27cd9ef4107deaa24a940dc1431ca870ac1a2f1fe03d07d4ecf6a92973b8b61cd15b4da9d7472acce1fa1412362c7e0dc7bbf77635c1815bd0c51aba341c3d70e1e09fd0bc5a6fefe4f53a72ad7da02f108d55c6a250485809250893f478af5f5061acccf365ddfa37da616a9ee939a060b486ac6c05b94050520181cbcbba7873cff35b8e069fef413f027d78e12dab76a42f0e6f9df5db097249164894fefec5a785a575c5722dd366727d46eb120de433808de95d8d179558b716b50bc54d6b07073de74c5b94cfa9d727cf18cdceb781176aaba4ac6781ece8205a4911dd306951f2a2b3d1059ce5e3e1422c1e231810628d3198a32cad47adf9788dda16051d6a5e6dcb971b1d5438b87888fba458142c652390ef5d396be2dd2dac1c2ba777a7090aa38f976779ebc045ee9c3f9ce50689662fc882a06118b1522234914e459ae53130969bad51912a99d84c85af79868475f936a8fc18ed21d2e293e4641ea6cd7b67051fcbf0352402c8f23f507a244f2e176a932563a2c86bf3319ce90924dafdc6d7426b1c5fabb39a07a7298a63a34d152aa8f5fe3f8ea297ee36231f6c1c964dfeb18082f184b36013776bb7ffbf87720ec875f89879a9598af5c6a58b2c61dc78c538ad7350351e73a3fc26557c55141de39d1f78c7c65a3d6a656b6fdd76ffcbb24d16d7c89650f5c3b63a14bd3592c2ae3ab9c8e7e04d4202333eb705a7e71d3ebd6019a7620faff927321c2e9f0042b8af5fc48c61932534d2ca638b23b1439c6ef3284f8a099ca6e1d43dbb69e3891deae2dfaf2d1273aa9e9dff8b0d1fdb20a945023ba7e132b572b4999b33f49c9c3d1b865a8b5eea833a13cddde15b2fb34b02210fd6d1f6a962f505753c61301ab1a5d6c5cbf4ccd5133be505ddad4deff984f42f15dbc43c6d7c6aaa90886332d11180ff16813443a99c5d34c5201b894653aee6e014b0f98d30718017b4e37f02f5dbea0425bfb904522863e65c3aa0b7fd7bf05bcb0c4e456ae95d00d6748129a09fcd139284c49d4f7892cc8cf23dbe98c8b913a7649709098929ab19aa18dd047eaeda48e07f3b68933a028a94db1c3238d3275f3d7764da2a6940d6b350ff02f425797e1a456a0dea58c819a4ac66e15fd2288d3b541c382652465b8b3feceb9f3786e8b69966d7ea717032ffc4e5e547bc834151d8fbee5ad0e856733bdc3792488799bdba2836df673814d081f7072e93123ee6c79ae09379d5663f6bf0bcd1a3e3a39b2dc0454efdc73bf9d16dc4d1b02dba0fd92f44d85b6e2826ddb4d58b946276b210783fb4ba405654b0ec749d5989e41816a7679f58fc01fdef826208791b609a162a1c11a2042433349f4941c7703489a5b2335e715d35024b1add1a991dd1ec9c9f8b721b747adcc3eb30a1f7feb9f72b2c3a02490a1a075938ffb8a5c2cd17e6b05bf098c9a4bbc8579b8ab9d688388d57be3eb129ab166cd7891eb48e23b933a61a925154188bbfe27c353a58534b238cd78f1e5ce26967738113d465e09323171c5fb13eb6e75b5ec97d3bb06207370c64a4c56a0bd905d12f29014316538db5f6a6e87b87e64c67fb298c7166aa853c15f35c267ba1af124ef09223050aafe53c87bf248505df01fd3ee9d87f7465d9d815a56889cfb3cb8c26ac75786721f42913d6288988039f9a5f4a19f5e197701c7de18fe71993c1f7002ae3c08c9debcda829fa2f67506bb271705d92fa28283de01510ddc855335a3b44e9c0b6328631e91af0be860ee92ae37a2d654acf9959b349866ab10e89e838f36246c006304c1d0106b0cb57c73d647a53467020909375521fe98570bdbe0370ef7c5e6576efb90c8df825650f328299b07567eeaa353888a658c92f78c8b56fa920c0f59fe79ef59d359bf5793cc55941841522eef8e052089e5bef4fca8d1cb629d6f8778af8584cd1d60c2c1adaf00d1db7d5a1cda26367fc692b29299e62cc05559ee972cec189874469f545c5fc8c7ba5be06af60dad4000fcdc483acd9be38195ef51050d0b0e947ac9e67ed26716f3644b5c8cad07b153e08a546ca5cc4426609ccbd0975aa15df634db560dddf209c4928244c8ad0027f4c2122bf2cde1372f4c7a8c2a6658e04b24d1e6eb420561d4c692055acb97e8e42fd2965bd2e52e754681bfb8722fddf45ec24923fe8ffdef418dbd9c74c9fdd93755dc8881a0268fba5d567612c857ff74d30c0bd5f87713647b8f26ba5cfeff326217237d69e37cae86b5b9e80c4a829a7f7b2cca569957e1154936c309e7a0853f3dc63bbdf61e0c7526f87992bfb965b4bbf577fddaa14b9f9048ba73e677d47426ea7c9d945cf96dcad86b6de41f6f5fa926453893c9a0ae0b35008e7f0aa7c0e2eb739668dc8ffeb7221f5ab794aae04d9085bcd4f640ea514072e8b495748768ba0c1b42014a0e2338dbaa5a96777f9e465576bf6855415ea37d0d5ec5d833756ce27dd3207dc66a9c94b4d373a047d7cc3bea4c60b381198'
|
|
32
|
+
iv: 'eb25201d092f81960aa97b614ff5e1ec',
|
|
33
|
+
content: '1f1ab69d5a9c8c59cf3adf3b3e4cc68323d9e8da07d6c52581d7aa039d9cc840da0d28ef6b1805ac65aedb9ad56df24ec70c8918d339de285eb61b0661aebe37252329b2e8aa65cd944f809b08c953e43ad22068b7f737cbc2605ac2824a53d2ce1356e16f234edff64e02212e5a122ceb516c938e3afdd77dd2725db9fb684630f96e2da87bb19b3bfe3977b579d9fd8b8ee20e2ef7715ee3e8971892f5f35092388e0d07db06578fdcb19a5bb4b796eea4837da726a7736016bbfba2f61d890ae5c93b2cb6b8c195493a21952ae41e1abf59c1033188634b5c7e8e54996ee0295e434c3f9462bbc4a0191d3ea09b279cbc1d8ff3859bb2d0f3b9c48ef9fbc96cedfa5e51d9c03bcb700bf720b43197847e9fe307afdc495e9431d64e6a3f4da6f290ea380b74868ec7281d1bebb6ffeff8bbb4836ee3f865b232f944a23f35edaa5124374179242cc87f8cb0d1af36820bb113a813f9937b34608771341a072cfbdf9f3f2f150f99a9cd41f42743caf58280398b7bdfc476c77610712a46ff78fc7cdccc6533a1a1d8d7e6ec6660ed5827be1d558a2296c2b36c436cb042e2c6a0e3037b64a5d01d1f1035c5f75ddcc4310ec0988f0f5974d2e783e73dafe50677df50ab752b18408f6aab211b355cb1792a594bf376385a6c3058943cebb88e8460c733cd71d58b553db97eff735bc699bbe6f1341c4f488a1e159487a0a89067106ea3a4473dcc5bb845100fefead4bc36ebe4fca7e37444b98414029e76c761f5c8ae7fe4051840aa6dc82b999cda1170dbc7c4cc5d3faa030cded3c1997f75b8ff97f6158b7e1c9b068e12cf4c1b29b820dd207ff9ac69079dc12d8778d7617a1749cef58c6f767ddaa01ba7451d31507b9e249096067fa6394b9c6c51efa6553f7957142e2e7fb2f699d8bc0ef83a626a7d5ade173cbbeaec7fbdf5aa2b838d5bc5883bc560c9835846a6fd14419fce2dd66a75340900b97ee9084282dd5488ee358a1e8f91be4a134dd339f203a2a5328fd184d2f9f54e5e1f48b0770739a018969244aad9b3943ffc1a870d2d6c2ea34a5092f89b7f73ff755f066f10bacc04d19790567cc28dc1c876229b0adb4a5d3c2a748d1e13b4cca168bdc517bfa6045f1424dda1166f2d56c89d1abac4c4a3ecef18db015e346d7ae6ac00152a9e9823965b8869b1c9837db9e5a40a964428a99f1f7a8b7bf2818810d7dc196a226c1d882424c03cc554f97ef6fa509dc940307d179001679d4b7bfa6cf400a69b2abbab7294490646d2dc9a3542821af8b1a701e1781feecc9d401dbb6285fcb44f74c53db6ee7cb6bb6c549181c2a7e059abefe391bba84f4af5d8b9288ab63f18df985d5067630131da87b72253cdf52b00a32bf567c2835f77ae42fa58654e0f16604025b8858c9c88f86c895eb10dce6dfcd961a2b5cbe26f7cfe8c9f52b4189f10a0284b7343ec5ea14dc2832bdc08e66575846b07d9ae672507f274b2f1d340c4e2dd772629de814692954b4913285245b49282345eaa047da71735b1d59533e6ca72f1c61d1d5a1cc016962d72111709525418fddc39ae494f9d75eec928aa84ef32180cf50a2ff941cf68ba561d5793751a99f0146ec8ebed685cf90a0f9f8f7bc82a9799c6c7fb12045a2b14624829161fbf1f7cdd2e20b61ea4e1218482a1219abb6a3d3d9dba7f24318e54057ed5dc9f1db2b40cb7f84a3925e928e9df72147629c29751969d368bd288cca0a9efdee679e76e7cfebce63a5de9cd09d1a5a2239b632a24a704bc8e36b671f5d0d6a93183c76b68ca9647ffda42a88cb8878550da1b2cf81580805baff41a595ae6986a3c1b423f90aed74664e3c80c3c7e22074f55120086afe660d7b51165c24bc84c8b85d03ba540b50eafc896a135aa5d24b648b12100d7926b31270242202cfceec1fe7141654e050ff43ca36d10abee7533379c54607d9c123d230828b07f1d9c202a210a7e0f64eed63ab98c7c0a9ed2e7b903d0278f917a2255ee4acb8b0585a2b270e224dfcef1a90f5aa4008dc7128f4151319c35eed671543a3134da3f2ffbc89cc7784ea294e02acd47325993a53ca5e84a0cd4fda25e366eb69b375789bf5c01982c8784718667c97955f49f3bce2eeb4aa554b881428a17107f3222076c6eba4efe1117a0399c4fb75243a9f213b9ebd36e979d8021b88f4b612b45522fdd68efcf7716dd1a52c63c4b877953d53b2e0bd7dc38e03c75916e04c77526204eef3d8ac391344cb5e6a8fbc2ad25a817659e1ebd12e6e1aa220f2036641a935cc16bb54d7f2cdfb2a551026ba762b96f12e64a4c1e4fc1039eca9dfe725a120a91d7577df2e1ef5a2c25d740be6ee75820a27b5963defa282fdd7e9c25affe06a689515a44e8309d0184d09efdbde56173214b192392b7c24d12d9a47fe3a0e8d9ce574e5272721890baf24a4c8403a6725bb615b167c0dc18b1feef7d97503a74f8340cac5a2bec5ba3d6be284ac6d7d9e55588747c02a37f7ab2f4c700404efa191867a370fc78798b0b98dc611dad81a75f8abc6a289ec45892e4053c29ed3ece820cb1ed8d74b84f9957221cc15a8aaf3694a5c939559a33d23fdbb37601f14a6572bb46e964004cfc19392af6ca512651e0a2c6e481dff4b600da43f7706f3a0ff546a0e168218b05686131795f2a88d4eb9a21120a0c82093dac9e2cea5112160065cbc313a9ce045d58f00e648836445cd5a144ea79b37770c80c0f3ac6d44b359fdef9b5561abb9f51e38087594af7ad26e29b437bc39ac508a485392b424d001252e1d1c38ea1d93628601385311f937a0ba0979f59609f1e7657c435e1ef5a1d392dbbcaeca90746539af3acd1e515a1635e70593dffd915f3386d6fb850f79a1b27a18e56b16c961652b1d579d7220f7965cc3c8ea74d7570ed3f0816779b5473bb413bcf1e432455e2a919140cc9faea00b260e67fcc69d85cee9f74d1322f5e953014343ffb0cb5aa452ba2376d8c06318c8b9c9a8f05123e1395c950649866fd3a890efa86386eb19e998b9dece619a6053e23270edc1ca43607c52ef66ff89fc44706781ed92cfdacff92f348c9d4a6a6441ebf2c7394b008ac70035cc07d65bc52b58a96373908a5b23d64b28abc97154d9f2805dab451b6f8de6824e1ea7b18d0dcdbe72cc602ce236c0638627a3331ac697830ec1256cca264ad90d200d47ab0e9ff594b05dae8cfb350ac9e84870ea58c0a82c965b40de6603e26ee248d428d6c04c90dbb2c2566f1d988c7f761c1bf6d5f533e8ab97a9db2a3ca7f07b9c4a954a45944e73f308f6878476ad503bad0328944d4f454dd14f462fa196710952c032cd35516401ae29eab3e019876429fb35bd1bd883cef9a991b36d358956f79ddd0b9da975223608cbe2b83d1fb8b4c1cff98a590e62f82b2ffb1d3268364c810462bd303c7726bdd8b0656ec0d640c6efad828d4541074bc9ea95b8383564136a677c69dff68e372e56aafc6a5ae5145a7b0683b0efe6b53659e41a00f193ee61f1dc32fd35d5425f6c4a0d6904f4f1ef4f1307447de22c040602cd24270bd5ec349725c3aa491e396323b301a829909137e47dcf577fc15d2ba65343c42d7b5aa537151e3f1facb524cae2efbc8a148055a3eb9d79f69fe9ee45327e6f106648febbbd168ae8eae809b814a1a99b494b11d82a268295465c434ba929fb3ad327c1c76c6f1a63876bec6eaf30d4572fee7f84e2163662b9ce5a77daaa6225546c9b776da543b879ad7c9843032b41a21f50c9fab20cdeac000f2cf33dc9deb5f7a96f8d649070ec480af73414f187294acc699d1f86e1d5deb17ed017aab848fbf8f987f5696ab7ccca0232d5bb2d84d603b3caab5f6c0f230f3f42525c27b4e34f4ba1ad54d76e7bbf7145ae9c4f625b35dd8c36f6c4f26ba5187007da5cc3cf6220a3c64d02f9298d1e58eccf4405f971523709deee8397b89e511be18e6dd2c16429ba56e4c8e9d60e428c356b732d3b33438934d764a55112cac8228939debcfdecc705ee327ad661db41a6ef5b2c88b9f98a9188a4bc3f0db90e2df98a88745a1366626078a55d4063397a4eccc65b1c817d6b542639042aecf119744890dd606051ac904ab27bca11a13ab074f6fea932b15170c34300678b9083ebf6179042ce23d7618143f8a11c07d7d6064330703570844f156eb1257dca5de6491c5f4ab5075dce4cb44b52530a4fc9a54f42e2db02145702127204097fd90c2960e5acd927f278b2ea14d0c0df8f51894b1d7305a731303a7121ddea0b23bda88acadd8a3e711768244f3252b07f74a38c49ac98735a27c00713c28637f20cbb68500fd8c7fb2491801871e6cb1152abf2adefc3309f2a7a66bd1a5dc880ee4f3b384e7df776b9fcb9a7ada49e44ca81ad33cc3ce25b7999a45cb4612c5491eafed43b9c802060c5b361715af798c3839da812ee1dafca6fbec99d6ebbcd4365de1c4f334f960bfba42007427398867865671acc4addabf377a12b6034fd8158623a1c36cb4cb3fc780514e8ad7b4c1d757b89ad0af9ecdc35f8ff36819b2b6c406d8a582d20da282680e30eaf8335599c4bb4c57b76cc4108217083cb4e89a64e9321f0a20bac76220b51fd8d3373089530c2d994e9d19dac6d3b22c2be82952fdcbe24a8298b3ece9051fc528e7f4867fda648aa108759a0da5f04194f3313a09f8d504bc088488b0a9a9f0f8f0f3c8a3610b24deca6b96177fa499d359028f3fc41b406d14f53aee82f9b3088445d166b699553e4c1e3812dae335a67736f2fa93fb8a46f6b6f7e1db96f204368d0b260350ff1375e721a1d3f5e84f75046ab6b366e7b4c803f9239e8143e224686305c434799c5c992675fc59fc545767cbc1fc9d85d935440697d9c0571bc0344dced286fe204ac79c9bc3497ab8ac2399840d08c8017db5abec9d3d17a1807998907c47c844e21b6dcf193d25788ae079a7cee170b2069e99be4465d04c4f43971605d66cda92f0b69f3076458dd68af0d60c1833df9abee66552abf5d2328532800cddb447a1260e8f6bcbd16291e9251004498aa0203fedd43f3e68a4df9fad68fb4d372c3173906d1543d4adebf837127b18c678cfd75e0fd57f2471e1e51497d4d5a00f46ec18fb7602da9932cfa6dad412e1231b41fdb5b1f246db1e3d6fc4566dad9c8909800ff341578affd45bbe74aebe3efacde2e1e5438bce87e2fe8024a852990d04daf117163bb0c6c8497bbd33bd292df559b297a1ff3a571acf704f5ecfda8f1c64ed74debf48065ea22928debcbb76b3af090959217528b36397e422872f5c66a3255f1211e4106e79b12a66ef7d2e6517783e54bbd634dadebc6021c4a38f6be5cfe95d0c901e60abf655c0f78f1bb5d9840cacd78138f08b2ccedfa12d103a609b7e8f9b00f116f8ba820e8e75318c9135e5f3f82f4ec3ae444340c02d3465d26b680a1883828b0c35b29919692dadfb420a236a82d7cd83855494f847912ca90aa6bb9bd61e12b57f51baf0a3332c2c4817376bb494c53d778c2f60b89d8ddb0f1d6efdbe31ccf87c4980b3873fd3704a073d9d3a659e735d372a8395fcdd6fd6be56742e0ae4a227a3c8bab29414d5082d5d14a908507b4b690127f4fa9732a4a7e4e709066d6d81c629acc98d74f930114a452162b43ff6d04dab74cb6f87227200ca0f092c45bcd03fa3ed39d26d779360185d9faf126f415675c27292d3f831cd36d80804290348a6689edf7de4465395d991f54b4c7113d8dfde3953db938d0d9c812b2fa1d90307ae6e649a392d031f6e25c1f4d944de1ef0b23ecbf6c2e2251ec8741d16acf25a25886011f9d790c94ebd9651c541349ea8e471638b498a916fc3dd896bd1bf48b798f39cc7ae8216913b87d5aa78e5a9de22e3ebc913c9293ff1b2ca5a48c144d77fdcf953647136f9f3fdd7967b322359273e8157bc8055747a8566af41e82dfd699dd7a70147df415e1d8058b2830b328e6d4a12d32c58a40c3333dab07516a162bde4cfdcdc64d2bfc0c885e39f01651a7925a94f1b5a977ecf1c8f7ccc55d306ec952d8e275df8f5f42ec57872b19f47101ae0b86d87e6e6e403d778768e59e02f2c902c7d29b147556c99ae65d9b8fbf8a2ea9183b96e61d384323b2cdc08c86b61c44667c2ff0b122d98a36dd8c8e8b780bd25e7f91feb7e32e494a2c434a1553606a51debfc3e1583711baa1bbb150a9bc5428b20ccffc317a1513f1951ef02f38dbd5243efe4c67662a368c1a4e36b974dc1c822211753ebc6fa0ac7c1074f4e49f7843d949b188e06dccb1629086ae6a4695f6bfba1b994cffbd730ef8a5876ac8dd768635b3b0475f8f1865b4fd2f9cae1e432b249e3547f470ff2bb269cd1c60f86e87f0f087ef30b67151f75d2de9b535b28d157f333672e84a52dc40dddc9bb45df5336fcab38bad9702f511033128f8b0f9c8cc78a2e6a572f611f92d000a6e1940e25b8ef76d456fab1cf97bd1fd9d858ac68505f507c52fec7e02ea2038dfd34ae664a5bbb6c1fd4573947c47d59166f61531195a6c883dee285299b191f556cb3dbf15efed0b6482d1cb6f9fb94cac93b6f057f3e85abbf45356709e4abac72a4215e3a46548bba5840697e505761b3a67f67e8ce449fa8c1da6240268f6bbba82a0a79ee8220f168b46a0a37eb09f40bb3eb6b3c7177f75648d83e49370298c74bd5e8ea1d19e0f45125e7062c299c86b90b04ae71526ef5671b6dd9c7134596d97308245ad2285cc0f9ec5770458426ba7bf9ad494a964431b1d4dac32925fa5412f9cd81174ba8a71cc2d941ce10d884e26410a9ff033c4a31771c9b63a018a9364da3102587338e045435855dd4b024f126d5033c8fed0aa2d6e0a32d8c7a1fd73d0c43f81636cf1fead65377c8ff4beefcada6e14e4b9673d4f62dcb9ff893c3a337f9f274bb85b1db36180876b1efd83c71befdf0b2ed701eecf8f035681d372b1f1b9f89aaad3cab4635bf5c201f46078fcfeac7e0da1a4c10aa484cd887d9ee8bb52d231ae6c7ae99c6fffd021fd4aa8bad3f3d6f1bd7e7bacae4d733c2fbdd4af8845562c85bb4be8323c52dcff87b7bcbdbc12bf51699c9cbd550fff089bba2ab422a2d965a45eb2aa98a6e6ec5dc9ae5c20e1223b1fd146e149d28d87469b57a65bea0a91d74d39a8cd4682fa6db8bc8c23ec3968076820c12dd9a0336f706e08c652b9c56f8bd24a905a44cb09417595d1d37e128340568ef4348d9e006338101f9e3a03a8b0e5052f6e3295bf7c3f88ebab6ce331b5b9a846d7c97d22004da6f959eabe3f63f65980080b09e9cc55f78162026890b439359dc6c9717ea85d40af6966eafe3d5780ca5b452fe094d8bd6467b1b905e21f199c589ec2cf206cfcb286506571c16129493cc1f5a3b89fec5f1f103bb6e1fefdbe44f8697d33ffd9d7dc670fedf5d2ca4b869713c84cf23a1216a1b0ebc3ce797208c4bd408db0779bc96e8b93f46e6636f1190809df023c1a9681c3f227a3da4b5e60a26004ef01462b6a38f3cc6e8a315c9b8887cbfee6d5210a9bc803c4790e279374ce2584ca526d26e4f413277fc6429e05c6f0f350ed61c04085637c06841acbe8cd5ac97fae4887a847bbe4d9e21aefab441be759bf6a7bc959c52f617d47bcaf5778f88122a57906fe548c8f413d41f2314d05f6981df10cd830b132b3994569e4cbb903e394c3b8618240d44bb8946187a8678695feee96bbc522f152f9ca6fc129665711ee6b5c2e7475c5dc4b55dacfe799504e5b1a916ca1362c324e3c31fe4916bbbca84788c9f10d4c93f147064f60f671f128b5697d68982fb0ca7e79bb7d554bb81445d793c0a7b803efb95b415aa270be1f59fd471de8548a45e242919d3bb4e88193a79787ceba807ab8b13562115c6f18585c40a5013ab40e27b3c477e7a6c7ba92b750a1717cc894a028edf1ba20284241ad371d7f097bbdf5f3f3b2dfec2b73ad049941496cc46e7be9d43aca5b1309e3e75576f62a2d89aef9c8705e1e88ead0a742d071c908867c1dd6030e63d12cefca22ba14bc31446b9fdd009db9d0b7cd34ae8ce6ad7a71f3ae19c81cc2662589a8d6852004563c7f430b76af27fd6613a588903ccac48dfac2a4e221dcb6530e8e87eb5d7a3188b1a110b6e517d8bb5cce0913dfee8ba93760d4249b72e62a36f7a12dcdbced70fdece8d3a69f404e982afd7a740bd3bc9de60b251f06edb6e3711c6b519acb6696ce50057dffb456c3bf3fa294c67f589f6d2dec77b78a114dc82aef4668f564d325e7f5b6c8d7b9838da0b711d6ee62711c0a64606cb91a2363cb9aec6e1dc01a82e0671ab7116904932d3edd0b5b6ac7a2447ba5e99970e81db4dd3c9872d87ef18870805fb59dff8a12b684631c737b4aabb448081233a9268b4e4b4b1509f362cf3ce3662eb2741ce75643910a839707c1da6b75abe7c0deb37cf0903ba0c4c58716c104dd543680e16fecc430b55a263e77e46548358ec2dface6e984d4f582ebef473a0cb875b56fda5ef7801c2181157989a43749a853e25c7e255a73c56b2897e5f0fb47fbbe375e3eee1c7ef77a68bc8654330c0792f36f6b3cf29422ac5c7d411cc95fc7a158bbf4870db734d5ad3e895788f3925b568ae7ac77493f1ebb7449cc9774547506f60ccbbd0c50c365603cc81dbbb86ccd6d0d6ceb09e4b79ac0eaac830745a61fc87d1ba39b9d7900372cc65f91c8da63ef6872feee04f4b6344e635588356c252871be92abaf7f15cdd61e1f26c4757274f6c82786d61818ec2274209e0605f6046aab2fbc30870b655ad43d4df9c33430ba6f7eb082a3affb91a79ff6994d61fde88549dd9ac9d633d65604ecf29cead5cbd373a87ae21d65ef6c7efaeaa48732fb8f273c2dacdb7d33d239e47acf2e8d202e2b7b9910498bcb02c69afdef75ff05c996489e57241b43cb71ce10993164b816dfe4f033b4c2ca73cf5e37ad2ff7b90a9497ba5abf2dba6845b6edd29a93f5190a839b8db63cfdc00cce2884b17da9efb3c3374e839eda349099eac129edbdd78916d0ab31e5568cd4822e5b576f1ee0ffe2a6981f3c2a5116edcc7d64657210fabcb15fbf93cb8ec0e646d703fa07e2b4d0efc585d1efb355ac99fc5af490454d65cad53934d9c79c6530e06ac6f30d05e7045779fb2e4a084459e2e996e34286cf81d931ae3cac82485f852601f2b8a8cbde003f0b6cce91e888631fb7ff2a7394465788532c9b7002186fd9c6450da056849a69dbc5ae0f2cce71339cee11f8483615454d7b274de5aa6be70dc581ee25bdc8b35100803a1eb83efcb8dc5ffd933f76a0eaa8bc7536b78225c035a631e759d873808b71df52a2ba272b2d2f50680aea0c6ed59869210998d3046bfcdc43f7afdee00bc0116fb30ecd0580ee66bb27e267ed471853574dddbf2410fc63a454888c79ef111e5e7373b3049052ee396e8a3dc24066544fd3748c069394520c0b35ebd4a4db6c32270a12951e76941c93d4e618edf4ca6d083df7770b861c9a8c9906444429cf573b996d07341c03cb426e67b9311e3f1166d4764a717d7755f6cb951d3c8bf26d793f4c5fe4940698f519ef38b6425ea83153c8395bc42a4065e5aeaf67a0ef3a02d43e5561d020c58b38045b5e806937ede879b08302de86fbe9c98be154df058d6bd3660f38e4577292595120fed9e1ad24194dc1f90460aff75d375577e07182c5b35a8c2e892f06b3c351725794d78c278c2bde8c4875bd4b2598c7484bb26ef5cbb725e13eeff1f10fe6d0196fe3b831432c0098b17298c5039e94f6d4c2371f575c6fdcb8e02612b57e03171bfa269e24393c79f1d976003d5466763cbe0a35002eaf47c8e0788bee2b2ee785158d2a3b297f16519db1449a63844cc8e319629b28c943694946480d03bf44d4e5a5fe1c8b7c062fa864ab06be18270f73c313efa4895e6ccb18618d042572e1162457686e750fe262d918c1fd95f15a0cfde144f10566a1bc303e7982463411a9e27b31f89c0e6523772355ac172f61a083af55fc020ba9eb1f0179c723cb4b579cfb56a98d6287d6cccdb8cbcce97df1415e1b9a85874d2231e732233e0423f094e5bb2c12d6447c915d6ae7c4b8800ddbf286acd4cb30b7ab3923090138d9c5de284819738da7ed9f2280dff9c00eb007cd87ce006a25aed033af51dd63fa9ffecb557914dd9b96ae40aeabbf07616ec600d5c49d52dc0bfb1ddfbefd95618bfa957bf37bdc30e739e2cb0551269c9c9fd51f578d65b05d6f124e723a61c75c9301a6097fd70f167c404048eafcd279230363d4be3f8c7aa1b9c1bc8f2a8b690471ee721ea81a7bf8814191f577ae8fb12b858de5bae26d6cf246e4a02690ec2266a8658a41e7eed08f79940f7b57065c69a134614235943223e24b87de85a71f12c36fe7736a2efcda7942a23de866809515d2ae8656a5a93fa99e5202b7ff1722859b4b2aee9e23f8e4ad7af2e7b563e6262870c6a47e4c861e9ee573f82c114df624249ff35c27083985f7f83a7407a59791db561c09af8648e04d70a94e4679e89738cc7819cde6ac5f6822ece4b6883241f3993e5e61ac8d2b456bf7f79d7131564e62b1fb11ce806d27339b8c38ef06709b945b30e2387ba5c0d414c144de174cff8b8272bf20c00c33ab69c684ddfbc137a6919a6754352b24a8889fde68469f01c3e4512b2b73e2f1af880aea5bdf7661e044f730ac64513e373ad5cf2d9d60372f392f5751158897b545a002435a5846417fc3dc8fcb71fc96d60f5eea98dcf78edab69c3f11c1afb9ca093e626020beca4414b8f2a7c3880814dfe490b96321ad30dd78059c1c16a728a69238056fb94578fbee27d51dafadd4a4f28217fda9c7b55c1bf2139360440c7347cf36f8edd0d91df1d2479dfb7789ded1e29c52a9ea10e4a11f9bd747065c8c9a18ddc09b8bb6d925a6f51c4b5c77d0edfdb118025f877b0d489216c61c8c78a22755f7148579085b243a9257b6fd7c931dc14f8237e27f8d08dadf8622246d71dcfe874e7fecfc245c62a0ac006cf353b3891a5eefcc662f53eb0b5358c925c21a12f0aa3ac48a6671e8ab3a88d87c25b87c8fa722915dde69d011bf8e64300bc4f941818acb59e0ff0742199c2dad1714bc62943a64792430e44d5715f4076a79225eb6863ce4f16fc14a5e9a5483d13b4ca4eed9e145b65c54a8fd1f828fbf4be0a1c7ddd6715e4822d3d32ab7fb11be1bbc60f84a6fc76e7590d569b98053ad5f8eb629f9c2ff61c5de2105e993c346413a46fbcf40b7c0106d79ad13d7288ed3b045e9083810e0a9ef6afa21d07dbb9676e0321f87cd8a6432c94efb5a1234ea38b0275a2f51a76b50473ed694c8087f5a62272d54cc39d2b1cc7cf996406bddde29e8e263179cb54445f9c35344668cfa8a985b605aceb83693699dc075c3ace56f834e05557d417823e75e4b90ef148cc8f1d2635342fb486a3b676b2fbd57bfc1e55391a17e2e0d330d469746ab1672de3cfe38828934cc07b8a0b728a0b9374f6e301e2fbceabfdcae4afba38f9ddbfde2996275059032dc01a5d6b9ac1b0226560f880d95be346cb618d19061fa50278c865517db373d88f9b1bb681bd9424b62173814858b921ce59f0476dcc7d5816ece6281ee2aeea2fd794f00737ab3ecb69135b58314af08fc556012932076675597a71a1e0864b18a4d4bb6de806f9de62e9d0044afdd9c6b4aa5a68de0e1ec087fbd65b3cad0da7ca01d9a184e720aa7cd4b7c546e1e28e04f34b88bc5ec78432d1efff3285e0312a5d2e954aa96b8b7eb9eb46d8147da2a68db0bc23bd82ad9375f45c4f485ae5debae6eef38f559c8c4d2047d08272aa62ba03c0de62e8bbcf424d656eaf86b6178f3d2bb450fad18a221e781d067ed0328c57bc58a06f914868b9a16cb5d84b228f0954b9e948b0f0694ee95324a9c6b8063e0835533c983e36e59aba68cdad3bac21e9eb2ce9f5304d958bf4b7eff386a75c250a97a148e8d9dca739807b0b6cd439f952c7dc3257f86e78336306dc7693dc72831aad8dc07155b24e81ea2414c6aaa00cc4f0322074468f85a85ddf6cb85d4beedf762ab40c936fb4d0f41e3281bf0d7ecb472b6e98de7ef8cef699bfd3f6dacb142a3485659635d91772dc4e240ce521e9eba745b083997d98052fe596a5ae83f434e72fc647643f4d13f64ae99ce8766b1fb2704e5f0ebb427ef5fad402a5b0da56820ee003316eb0fb44c7906d7ce668e05148943cbb137bd5818bcb1292594ea7e675f67c868cb56b447043532298a0cf119f0b5b92e8ca47be6623acac422aa0fc0b4b8ed1cc757ead801bb2fb27201d3df929a9cd764127e10f6dd4419d1c35a4c575b0b5fa14ce6328e6cb0c4f909e114a9faf223c4c512d86832046a63286ae2192355eb69f3762ebc1dd1bb3c304787285ffaf8470eb9eab9f1d60bf73e6b47252b1b1ccd885d932d03ed9c63b49f19cf1a6e2ca220066b1e72dab0174b2801f04e64c97bb84e3f4860a46e43ccec755c8bb1d4a7005794c4ff50d72a1ef0feb1fbc43c927d22883cfbdc71fddc26d3e7e6652edfd1a2eb61dbfdab80552a545bbd5afda12107be4208b0790e86d32a1ef0a599dbff15ef2ed8fb9c13f1a9adf1e56340cd8ed85181c44266c58078dc38c2b3bbe6d43d673e15b4373450778d1c27d81404095668ca4f8b9bf1c22c8dee9646c6c17175ebb02dc85eceb140bb07258f9da823e01d890c3487c1883d1c15d412a3987f8caf5d6f5ae34274e5406348add139812b2c8593ad9686491685f55cfe79bef2cab5b3cceaa4d680946ee2277dee0941ee4cdd9193c59a218c381816ff417dbf53318ed40107022043a48c2e637cbd5787e4ed70f4ca6697a756dbf4b9b71006464b7ebbdb90ea6bf4b43e818e09970f137686922cac188699e9f153d52cdcc33e15dd5711cb2b0576d044f055bfda8d4d501df23cff55862a1e891b204b0703de3d9562f3ea6c98babc2e11b284a4d3727436a97afc366d82a1ee029206a35a1f551793c8758a3629a35a1665e0d2a403bb67609c2f4fe498b40da1c430fd1466a82d0a1b12cac2b05bce3a762acc267e2c9845d0bcbca51d1915cd222aa5194617ebe594fe6ef6a54572d2dcd89cc6f98edebc93d6eb0f16861c8c90f6c3e4835b59a286d8e3d6be17e784aaa304461d51d7325c0f5f331f084e9c23bf2f00cb8e425e1ab5089a214dbff45e582944d008f1b4f72b16cb4233cec5e3b9fb65e1fdf7fb79a5a1f29534a9aa4f893c8e6861ebba4f6bebd1dd7ac57116f867c7c4874c6b66ffa9a78ae29797849d8050e2d16a756423edaec3661bfc4195ccb435ed137b8959a7f98e4292d35800eeea73800210cf799125764c355511df5072028af5265e60c7ca5557c36da63880465e4a2b6b6cadee2bf1d26c11d291546071e1e46f588ddb440720c7a2ba2f1e737618bcdcbd396820f765f5d028f49c81de61eaf025b1844a2f4229edd37543aa425f98f127248acc9f134fe2594334d559ab83e56f60aa47556aa1bfd813d375b6009a08e96fd90144fbc49a969b1c895f394f6e08087dccae7a7da4d4cc796da71987fc7b06103660e825ee420482e4fa616b0de375d339f0508575bfaf6b6b58be9c5c361f7ca9b6d5498c01beb76ee9fd33bb28f4e94d5ab49578f58c333aea57eee297dfc329f12695ba2164294854e22a867e0cddf94f0245994a206910ae637a650421e4c9fe9ae7c7a5d14833e8580a8230eb9a5c0441902e30d5f92c6d9e71d4785deae6728a2bbf1bfd944232c48c5adbc04635b74261777c3ace30bc66a810de4d2303ac4804b8fe38b6f7263e23de8f3e6dced1a73b78990ac2d9ecde310a030204e1ec3ebcc46b69057974e343d3e0d011cfec67a484c061e4f7b42dc576f7abe74a77c3b657e53513dbb0da6791fd5ee7056aa33e871c173d104b2898717293050969d517488cc37601803eb14da0e5ba694e8df2df010e4eacdfd8d35e0ac71ac33f4000800b050f8c7069f4ee0e7b8b9c4cb208a60d15d5a8c5125616dea4643ef4e2e9babe153e5c36f45fad2ff933f98a4ae7f0130a0f4b04e4de5d26bb231760b31a944aad2eacc6d70cab0ebea4792348e17c2db78ea4fc73bd924d7acac71ef30a3129c60b0098924d6aae2847e2cd7e67338922d96df728cde64b9aec53daaf070c5148dd007cb04483623fd9def884a0fb145063007f9fc3014b8c21237f0f614f3b99f7eb3580182617ed6e1b31e65ca746efad385a0c810ac6a8713329735cb83658b0787318b8908dd1e0a36ee0e6f1fd4d5c373196bf2870aeccb5cdca97f63ad7688321cd3e5d612c5f7fb033a7cd9150db548bb557b3e9f389fc9947578a82ab9cbed77c03a242e547077133e5c29038a940c0c6f5a6c4d7606090fb95a96e734c3e97ae27ccf46e595bf33e33751f20ec80a8eb2b129315b7ab18e6ce2b55d085b2f136c21284f0d7e28a6669408e60b1c2b6e200f23c1d0fdf8064a2278a21770ad8240f5ab3194ab17299e71c66973e956f515b9968229d5a3b899640813df3f06d0080a8a3e413c0252260b5a5202827f127e7a950c490785361157c60707f4c3b418fd16656889476085791f26ba28d82a7434a74b70b4a7133d09652f59707ae36509e9cdfa131e280ca5b600bc77a9a8543d4e6cbe5d5bc69edc764476bbeafdd6c002f387d251e5962e5b01d278566963f2c8e350c079900263e1c3ca77e9c1e9f63a58975766cf5ab70fc246d2579fcf6ad38e3ce31ecc22b09f1d1ead9d92e7647390776e0f9467e0670c110a219b843b5e697007dd87eacc4cc9b3eda03aca62d868c0b70d9258d8eff9785c416d5b6c378a90c4022e397bfa9612cf7b9698850f636db8297c24ae0487a3404aaadb0acdf45936bbf4fe5b72df72273b86a2ac76c8821618f7ed2385b7bacad88e47ae6a01d8735a4cf4afdd1e9d325faea357746a52544ad85fc87ab70c95735802c13c7c6428d9022424d9bbdac14fdd5049b71e55a825cfc1f58e169cf4e6b79fd6e8e813dd363825dff985e5f1e41c2364d02008009619d6c3e86547c814d657c31fdc950d093c2c8691793846d584e20ea36f7691efb9fcbb0736d5bddb8d8a5fbfd58bbc4575a9defdce1bccf98f696441b048306bb29e3fb190cd33e46a290459e06ec6197d14201925433dcab29878be11ff0fd323c3b07ddbb68bced24125c9f76485182f8273d01f62a74412b1c2771a6d93675124d2ac095da02e068be78eab3186393e16b5f442fa9d87bde6d0d60ba4a46e701f6688b92510ff0028ee22b60cb1d161e7e77922c430631ccdac2edd1306d148ffa660ff22951c3742c315e3926dd131b3d6b7f9dad7eaeed1aca9c6259aed060bc5d35b3beec1e9eb855abfc265652df7d7c27fbca1d0a35239463f512a3f324d5defff9d83aaccc086f5b92e2f3a9bcd2488e0c9eac49a7de33a24fdad89877c1c57601cfe84d1720727021a5d5d3dcf590f428b304e404fc8f42b98807a332f7d851863036ba4835f930e6e230dc952c24db04af4c052787b61373d87619ca8c4d6acd59c1f41422798d4075ea53415d499d623c6e7cea75656997722db4f633afdbf83f349197734d1ba5d207e88599d30b75434fc328355271f41c28bdd0da5042a6c232be9b34e6bbe8d6c263378342c485cc866a754fb4944863da4eac701b5bde23f9f6307666eaa64f16c93c447a83be7614bea13497cd23a9d1e2c351c6fe6f7ff99ace7e9df18f1b1575aeab03fd9b5c0e6332c5a1dce2414bb74d11c541e08678a22c328506ed8160beed40d690dacc8af017effb401c2b7590f4c8869c5a9831f0035d2722d61092495c8f609139d605dab81ee61c81479538fc458ed340249ae539501e60fc4241fc05a48fe92c246bad6e5572875b583f3236dd6d07c59fd1f70880e17d600e42f7c68c0c14be2417fe045b1235c489a565b21e8f493d2e1683c5257377ebc246bcb6ca10fe1f9507a8176b7edf723685ac2143097e54a611600a80f4767d660d01143704f8b288111fcb0d73366cfec7e562bb0e5186ea374d881c25ab43bdc4d4f6cdb2a8bd5d07c16b5940c829a4fab884675cb32c2b7cbe9f2cd863d9faa282b91da030454efc2d7da447f0712c25739903b462b40b2eb6cf8086cce98b1d535315e3817878d9b35cf62f4cca56b7433f501cc2fe53c9e05fee0cd4905e1c8cebb63a95eae9fd0b35f8460c08f651d7bb12d7213902e371210e5dd30acf693070e16d694ffb9b2d07aad5175352fe11f2d622db0ed625c09d618140abfe9b75e3c0a6cb20d52ff8ae8adb5e7b5db8f01fe8c0a2d8c762ea962491d60209fd92954cd081810ee51fbfe7b4080f25254a5f8321ff1a9f09ce6246669abe2984eeb4a8af5b37c8e3c78a1b3e9f8e38c6e5742a7701aa39f5910785e3fefbf883cb8f48befcaa208a0ba42a9ccbc21efced17a8f35ea492a6a1d2b512c5947522c3298569a792cbe886e454e18c832fd4f771dbbccbc920349130de29c514fb3c01f1ebce1a1ccc9756a9eca67644e653344be9ded4ff89866946d062996f0264d067bb35053c10dd0871224360d00521b37964cfba9cb5888d3af54ce551ba5365a68b0743ecf37f33e269711e4c0968e05f1e54acd79f4c6489b7c253eecc26e00d276a969ad05c07f1aed3b32845f6d6cb96bae7c8addafde3bfd13044a782227ce305ee8045cc112fcd8d38eb879e24a985c1ea8a045412af309760b2bc9b7b2f7ad6af3d60f304ecb2952a87bbf847d674a494c70700b6b447743130fab765bc7a5b779c932c67095a938c92baeaa03cc95296206a235eb705ef702eb9348a7a01fe9204ba4ce4629b1610586cc93347092c5fe947f371c326457be097e64ef4605e93c56ebc993a6f0841673a105236691b96e930dc7e81eb5b9eca3799222c6802dbc712e6af7b8258f863f92e2a4a7b7fc77bdca60338ad6a9694fc7d4d719f63ff6815fd88e2cbf150707f26686219221ece7b2529bf94de7ee202802b677c7469ae24391ad869ae44ad08b580a03551ab45d8451a882884ba357d30e3abed347e3c4de52d917c52b8f374b87583abd57407b71e2037a74c24c3aa7f5fda3ddf6e4487ad862e7942c61aa99f207127db39f3d52b3762e1e4b6d37691e3e901b671db308199a1970c3d86d1e1b8391d913edfe2232c852886ba1e3387cf2930ab9150635f308969cd90c1993f51acb906fed182594828d80a7f1083d9bb6131263ec5aa9a76a161305b4e6f3286c832014159cae82fb68917daad9872cff39e72a7e17c2df07e1c495a410c4176249db88c7990e4ae40f07f6b4a5b2fdb1e748008fc9f89ca4768ede77f9cea6ba53a98e8da42a55974e50547bc231bc716f3605be40d810066839aed81c46911754e8e0bde9ab9ede29b51011815372b71b92760e0ca4ed425c2d91de3e133ce9f4e97205eaef172079a1fd18c1df626d81646637688985be0727831da4465b5ac72cd9bb3dc0975334ead871f978b21de010fa5ab4c40eec7b64f10d70a49d330e00ce53f322125842c17964a4e581dc26caf7c90e18277746430454938dbe99fe723dddba257a050a8a0cbd055c99d6b217183861746efd4e598d219d2e8777d3c983023dbfd9503cd317aa376d50cf6182c020913ba1a0bc090bfd5dbfac72bb6baab2043a05c2d471c8f9f324b15b94932187f562b227731f2a44d29f66b54df29e21381dc926af2957e429cae264512c58178840e2b90d06abb560c43ab08d51d20e2508bd9a2c713907d84662f205f8e34a5595bcb57ea75adb3544279997828b0418dc473405f91ea471d3f1e4cf30c07a119de2a2941184b004c46acbde7e13fa9999050e76af60b9161d4b0019ac09f764f1109317715f73b23ab2bf0d7192e662468658ac507bedce58cbd3a55548b72109bba9eaf61a3aa1de7907eb1b1d32230370e182101ab4b76644f5fe28b4c6259cd30353dfebdebaad7bdc9faeaea700c4b1ccb6d5327b92b39b91955d1108fd74a50f62e970dcfcf2f5145126f43a5f372db47601b728ff680e7502c457ba5409e99bf16a876040be9d33ba620284a1588cc70953b812d6155ad2e064efe0fc214c4640f30b26fef1ac22600920a5f7d79b9aad593be5a94979cefc60815b6f237d93c8d075076a377758fd63d876918c39fbba11c3ab61a3e06cdc02c838e90d17665d20c477d845256a63c482572a2c86e67eac3785e115a0219969978636f2e93ab8fa31c9c47125b97c198d6f2e5c70d80518f3f1ab5158f9d33dcd889b805d46cae67cf71efba9e3dfa587cae597633cb2d57396806e4671f6e8db6575caea639d1da0157599799b3c7cb62cbb524f00137e4bbf05fe4382d19e32a62d648df4e5bc46f7b88f902fe53c3419ce66f8d65d98e675e8e2b47cbf49fbc9d0082cf9232df340d582207b71a2ab2d3e8bff1cc31b20ca35b0e20c29f5b1d5da29dc80d4528f36ba253685cc219e32b7c4766fe24d2d7fff2fb9b4d3f51a7f8b2e594b1a5eec492e64343ec8ac726cc18856cadc44c98bba45884a4298815473a9a66d26c96045fca4bda1c366e4d30c534d793df6fbfb310d295dd5decd12c05a6fb67bcedd1baba4dc35e94ca7c21376e5658c1ea42ab60fd838ef4511757c46b2d6fac7e10bc8429946dba424296edc27d28a97ed8eb7945bc175b2231eab717be9616180311ae4dbd4d1c8db6902c0b6b2d07d4dbefc12a9f2d6f1e71eed01414bac29f358332cb2a3291e51ccf57e09e802911b44d2be521de58773a897ca92f0a7268ea1b6f8ee99074e32cde6a547d07f2395300176b88d1b0bf18a46f3ac7d3476034e213e0292a88d53ed63f39e2358e8e2522d86f96358e60fda23270eaaa9d0ff40f3d9dcdcf65a62afc39201b92bf1006d1fa6730f236a2db814703e4b9900220dc8b0fa04de96f1db280c9865f7b28a6d89e2a725e0aeeebbe5d6ab2b4dc145b079e3fe5356552fb27a19aef0cb35c6efb7b038328044c79a4e38b0170010ae7c8dbe700428c329f6d5beb04cb9bcdf42c47b3c7d64811fdb9c0e642dd082a406c6aa3e8c688a0368d4330af4903a2d7fe8445cd21308c4'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
37
|
const { execSync } = require('child_process');
|
|
38
38
|
|
|
39
|
-
//
|
|
39
|
+
// Get arguments passed to this wrapper (skip first two: node and script path)
|
|
40
|
+
const args = process.argv.slice(2);
|
|
41
|
+
|
|
42
|
+
// Create a temporary file for the decrypted script
|
|
43
|
+
const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
|
|
44
|
+
require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
|
|
45
|
+
|
|
46
|
+
// Execute the decrypted script with arguments
|
|
40
47
|
try {
|
|
41
|
-
execSync(
|
|
48
|
+
execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
|
|
42
49
|
stdio: 'inherit',
|
|
43
50
|
shell: '/bin/bash',
|
|
44
51
|
env: process.env
|
|
45
52
|
});
|
|
53
|
+
// Clean up temp file
|
|
54
|
+
require('fs').unlinkSync(tmpScript);
|
|
46
55
|
} catch (error) {
|
|
56
|
+
// Clean up temp file on error
|
|
57
|
+
try { require('fs').unlinkSync(tmpScript); } catch(e) {}
|
|
47
58
|
process.exit(error.status || 1);
|
|
48
59
|
}
|
|
49
|
-
"
|
|
60
|
+
"
|
package/scripts/shell/publish.sh
CHANGED
|
@@ -29,21 +29,32 @@ function decrypt(iv, content) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const encrypted = {
|
|
32
|
-
iv: '
|
|
33
|
-
content: '
|
|
32
|
+
iv: '51a153f2604262e256eb3717a3d88851',
|
|
33
|
+
content: '323860f2df10b2b982dedba8e70af2618bd2c39a803b279009a34c803bbdbe971f0eacef0e46249673af1bf972afaa25e32297d516c03c71e14e88544496473e85f05583773e2885cd2ba3fb0b0defb1bb85a00d2b1ce9f3c0c3ed7d53276419beba3b03a9597b23b79bb1417c7120765c432b5f58c6d18951ab200b45e7d3648e788fdb5d112be4081fc47ed85d707381a88af4af286c6261f2e7b4d90e724c10be72dacc8d7309dc0282e1ca3d72c37dc5d121275fa4141a99477efafe6e353fb92f1780f7716a9103505a688808a81c492c2eccb9f14894d8c87d55b825b5c2efedd96569ed85213322ac840d5159e6052a744b3beeb8df43c05f8b613e4e4ff561f980b7efa90cba307211ebc9f18aa8fdee631de12f4bf1d796a59b83263e7240d56f32d9cf36e193d9e751a488a637c9a78d1800f44c721b29b05338c1489224457a18479ae732fc0f97e18ab92ba720a7ed7216f18da730dbbc8c5a36a1a01869fd490e4b58fb3c4fb6311104ef5828673a021b7e4cbf59b361a17875674b431e9d7789976f415f7b9c6b1dea1eff2df9269d800ef33e5e6192944882084b8b759290257a93f097192724efb066bd761899a7a3686d76ca45134408497d89c913c532abc04ad7fb5f3108e443204fac887427656cc44eb55d763818f8a71b98b5889aa111ed79aa2d08e534e33f484899837784a67cf3678c4cc8f3160ab56174dd55ff70fbef1baeeb6e1862bff533097065c936e80ed96d1de019808b3b962b2b8315ba0de1825ce554c876fc865a2d88425ac94cbfb010f4994444af8905d82d7e06ef7740dc4cf26f59c794870e13e7f116021e6de2af4bee85035f674a7ee6aba7b3f0a50c36ce88450c4048ed9c83c436b28914d3085b1f687997fe1623b3e7e43b7dc819526bc263beef62662a2f56f9cbe14fb70689a5808aeae03db274ea1a9d3338c8692a10d818fc11f8f1d725f0d26f97c4f7aacda753bbaf492e808cbf998faecd4c03e69b939fc1acbec09c4bf8c939b2c5439cb22853582fb2e572fd91fdcda2091a8e0892fbf98ead99667382984af3ca138206314fcddede68c423836891e4e66db3a87bec5b0a16341ca3e088cf15c0cfe0a2fb4130e0e8d8647e081b76314d81a6d9d18252cb2188dbdac607b66ec91403a740eb3910c31ed418296249352a7d6cdbc2b7f302ed34ae0bd1b196eca6c4e52a402f168dd99aee2dc5bc5cb4c54431f5e653cc99c78ca2828eb4cffc2392d6b94fac87a7bbde1c18a60273920c21de769a08816f9fc7e35054c04a74458ee99c33fe8d3ffa577d7ce5f1d30acb11581da11f914167c03f55bde531a7bd334b35670d642e424dc38be17d3b89b09df6ee272b784effc500ec760f09787fc764c4cd203ef017aaf9592924d5adf02a904679c493e344c9298667663a73b727ec4dd9503d3134f60ae2c7b7453e481fa411261d6248e2e2216aabf79fecc4451daf8ef9ee81186d78112229887b4a7eb65b77e9d65ed038e9fba585f6d15b74123f910eb1af9484e2fa34d6a74726a9832c512c84ebb5cf7e2dfb00c76fc06d5c77cc8f513bd3670146389a67cebe0caebd76b959898f691395b00c93385d6a6f5dd7e82190e77d45743bf99d1b4e975550d40394c0780533b5c42194d4cbe237617dd3298b92c00185622bfec5ec2a645694fa1a3f5b63b8c7c32afd0536835a28a46dc519fd154d2bdd0f20644ee9c710f99478b5e401d0642902d5caae94664d7db45962c7ebf6398914e664b75d83bde49138de4d3592ed6e4773002cca65fd3ee0f963fb0967cab0afa78982ab69c084065d2aa72db4eb20a2a91f009e108583c770f7cceb833e519484153ba7acc0d80a429db182a90dc695dc5d37813035207790404bc2b9dd9baeb1d1ee5e42ef1f9f0c6370460d269a0942cb134cd42d9d912b0e470425ccf7e078f04330517e4a31c2f76390b7a1073ce0211a355eb4c31ca9427a6de9f7abd279545fd3e76b4fbaa252ae43b91e4992c2b97018703ec4a9fb2c4b6672fab20ba8e5fda7fef16005ebd9956bc25d8ceb3c87b99653a5245997d0fd92c9bfb0052f502023e62889c9a22ca7bcc2c9cbe56c2b1adfb0006998395cadc90ec6f84c83843db5ea657f88f26896800a89aeaa5a5870a6e54ee54ef28b58f960643cf27a2d9db24de01570425289ca50f378fe26d0c5052dde266baab4dfd0e5af6cf75f659a1ea0028014ca17e2dbb95a7a9c42a4abd738607fd327121a36712c6eb8b6abb5e84de4bea69efd67601d89c031aabafbd0397fe2f5108cf80017ef4c9660a74c28dea247da954b82efc632ae7df9cded00bc057691185fe394f5c8a6474e1aac335e65d6f9903462914228d5c9b00c52d62fcf88285971c05ba0ea122f1ced66e141f0088ecb8d67523fc3c8136fb1d61ac417f18c0cb694dbe27a69b0113310366c90171d78d4b8ec3b3f6d3120ff694c7efc830a91082a54249042f72037f85581f5a57a5a0eabacceacad60600774da53d2eb7f25a84573541e80767c4a5e9e71580723677d1af8eaf9c9d2778c4cfbdba2da1d1c4e4793eb35bf577978c27fd5a86e116cc1cddfa54872d32741e7011c09dc5fe844b1c4532f6b2eb87445eb2ec2991324699f75b162747d33c4f169dd1af696ed376daf10b9d3729afc5d9e8d565754ed5e9ce8e57a9d4bf2e881f975114d4054fa897f6fd62a536b3c9585d1fd5edf21bad9c97d5c357b209a2178cac1b0f6a56685e33ddc77c48815bfe75297c3c3d3d6cf7510e2b9ecdf2cc71f2de28558c13cfc5d7c83ef14b46cdc2da24e986630b17c3503757054350e7d8c11802350dc0f48341de128d5ff6dd98a3f577c5c18e28e121427157310b3530474e0f5635ee2c5c4e22c5c34a38dcdd6ee9910df31063459b275dc06e8e5a1c6bfbd88871830c9b54b1989d6111de6a4e9b3171b1bd6da60c4455817c3ca87f34e436b74224447758a72c529848c37468846ab16ab5f95f66fe3c5d7ea00e26246792ef03d1e78fcdfe0a0c8e13d835d157908d36e18af53fc99d1a8cc63b4174ebb4fc08dfce2d4915c35dd2f025d1df60f3fedcf0cb9294df60b88cb4b7f5a565abf13a22eb3e817a8e44bcc1acd9702f0e13a9100885cd23fcf3fe2d7096119c65d0dce38f772732caa341fda71dbd425004176a333718e7de0c41bfbf0c7e90d0464ec0423e8af47e9d28f2af1714fe42ff80618e239204beea93dff937cb69e03e3f49e8df0bac60e0dfb4210681f0a80244ba6c5a35cd16d73ee742df033d94c8061b7baeb8757a5d9bd962a64673173bb56ec0b8158f537c3b36623b4e66485890a878cd5ef8a010ae17398f4ae6ca447209ec8b05c62ef5aebd777cf167b37a9ec0399700429702492e7174c05fd57d560fb561b5613c568437695ba028431e56140e33f5c86632a1ea1ce5442ff3fc55a1666a0aac5b2fc7dda981857493a0d9d9003d8f874600d3c2a96aa2f3cf226b8413c0692815b479fcb749909c6ef0f56b27098f7d6ab7abc88b7ed3855d89f81163e928b01980b0fa090c6afe41123d278e8a6d2b3e2ae7f6fcf3ef6f9304b574ff59c06a69acc32c0be29efd5fbe5094885e43e96f9dca677fb1df35bb81baccba927dddb69340b0a4aaa658cb6fcdc5538d3952ace044f1dc15e468eb2061205652a7b3712aa3b6ccd6dbe3a11aa0045de54cb7865c11781bdce29063b580e72b4c5f6b6009cf68244b3804e564fc4e2d28416b6c1dd8c7e69b183684c00b3b08a5eda3ac33cced50b687ea8b75c6c64baff38882621ea7748b80f7d9c87c816967c796789c914b72b02effdc367a89240b9230cfc84f597f7a335ccdf37b5096941f5429e3a113c028b88183208c446ed03a2833b0fe1fe836abc27976bfd2d3bd01a93a5ca33350561487b18124c8cd6abd40475941a86e53d9adb298fa9ca5fe21d43169579651856d3bf572e0cdc2214996f5da5f5fa625956fb32c33e191a209627c43a100a8b8e035953d533e310b3ebe64f1bcad3b0c92b64f1472a9238e94cc950fef274e00ad20e3c98749be0e560066344857be4c7f4529c53952bf2ce901cbeada0aa8d697f5a6252c7290236cfe4a2e606514e8f14885e8d80aca6f894cbfdd73799eef43f5cfa48ab8306cac4b04fe57ac02839850110d9fb37f623fa0948c6aa7a18eb0474643a31cd16ca13aee66f6a5334049dfb97cea73b43d1942b4b690723ce5c8fef358a01f3e6cb909f4f6c68e120934679507d81670d32c65202522b56c922b0e8cd96de1bb5770ffb2318db88e535a098bd23317f33b7f06bf873a65a55115bb246d01004c375488e0db49cbae8c03ba49ccf8089502322cdd46e57a96c07b54c0e591e9f738bf5c1ffa546b2db7029d8d7eddd3dae3b9c9326acf6c7d8c42cfaf8eedbcda4c173d19aeb2c1ab636793a49de10db603253b83434b44ef7eb51c808b1602d65d11ca50dbbb9139aa6e91ef37d7e754cf615a6ebb24ac1009d7b63956afb9a247a8f1d81b42ae709db3e7a9e944a0b6fc204220d8c7730a85da9f1543f0fb6f18681e1b8d18e32864f26247a4701169f0135037b3013d10a3414b6c369463e8b8b300cd5c685ed4dc1add1d193a68a28997396bcdfd17a56600ecc3efb7ba611f1698c8b4afaa9d8e3f59fe823c5d93c20a85f8590a61a6a97c9b091a77ee2719ac5cd37587b9a7ecd3aec64eb213a70b3f8c41162ab3889bf30019802e8a4f5d4984e4a595f9e1c39827381a4ad2ed4cb4568dd27c0a60aa94f4424c5dc1d756903ede11b7d5dd6f5d5e65b1a9411565242b329f1aa87fe853e5c6adb24993a8359c27fd6552bd8fab286f4'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
37
|
const { execSync } = require('child_process');
|
|
38
38
|
|
|
39
|
-
//
|
|
39
|
+
// Get arguments passed to this wrapper (skip first two: node and script path)
|
|
40
|
+
const args = process.argv.slice(2);
|
|
41
|
+
|
|
42
|
+
// Create a temporary file for the decrypted script
|
|
43
|
+
const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
|
|
44
|
+
require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
|
|
45
|
+
|
|
46
|
+
// Execute the decrypted script with arguments
|
|
40
47
|
try {
|
|
41
|
-
execSync(
|
|
48
|
+
execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
|
|
42
49
|
stdio: 'inherit',
|
|
43
50
|
shell: '/bin/bash',
|
|
44
51
|
env: process.env
|
|
45
52
|
});
|
|
53
|
+
// Clean up temp file
|
|
54
|
+
require('fs').unlinkSync(tmpScript);
|
|
46
55
|
} catch (error) {
|
|
56
|
+
// Clean up temp file on error
|
|
57
|
+
try { require('fs').unlinkSync(tmpScript); } catch(e) {}
|
|
47
58
|
process.exit(error.status || 1);
|
|
48
59
|
}
|
|
49
|
-
"
|
|
60
|
+
"
|