@vendasta/social-posts 4.0.0 → 5.2.0
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/esm2020/lib/_generated/host.service.mjs +25 -0
- package/esm2020/lib/_internal/enums/index.mjs +9 -0
- package/esm2020/lib/_internal/enums/multilocation-post.enum.mjs +12 -0
- package/esm2020/lib/_internal/enums/social-posts.enum.mjs +39 -0
- package/esm2020/lib/_internal/hash-tags.api.service.mjs +49 -0
- package/esm2020/lib/_internal/index.mjs +17 -0
- package/esm2020/lib/_internal/interfaces/api.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/field-mask.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/hashtag.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/index.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/multilocation-post.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/pixabay-image.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/post-templates.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/social-post-stats.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/social-posts.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/tenor-gif.interface.mjs +8 -0
- package/esm2020/lib/_internal/multilocation-post.api.service.mjs +64 -0
- package/esm2020/lib/_internal/objects/api.mjs +1354 -0
- package/esm2020/lib/_internal/objects/field-mask.mjs +27 -0
- package/esm2020/lib/_internal/objects/hashtag.mjs +39 -0
- package/esm2020/lib/_internal/objects/index.mjs +16 -0
- package/esm2020/lib/_internal/objects/multilocation-post.mjs +115 -0
- package/esm2020/lib/_internal/objects/pixabay-image.mjs +138 -0
- package/esm2020/lib/_internal/objects/post-templates.mjs +75 -0
- package/esm2020/lib/_internal/objects/social-post-stats.mjs +127 -0
- package/esm2020/lib/_internal/objects/social-posts.mjs +272 -0
- package/esm2020/lib/_internal/objects/tenor-gif.mjs +106 -0
- package/esm2020/lib/_internal/partner-social-posts.api.service.mjs +46 -0
- package/esm2020/lib/_internal/pixabay-images.api.service.mjs +41 -0
- package/esm2020/lib/_internal/post-templates.api.service.mjs +59 -0
- package/esm2020/lib/_internal/social-posts.api.service.mjs +70 -0
- package/esm2020/lib/_internal/tenor-gifs.api.service.mjs +46 -0
- package/esm2020/lib/hashtag.service.mjs +42 -0
- package/esm2020/lib/index.mjs +8 -0
- package/esm2020/lib/multilocation-posts.service.mjs +76 -0
- package/esm2020/lib/pixabay-image.service.mjs +23 -0
- package/esm2020/lib/post-templates.service.mjs +72 -0
- package/esm2020/lib/social-posts.service.mjs +43 -0
- package/esm2020/lib/tenor-gifs.service.mjs +34 -0
- package/esm2020/public_api.mjs +5 -0
- package/esm2020/vendasta-social-posts.mjs +5 -0
- package/fesm2015/vendasta-social-posts.mjs +2884 -0
- package/fesm2015/vendasta-social-posts.mjs.map +1 -0
- package/fesm2020/vendasta-social-posts.mjs +2883 -0
- package/fesm2020/vendasta-social-posts.mjs.map +1 -0
- package/lib/_generated/host.service.d.ts +5 -9
- package/lib/_internal/hash-tags.api.service.d.ts +18 -0
- package/lib/_internal/index.d.ts +3 -0
- package/lib/_internal/interfaces/api.interface.d.ts +51 -0
- package/lib/_internal/interfaces/hashtag.interface.d.ts +6 -0
- package/lib/_internal/interfaces/index.d.ts +4 -1
- package/lib/_internal/interfaces/pixabay-image.interface.d.ts +26 -0
- package/lib/_internal/interfaces/tenor-gif.interface.d.ts +20 -0
- package/lib/_internal/multilocation-post.api.service.d.ts +4 -0
- package/lib/_internal/objects/api.d.ts +81 -0
- package/lib/_internal/objects/hashtag.d.ts +11 -0
- package/lib/_internal/objects/index.d.ts +4 -1
- package/lib/_internal/objects/pixabay-image.d.ts +31 -0
- package/lib/_internal/objects/tenor-gif.d.ts +31 -0
- package/lib/_internal/partner-social-posts.api.service.d.ts +4 -0
- package/lib/_internal/pixabay-images.api.service.d.ts +16 -0
- package/lib/_internal/post-templates.api.service.d.ts +4 -0
- package/lib/_internal/social-posts.api.service.d.ts +4 -0
- package/lib/_internal/tenor-gifs.api.service.d.ts +17 -0
- package/lib/hashtag.service.d.ts +13 -0
- package/lib/index.d.ts +3 -0
- package/lib/multilocation-posts.service.d.ts +3 -0
- package/lib/pixabay-image.service.d.ts +11 -0
- package/lib/post-templates.service.d.ts +3 -0
- package/lib/social-posts.service.d.ts +3 -0
- package/lib/tenor-gifs.service.d.ts +12 -0
- package/package.json +24 -16
- package/src/README.md +1 -0
- package/vendasta-social-posts.d.ts +1 -4
- package/bundles/vendasta-social-posts.umd.js +0 -3709
- package/bundles/vendasta-social-posts.umd.js.map +0 -1
- package/bundles/vendasta-social-posts.umd.min.js +0 -2
- package/bundles/vendasta-social-posts.umd.min.js.map +0 -1
- package/esm2015/lib/_generated/host.service.js +0 -104
- package/esm2015/lib/_internal/enums/index.js +0 -13
- package/esm2015/lib/_internal/enums/multilocation-post.enum.js +0 -19
- package/esm2015/lib/_internal/enums/social-posts.enum.js +0 -67
- package/esm2015/lib/_internal/index.js +0 -18
- package/esm2015/lib/_internal/interfaces/api.interface.js +0 -447
- package/esm2015/lib/_internal/interfaces/field-mask.interface.js +0 -19
- package/esm2015/lib/_internal/interfaces/index.js +0 -5
- package/esm2015/lib/_internal/interfaces/multilocation-post.interface.js +0 -59
- package/esm2015/lib/_internal/interfaces/post-templates.interface.js +0 -45
- package/esm2015/lib/_internal/interfaces/social-post-stats.interface.js +0 -57
- package/esm2015/lib/_internal/interfaces/social-posts.interface.js +0 -127
- package/esm2015/lib/_internal/multilocation-post.api.service.js +0 -136
- package/esm2015/lib/_internal/objects/api.js +0 -1805
- package/esm2015/lib/_internal/objects/field-mask.js +0 -53
- package/esm2015/lib/_internal/objects/index.js +0 -17
- package/esm2015/lib/_internal/objects/multilocation-post.js +0 -197
- package/esm2015/lib/_internal/objects/post-templates.js +0 -127
- package/esm2015/lib/_internal/objects/social-post-stats.js +0 -207
- package/esm2015/lib/_internal/objects/social-posts.js +0 -446
- package/esm2015/lib/_internal/partner-social-posts.api.service.js +0 -90
- package/esm2015/lib/_internal/post-templates.api.service.js +0 -122
- package/esm2015/lib/_internal/social-posts.api.service.js +0 -155
- package/esm2015/lib/index.js +0 -9
- package/esm2015/lib/multilocation-posts.service.js +0 -145
- package/esm2015/lib/post-templates.service.js +0 -138
- package/esm2015/lib/social-posts.service.js +0 -85
- package/esm2015/public_api.js +0 -9
- package/esm2015/vendasta-social-posts.js +0 -13
- package/esm5/lib/_generated/host.service.js +0 -115
- package/esm5/lib/_internal/enums/index.js +0 -13
- package/esm5/lib/_internal/enums/multilocation-post.enum.js +0 -19
- package/esm5/lib/_internal/enums/social-posts.enum.js +0 -67
- package/esm5/lib/_internal/index.js +0 -18
- package/esm5/lib/_internal/interfaces/api.interface.js +0 -447
- package/esm5/lib/_internal/interfaces/field-mask.interface.js +0 -19
- package/esm5/lib/_internal/interfaces/index.js +0 -5
- package/esm5/lib/_internal/interfaces/multilocation-post.interface.js +0 -59
- package/esm5/lib/_internal/interfaces/post-templates.interface.js +0 -45
- package/esm5/lib/_internal/interfaces/social-post-stats.interface.js +0 -57
- package/esm5/lib/_internal/interfaces/social-posts.interface.js +0 -127
- package/esm5/lib/_internal/multilocation-post.api.service.js +0 -163
- package/esm5/lib/_internal/objects/api.js +0 -2015
- package/esm5/lib/_internal/objects/field-mask.js +0 -59
- package/esm5/lib/_internal/objects/index.js +0 -17
- package/esm5/lib/_internal/objects/multilocation-post.js +0 -215
- package/esm5/lib/_internal/objects/post-templates.js +0 -133
- package/esm5/lib/_internal/objects/social-post-stats.js +0 -225
- package/esm5/lib/_internal/objects/social-posts.js +0 -482
- package/esm5/lib/_internal/partner-social-posts.api.service.js +0 -100
- package/esm5/lib/_internal/post-templates.api.service.js +0 -145
- package/esm5/lib/_internal/social-posts.api.service.js +0 -186
- package/esm5/lib/index.js +0 -9
- package/esm5/lib/multilocation-posts.service.js +0 -191
- package/esm5/lib/post-templates.service.js +0 -182
- package/esm5/lib/social-posts.service.js +0 -106
- package/esm5/public_api.js +0 -9
- package/esm5/vendasta-social-posts.js +0 -13
- package/fesm2015/vendasta-social-posts.js +0 -3220
- package/fesm2015/vendasta-social-posts.js.map +0 -1
- package/fesm5/vendasta-social-posts.js +0 -3668
- package/fesm5/vendasta-social-posts.js.map +0 -1
- package/vendasta-social-posts.metadata.json +0 -1
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* @template E
|
|
7
|
-
* @param {?} enumRef
|
|
8
|
-
* @param {?} value
|
|
9
|
-
* @return {?}
|
|
10
|
-
*/
|
|
11
|
-
export function enumStringToValue(enumRef, value) {
|
|
12
|
-
if (typeof value === 'number') {
|
|
13
|
-
return value;
|
|
14
|
-
}
|
|
15
|
-
return enumRef[value];
|
|
16
|
-
}
|
|
17
|
-
var FacebookPostStats = /** @class */ (function () {
|
|
18
|
-
function FacebookPostStats(kwargs) {
|
|
19
|
-
if (!kwargs) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
Object.assign(this, kwargs);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* @param {?} proto
|
|
26
|
-
* @return {?}
|
|
27
|
-
*/
|
|
28
|
-
FacebookPostStats.fromProto = /**
|
|
29
|
-
* @param {?} proto
|
|
30
|
-
* @return {?}
|
|
31
|
-
*/
|
|
32
|
-
function (proto) {
|
|
33
|
-
/** @type {?} */
|
|
34
|
-
var m = new FacebookPostStats();
|
|
35
|
-
m = Object.assign(m, proto);
|
|
36
|
-
if (proto.commentCount) {
|
|
37
|
-
m.commentCount = parseInt(proto.commentCount, 10);
|
|
38
|
-
}
|
|
39
|
-
if (proto.shareCount) {
|
|
40
|
-
m.shareCount = parseInt(proto.shareCount, 10);
|
|
41
|
-
}
|
|
42
|
-
if (proto.likeCount) {
|
|
43
|
-
m.likeCount = parseInt(proto.likeCount, 10);
|
|
44
|
-
}
|
|
45
|
-
if (proto.reactions) {
|
|
46
|
-
m.reactions = parseInt(proto.reactions, 10);
|
|
47
|
-
}
|
|
48
|
-
if (proto.peopleReached) {
|
|
49
|
-
m.peopleReached = parseInt(proto.peopleReached, 10);
|
|
50
|
-
}
|
|
51
|
-
return m;
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* @return {?}
|
|
55
|
-
*/
|
|
56
|
-
FacebookPostStats.prototype.toApiJson = /**
|
|
57
|
-
* @return {?}
|
|
58
|
-
*/
|
|
59
|
-
function () {
|
|
60
|
-
/** @type {?} */
|
|
61
|
-
var toReturn = {};
|
|
62
|
-
if (typeof this.commentCount !== 'undefined') {
|
|
63
|
-
toReturn['commentCount'] = this.commentCount;
|
|
64
|
-
}
|
|
65
|
-
if (typeof this.shareCount !== 'undefined') {
|
|
66
|
-
toReturn['shareCount'] = this.shareCount;
|
|
67
|
-
}
|
|
68
|
-
if (typeof this.likeCount !== 'undefined') {
|
|
69
|
-
toReturn['likeCount'] = this.likeCount;
|
|
70
|
-
}
|
|
71
|
-
if (typeof this.hasLike !== 'undefined') {
|
|
72
|
-
toReturn['hasLike'] = this.hasLike;
|
|
73
|
-
}
|
|
74
|
-
if (typeof this.canLike !== 'undefined') {
|
|
75
|
-
toReturn['canLike'] = this.canLike;
|
|
76
|
-
}
|
|
77
|
-
if (typeof this.reactions !== 'undefined') {
|
|
78
|
-
toReturn['reactions'] = this.reactions;
|
|
79
|
-
}
|
|
80
|
-
if (typeof this.peopleReached !== 'undefined') {
|
|
81
|
-
toReturn['peopleReached'] = this.peopleReached;
|
|
82
|
-
}
|
|
83
|
-
return toReturn;
|
|
84
|
-
};
|
|
85
|
-
return FacebookPostStats;
|
|
86
|
-
}());
|
|
87
|
-
export { FacebookPostStats };
|
|
88
|
-
if (false) {
|
|
89
|
-
/** @type {?} */
|
|
90
|
-
FacebookPostStats.prototype.commentCount;
|
|
91
|
-
/** @type {?} */
|
|
92
|
-
FacebookPostStats.prototype.shareCount;
|
|
93
|
-
/** @type {?} */
|
|
94
|
-
FacebookPostStats.prototype.likeCount;
|
|
95
|
-
/** @type {?} */
|
|
96
|
-
FacebookPostStats.prototype.hasLike;
|
|
97
|
-
/** @type {?} */
|
|
98
|
-
FacebookPostStats.prototype.canLike;
|
|
99
|
-
/** @type {?} */
|
|
100
|
-
FacebookPostStats.prototype.reactions;
|
|
101
|
-
/** @type {?} */
|
|
102
|
-
FacebookPostStats.prototype.peopleReached;
|
|
103
|
-
}
|
|
104
|
-
var SocialPostStats = /** @class */ (function () {
|
|
105
|
-
function SocialPostStats(kwargs) {
|
|
106
|
-
if (!kwargs) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
Object.assign(this, kwargs);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* @param {?} proto
|
|
113
|
-
* @return {?}
|
|
114
|
-
*/
|
|
115
|
-
SocialPostStats.fromProto = /**
|
|
116
|
-
* @param {?} proto
|
|
117
|
-
* @return {?}
|
|
118
|
-
*/
|
|
119
|
-
function (proto) {
|
|
120
|
-
/** @type {?} */
|
|
121
|
-
var m = new SocialPostStats();
|
|
122
|
-
m = Object.assign(m, proto);
|
|
123
|
-
if (proto.facebookPostStats) {
|
|
124
|
-
m.facebookPostStats = FacebookPostStats.fromProto(proto.facebookPostStats);
|
|
125
|
-
}
|
|
126
|
-
if (proto.twitterPostStats) {
|
|
127
|
-
m.twitterPostStats = TwitterPostStats.fromProto(proto.twitterPostStats);
|
|
128
|
-
}
|
|
129
|
-
return m;
|
|
130
|
-
};
|
|
131
|
-
/**
|
|
132
|
-
* @return {?}
|
|
133
|
-
*/
|
|
134
|
-
SocialPostStats.prototype.toApiJson = /**
|
|
135
|
-
* @return {?}
|
|
136
|
-
*/
|
|
137
|
-
function () {
|
|
138
|
-
/** @type {?} */
|
|
139
|
-
var toReturn = {};
|
|
140
|
-
if (typeof this.internalPostId !== 'undefined') {
|
|
141
|
-
toReturn['internalPostId'] = this.internalPostId;
|
|
142
|
-
}
|
|
143
|
-
if (typeof this.facebookPostStats !== 'undefined' && this.facebookPostStats !== null) {
|
|
144
|
-
toReturn['facebookPostStats'] = 'toApiJson' in this.facebookPostStats ? ((/** @type {?} */ (this.facebookPostStats))).toApiJson() : this.facebookPostStats;
|
|
145
|
-
}
|
|
146
|
-
if (typeof this.twitterPostStats !== 'undefined' && this.twitterPostStats !== null) {
|
|
147
|
-
toReturn['twitterPostStats'] = 'toApiJson' in this.twitterPostStats ? ((/** @type {?} */ (this.twitterPostStats))).toApiJson() : this.twitterPostStats;
|
|
148
|
-
}
|
|
149
|
-
return toReturn;
|
|
150
|
-
};
|
|
151
|
-
return SocialPostStats;
|
|
152
|
-
}());
|
|
153
|
-
export { SocialPostStats };
|
|
154
|
-
if (false) {
|
|
155
|
-
/** @type {?} */
|
|
156
|
-
SocialPostStats.prototype.internalPostId;
|
|
157
|
-
/** @type {?} */
|
|
158
|
-
SocialPostStats.prototype.facebookPostStats;
|
|
159
|
-
/** @type {?} */
|
|
160
|
-
SocialPostStats.prototype.twitterPostStats;
|
|
161
|
-
}
|
|
162
|
-
var TwitterPostStats = /** @class */ (function () {
|
|
163
|
-
function TwitterPostStats(kwargs) {
|
|
164
|
-
if (!kwargs) {
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
Object.assign(this, kwargs);
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* @param {?} proto
|
|
171
|
-
* @return {?}
|
|
172
|
-
*/
|
|
173
|
-
TwitterPostStats.fromProto = /**
|
|
174
|
-
* @param {?} proto
|
|
175
|
-
* @return {?}
|
|
176
|
-
*/
|
|
177
|
-
function (proto) {
|
|
178
|
-
/** @type {?} */
|
|
179
|
-
var m = new TwitterPostStats();
|
|
180
|
-
m = Object.assign(m, proto);
|
|
181
|
-
if (proto.favourites) {
|
|
182
|
-
m.favourites = parseInt(proto.favourites, 10);
|
|
183
|
-
}
|
|
184
|
-
if (proto.retweets) {
|
|
185
|
-
m.retweets = parseInt(proto.retweets, 10);
|
|
186
|
-
}
|
|
187
|
-
return m;
|
|
188
|
-
};
|
|
189
|
-
/**
|
|
190
|
-
* @return {?}
|
|
191
|
-
*/
|
|
192
|
-
TwitterPostStats.prototype.toApiJson = /**
|
|
193
|
-
* @return {?}
|
|
194
|
-
*/
|
|
195
|
-
function () {
|
|
196
|
-
/** @type {?} */
|
|
197
|
-
var toReturn = {};
|
|
198
|
-
if (typeof this.favourites !== 'undefined') {
|
|
199
|
-
toReturn['favourites'] = this.favourites;
|
|
200
|
-
}
|
|
201
|
-
if (typeof this.hasFavourited !== 'undefined') {
|
|
202
|
-
toReturn['hasFavourited'] = this.hasFavourited;
|
|
203
|
-
}
|
|
204
|
-
if (typeof this.retweets !== 'undefined') {
|
|
205
|
-
toReturn['retweets'] = this.retweets;
|
|
206
|
-
}
|
|
207
|
-
if (typeof this.hasRetweeted !== 'undefined') {
|
|
208
|
-
toReturn['hasRetweeted'] = this.hasRetweeted;
|
|
209
|
-
}
|
|
210
|
-
return toReturn;
|
|
211
|
-
};
|
|
212
|
-
return TwitterPostStats;
|
|
213
|
-
}());
|
|
214
|
-
export { TwitterPostStats };
|
|
215
|
-
if (false) {
|
|
216
|
-
/** @type {?} */
|
|
217
|
-
TwitterPostStats.prototype.favourites;
|
|
218
|
-
/** @type {?} */
|
|
219
|
-
TwitterPostStats.prototype.hasFavourited;
|
|
220
|
-
/** @type {?} */
|
|
221
|
-
TwitterPostStats.prototype.retweets;
|
|
222
|
-
/** @type {?} */
|
|
223
|
-
TwitterPostStats.prototype.hasRetweeted;
|
|
224
|
-
}
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLXBvc3Qtc3RhdHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdmVuZGFzdGEvc29jaWFsLXBvc3RzLyIsInNvdXJjZXMiOlsibGliL19pbnRlcm5hbC9vYmplY3RzL3NvY2lhbC1wb3N0LXN0YXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFVQSxNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRDtJQW9CSSwyQkFBWSxNQUFxQztRQUM3QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7Ozs7SUFoQk0sMkJBQVM7Ozs7SUFBaEIsVUFBaUIsS0FBVTs7WUFDbkIsQ0FBQyxHQUFHLElBQUksaUJBQWlCLEVBQUU7UUFDL0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtZQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FBQztRQUM1RSxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFBQyxDQUFDLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQUM7UUFDdEUsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUFD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VUFBVSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUFDO1FBQ3RFLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FBQztRQUNoRSxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7Ozs7SUFTRCxvQ0FBUzs7O0lBQVQ7O1lBQ1UsUUFBUSxHQUVWLEVBQUU7UUFFTixJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQUM7UUFDaEcsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUNqRixJQUFJLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUFDO1FBQzdGLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFDTCx1QkFBQztBQUFELENBQUMsQUFoQ0QsSUFnQ0M7Ozs7SUEvQkcsc0NBQW1COztJQUNuQix5Q0FBdUI7O0lBQ3ZCLG9DQUFpQjs7SUFDakIsd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBGYWNlYm9va1Bvc3RTdGF0cyBpbXBsZW1lbnRzIGkuRmFjZWJvb2tQb3N0U3RhdHNJbnRlcmZhY2Uge1xuICAgIGNvbW1lbnRDb3VudDogbnVtYmVyO1xuICAgIHNoYXJlQ291bnQ6IG51bWJlcjtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBoYXNMaWtlOiBib29sZWFuO1xuICAgIGNhbkxpa2U6IGJvb2xlYW47XG4gICAgcmVhY3Rpb25zOiBudW1iZXI7XG4gICAgcGVvcGxlUmVhY2hlZDogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRmFjZWJvb2tQb3N0U3RhdHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBGYWNlYm9va1Bvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5jb21tZW50Q291bnQpIHttLmNvbW1lbnRDb3VudCA9IHBhcnNlSW50KHByb3RvLmNvbW1lbnRDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnNoYXJlQ291bnQpIHttLnNoYXJlQ291bnQgPSBwYXJzZUludChwcm90by5zaGFyZUNvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8ubGlrZUNvdW50KSB7bS5saWtlQ291bnQgPSBwYXJzZUludChwcm90by5saWtlQ291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5yZWFjdGlvbnMpIHttLnJlYWN0aW9ucyA9IHBhcnNlSW50KHByb3RvLnJlYWN0aW9ucywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnBlb3BsZVJlYWNoZWQpIHttLnBlb3BsZVJlYWNoZWQgPSBwYXJzZUludChwcm90by5wZW9wbGVSZWFjaGVkLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkZhY2Vib29rUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29tbWVudENvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb21tZW50Q291bnQnXSA9IHRoaXMuY29tbWVudENvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNoYXJlQ291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NoYXJlQ291bnQnXSA9IHRoaXMuc2hhcmVDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5saWtlQ291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xpa2VDb3VudCddID0gdGhpcy5saWtlQ291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGFzTGlrZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGFzTGlrZSddID0gdGhpcy5oYXNMaWtlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbkxpa2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Nhbkxpa2UnXSA9IHRoaXMuY2FuTGlrZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZWFjdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlYWN0aW9ucyddID0gdGhpcy5yZWFjdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGVvcGxlUmVhY2hlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGVvcGxlUmVhY2hlZCddID0gdGhpcy5wZW9wbGVSZWFjaGVkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNvY2lhbFBvc3RTdGF0cyBpbXBsZW1lbnRzIGkuU29jaWFsUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBpbnRlcm5hbFBvc3RJZDogc3RyaW5nO1xuICAgIGZhY2Vib29rUG9zdFN0YXRzOiBGYWNlYm9va1Bvc3RTdGF0cztcbiAgICB0d2l0dGVyUG9zdFN0YXRzOiBUd2l0dGVyUG9zdFN0YXRzO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogU29jaWFsUG9zdFN0YXRzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgU29jaWFsUG9zdFN0YXRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZhY2Vib29rUG9zdFN0YXRzKSB7bS5mYWNlYm9va1Bvc3RTdGF0cyA9IEZhY2Vib29rUG9zdFN0YXRzLmZyb21Qcm90byhwcm90by5mYWNlYm9va1Bvc3RTdGF0cyk7fVxuICAgICAgICBpZiAocHJvdG8udHdpdHRlclBvc3RTdGF0cykge20udHdpdHRlclBvc3RTdGF0cyA9IFR3aXR0ZXJQb3N0U3RhdHMuZnJvbVByb3RvKHByb3RvLnR3aXR0ZXJQb3N0U3RhdHMpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Tb2NpYWxQb3N0U3RhdHNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnRlcm5hbFBvc3RJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaW50ZXJuYWxQb3N0SWQnXSA9IHRoaXMuaW50ZXJuYWxQb3N0SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmFjZWJvb2tQb3N0U3RhdHMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZmFjZWJvb2tQb3N0U3RhdHMgIT09IG51bGwpIHt0b1JldHVyblsnZmFjZWJvb2tQb3N0U3RhdHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZmFjZWJvb2tQb3N0U3RhdHMgPyAodGhpcy5mYWNlYm9va1Bvc3RTdGF0cyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5mYWNlYm9va1Bvc3RTdGF0czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50d2l0dGVyUG9zdFN0YXRzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnR3aXR0ZXJQb3N0U3RhdHMgIT09IG51bGwpIHt0b1JldHVyblsndHdpdHRlclBvc3RTdGF0cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50d2l0dGVyUG9zdFN0YXRzID8gKHRoaXMudHdpdHRlclBvc3RTdGF0cyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50d2l0dGVyUG9zdFN0YXRzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFR3aXR0ZXJQb3N0U3RhdHMgaW1wbGVtZW50cyBpLlR3aXR0ZXJQb3N0U3RhdHNJbnRlcmZhY2Uge1xuICAgIGZhdm91cml0ZXM6IG51bWJlcjtcbiAgICBoYXNGYXZvdXJpdGVkOiBib29sZWFuO1xuICAgIHJldHdlZXRzOiBudW1iZXI7XG4gICAgaGFzUmV0d2VldGVkOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVHdpdHRlclBvc3RTdGF0cyB7XG4gICAgICAgIGxldCBtID0gbmV3IFR3aXR0ZXJQb3N0U3RhdHMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZmF2b3VyaXRlcykge20uZmF2b3VyaXRlcyA9IHBhcnNlSW50KHByb3RvLmZhdm91cml0ZXMsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5yZXR3ZWV0cykge20ucmV0d2VldHMgPSBwYXJzZUludChwcm90by5yZXR3ZWV0cywgMTApO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Ud2l0dGVyUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmF2b3VyaXRlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmF2b3VyaXRlcyddID0gdGhpcy5mYXZvdXJpdGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhhc0Zhdm91cml0ZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2hhc0Zhdm91cml0ZWQnXSA9IHRoaXMuaGFzRmF2b3VyaXRlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXR3ZWV0cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmV0d2VldHMnXSA9IHRoaXMucmV0d2VldHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGFzUmV0d2VldGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoYXNSZXR3ZWV0ZWQnXSA9IHRoaXMuaGFzUmV0d2VldGVkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|