bird-api
Version:
日本の野鳥 Web API
204 lines (177 loc) • 39.9 kB
JavaScript
(function() {
var APIurl, birdsRefered, content, frisby;
frisby = require('frisby');
APIurl = require('../utilities').getAPIurl;
frisby.create('bad request(1)').get(APIurl('some_strange_directory')).expectStatus(404).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectHeaderContains('Access-Control-Allow-Origin', '*').toss();
frisby.create('bad request(2)').get(APIurl('some_strange_directory/not_acceptable')).expectStatus(404).toss();
frisby.create('GET document, test of structure').get(APIurl('')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('document', {
title: String,
links: Array
}).expectJSONTypes('document.links.*', {
rel: String,
href: String
}).toss();
frisby.create('GET birds').get(APIurl('birds')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
species: Array
}).expectJSONTypes('species.*', {
sc: String,
ja: String,
alien: Boolean,
upper_id: String
}).expectJSON('species.*', {
rank: 'species'
}).toss();
frisby.create('GET birds with fields query').get(APIurl('birds?fields=ja,rank')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
species: Array
}).expectJSONTypes('species.*', {
rank: String,
sc: void 0,
ja: String,
alien: void 0,
upper_id: void 0
}).toss();
frisby.create('GET birds with limit query').get(APIurl('birds?limit=20')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
species: Array
}).expectJSONLength('species', 20).toss();
frisby.create('GET species with too many offset query').get(APIurl('species?offset=100000000')).expectStatus(404).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').toss();
frisby.create('GET genuses').get(APIurl('genuses')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
genuses: Array
}).expectJSONTypes('genuses.*', {
sc: String,
ja: String,
upper_id: String
}).expectJSON('genuses.*', {
rank: 'genus'
}).toss();
frisby.create('GET families').get(APIurl('families')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
families: Array
}).expectJSONTypes('families.*', {
sc: String,
ja: String,
upper_id: String
}).expectJSON('families.*', {
rank: 'family'
}).toss();
frisby.create('GET orders').get(APIurl('orders')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
orders: Array
}).expectJSONTypes('orders.*', {
sc: String,
ja: String
}).expectJSON('orders.*', {
rank: 'order'
}).toss();
frisby.create('GET birds/スズメ').get(APIurl('birds/スズメ')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
name: Object,
binomen: String,
taxonomies: Array
}).expectJSONTypes('name', {
sc: String,
ja: String,
alien: Boolean,
rank: String,
upper_id: String
}).expectJSONTypes('taxonomies.*', {
sc: String,
ja: String,
rank: String
}).toss();
frisby.create('GET birds/ヒドリガモ?fields=ja,alien').get(APIurl('birds/ヒドリガモ?fields=ja,alien')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
name: Object,
binomen: String,
taxonomies: Array
}).expectJSONTypes('name', {
sc: void 0,
ja: String,
alien: Boolean,
rank: void 0,
upper_id: void 0
}).expectJSONTypes('taxonomies.*', {
sc: void 0,
ja: String,
rank: void 0
}).toss();
frisby.create('GET birds/ヒドリガモ?fields=ja,unknownField').get(APIurl('birds/ヒドリガモ?fields=ja,unknownField')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
name: Object,
binomen: String,
taxonomies: Array
}).expectJSONTypes('name', {
sc: void 0,
ja: String,
alien: void 0,
rank: void 0,
upper_id: void 0
}).expectJSONTypes('taxonomies.?', {
sc: void 0,
ja: String,
rank: void 0
}).toss();
frisby.create('GET birds/ヒドリガモ?fields=onlyUnknownField').get(APIurl('birds/ヒドリガモ?fields=onlyUnknownField')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
name: Object,
binomen: String,
taxonomies: Array
}).expectJSONTypes('name', {
_id: String,
sc: void 0,
ja: void 0,
alien: void 0,
rank: void 0,
upper_id: void 0
}).expectJSONTypes('taxonomies.*', {
_id: String,
sc: void 0,
ja: void 0,
alien: void 0,
rank: void 0,
upper_id: void 0
}).toss();
frisby.create('GET existence/undefined-bird-species').get(APIurl('existence/undefined-bird-species')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
existence: Boolean,
name: void 0
}).expectJSON('', {
existence: false
}).toss();
frisby.create('GET existence/マガモ').get(APIurl('existence/マガモ')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
existence: Boolean,
name: Object
}).expectJSON('', {
existence: true
}).toss();
frisby.create('GET existence/マガモ?fields=ja').get(APIurl('existence/マガモ?fields=ja')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
existence: Boolean,
name: {
_id: String,
ja: String,
sc: void 0,
rank: void 0,
upper_id: void 0
}
}).expectJSON('', {
existence: true
}).toss();
content = '日本ではカモ類の多くは渡り鳥ですが、カルガモは留鳥で、年中観察することができます。\nマガモは渡りを行いますが、日本で繁殖する場合もあります。\n滋賀県米原市にある三島池はマガモの繁殖の南限地として有名です。\n\n琵琶湖では、コガモ、オナガガモ、キンクロハジロ、ホシハジロ、スズガモなどのカモ類が多く見られます。\nこれらのうち、コガモ、オナガガモ、キンクロハジロ、ホシハジロは狩猟鳥です。\nコガモは狩猟者から「べ」と呼ばれます。';
birdsRefered = ['カルガモ', 'マガモ', 'コガモ', 'オナガガモ', 'キンクロハジロ', 'ホシハジロ', 'スズガモ'];
frisby.create('GET inclusion success').get(APIurl("inclusion?content=" + content)).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSONTypes('', {
histogram: Array
}).expectJSONTypes('histogram.*', {
species: Object,
frequency: Number
}).expectJSONLength('histogram', birdsRefered.length).toss();
frisby.create('GET inclusion with nocontent').get(APIurl('inclusion')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSON('', {
histogram: []
}).toss();
frisby.create('POST distributions').post(APIurl('distributions'), {
ja: 'ウズラ',
place: '横浜'
}, {
json: true
}).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').after(function(err, res, body) {
return frisby.create('GET AFTER POST').get(APIurl('distributions/ウズラ')).expectStatus(200).expectHeaderContains('Content-Type', 'application/json').expectHeaderContains('Content-Type', 'charset=UTF-8').expectHeaderContains('Access-Control-Allow-Origin', '*').expectJSON('', {
name: 'ウズラ'
}).expectJSON('distributions.*', {
place: '横浜'
}).expectJSONTypes('distributions.*', {
name_id: String
}).toss();
}).toss();
}).call(this);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNwZWNzL3JvdXRlcl9zcGVjLmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBLE1BQUE7O0VBQUEsTUFBQSxHQUFXLE9BQUEsQ0FBUSxRQUFSOztFQUNYLE1BQUEsR0FBVyxPQUFBLENBQVEsY0FBUixDQUF1QixDQUFDOztFQUVuQyxNQUNJLENBQUMsTUFETCxDQUNZLGdCQURaLENBRUksQ0FBQyxHQUZMLENBRVMsTUFBQSxDQUFPLHdCQUFQLENBRlQsQ0FHSSxDQUFDLFlBSEwsQ0FHa0IsR0FIbEIsQ0FJSSxDQUFDLG9CQUpMLENBSTBCLGNBSjFCLEVBSTBDLGtCQUoxQyxDQUtJLENBQUMsb0JBTEwsQ0FLMEIsY0FMMUIsRUFLMEMsZUFMMUMsQ0FNSSxDQUFDLG9CQU5MLENBTTBCLDZCQU4xQixFQU15RCxHQU56RCxDQU9JLENBQUMsb0JBUEwsQ0FPMEIsNkJBUDFCLEVBT3lELEdBUHpELENBUUksQ0FBQyxJQVJMLENBQUE7O0VBVUEsTUFDSSxDQUFDLE1BREwsQ0FDWSxnQkFEWixDQUVJLENBQUMsR0FGTCxDQUVTLE1BQUEsQ0FBTyx1Q0FBUCxDQUZULENBR0ksQ0FBQyxZQUhMLENBR2tCLEdBSGxCLENBSUksQ0FBQyxJQUpMLENBQUE7O0VBTUEsTUFDSSxDQUFDLE1BREwsQ0FDWSxpQ0FEWixDQUVJLENBQUMsR0FGTCxDQUVTLE1BQUEsQ0FBTyxFQUFQLENBRlQsQ0FHSSxDQUFDLFlBSEwsQ0FHa0IsR0FIbEIsQ0FJSSxDQUFDLG9CQUpMLENBSTBCLGNBSjFCLEVBSTBDLGtCQUoxQyxDQUtJLENBQUMsb0JBTEwsQ0FLMEIsY0FMMUIsRUFLMEMsZUFMMUMsQ0FNSSxDQUFDLG9CQU5MLENBTTBCLDZCQU4xQixFQU15RCxHQU56RCxDQU9JLENBQUMsZUFQTCxDQU9xQixVQVByQixFQVFZO0lBQUEsS0FBQSxFQUFPLE1BQVA7SUFDQSxLQUFBLEVBQU8sS0FEUDtHQVJaLENBVUksQ0FBQyxlQVZMLENBVXFCLGtCQVZyQixFQVdZO0lB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Q0FXcUIsaUJBWHJCLEVBWVE7TUFBQSxPQUFBLEVBQVMsTUFBVDtLQVpSLENBYUksQ0FBQyxJQWJMLENBQUE7RUFERyxDQVBYLENBc0JJLENBQUMsSUF0QkwsQ0FBQTtBQXpWQSIsImZpbGUiOiJzcGVjcy9yb3V0ZXJfc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIvc291cmNlLyIsInNvdXJjZXNDb250ZW50IjpbImZyaXNieSAgID0gcmVxdWlyZSAnZnJpc2J5J1xuQVBJdXJsICAgPSByZXF1aXJlKCcuLi91dGlsaXRpZXMnKS5nZXRBUEl1cmxcblxuZnJpc2J5XG4gICAgLmNyZWF0ZSAnYmFkIHJlcXVlc3QoMSknXG4gICAgLmdldCBBUEl1cmwgJ3NvbWVfc3RyYW5nZV9kaXJlY3RvcnknXG4gICAgLmV4cGVjdFN0YXR1cyA0MDRcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2NoYXJzZXQ9VVRGLTgnXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKidcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJ1xuICAgIC50b3NzKClcblxuZnJpc2J5XG4gICAgLmNyZWF0ZSAnYmFkIHJlcXVlc3QoMiknXG4gICAgLmdldCBBUEl1cmwgJ3NvbWVfc3RyYW5nZV9kaXJlY3Rvcnkvbm90X2FjY2VwdGFibGUnXG4gICAgLmV4cGVjdFN0YXR1cyA0MDRcbiAgICAudG9zcygpXG5cbmZyaXNieVxuICAgIC5jcmVhdGUgJ0dFVCBkb2N1bWVudCwgdGVzdCBvZiBzdHJ1Y3R1cmUnXG4gICAgLmdldCBBUEl1cmwgJydcbiAgICAuZXhwZWN0U3RhdHVzIDIwMFxuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnY2hhcnNldD1VVEYtOCdcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJ1xuICAgIC5leHBlY3RKU09OVHlwZXMgJ2RvY3VtZW50JyxcbiAgICAgICAgICAgIHRpdGxlOiBTdHJpbmdcbiAgICAgICAgICAgIGxpbmtzOiBBcnJheVxuICAgIC5leHBlY3RKU09OVHlwZXMgJ2RvY3VtZW50LmxpbmtzLionLFxuICAgICAgICAgICAgcmVsOiBTdHJpbmdcbiAgICAgICAgICAgIGhyZWY6IFN0cmluZ1xuICAgIC50b3NzKClcblxuZnJpc2J5XG4gICAgLmNyZWF0ZSAnR0VUIGJpcmRzJ1xuICAgIC5nZXQgQVBJdXJsICdiaXJkcydcbiAgICAuZXhwZWN0U3RhdHVzIDIwMFxuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnY2hhcnNldD1VVEYtOCdcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJ1xuICAgIC5leHBlY3RKU09OVHlwZXMgJycsIHNwZWNpZXM6IEFycmF5XG4gICAgLmV4cGVjdEpTT05UeXBlcyAnc3BlY2llcy4qJyxcbiAgICAgICAgICAgIHNjOiBTdHJpbmdcbiAgICAgICAgICAgIGphOiBTdHJpbmdcbiAgICAgICAgICAgIGFsaWVuOiBCb29sZWFuXG4gICAgICAgICAgICB1cHBlcl9pZDogU3RyaW5nXG4gICAgLmV4cGVjdEpTT04gJ3NwZWNpZXMuKicsIHJhbms6ICdzcGVjaWVzJ1xuICAgIC50b3NzKClcblxuXG5mcmlzYnlcbiAgICAuY3JlYXRlICdHRVQgYmlyZHMgd2l0aCBmaWVsZHMgcXVlcnknXG4gICAgLmdldCBBUEl1cmwgJ2JpcmRzP2ZpZWxkcz1qYSxyYW5rJ1xuICAgIC5leHBlY3RTdGF0dXMgMjAwXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbidcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdjaGFyc2V0PVVURi04J1xuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonXG4gICAgLmV4cGVjdEpTT05UeXBlcyAnJywgc3BlY2llczogQXJyYXlcbiAgICAuZXhwZWN0SlNPTlR5cGVzICdzcGVjaWVzLionLFxuICAgICAgICAgICAgcmFuazogU3RyaW5nXG4gICAgICAgICAgICBzYzogdW5kZWZpbmVkXG4gICAgICAgICAgICBqYTogU3RyaW5nXG4gICAgICAgICAgICBhbGllbjogdW5kZWZpbmVkXG4gICAgICAgICAgICB1cHBlcl9pZDogdW5kZWZpbmVkXG4gICAgLnRvc3MoKVxuXG5cbmZyaXNieVxuICAgIC5jcmVhdGUgJ0dFVCBiaXJkcyB3aXRoIGxpbWl0IHF1ZXJ5J1xuICAgIC5nZXQgQVBJdXJsICdiaXJkcz9saW1pdD0yMCdcbiAgICAuZXhwZWN0U3RhdHVzIDIwMFxuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnY2hhcnNldD1VVEYtOCdcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJ1xuICAgIC5leHBlY3RKU09OVHlwZXMgJycsIHNwZWNpZXM6IEFycmF5XG4gICAgLmV4cGVjdEpTT05MZW5ndGggJ3NwZWNpZXMnLCAyMFxuICAgIC50b3NzKClcblxuZnJpc2J5XG4gICAgLmNyZWF0ZSAnR0VUIHNwZWNpZXMgd2l0aCB0b28gbWFueSBvZmZzZXQgcXVlcnknXG4gICAgLmdldCBBUEl1cmwgJ3NwZWNpZXM/b2Zmc2V0PTEwMDAwMDAwMCdcbiAgICAuZXhwZWN0U3RhdHVzIDQwNFxuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnY2hhcnNldD1VVEYtOCdcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJ1xuICAgIC50b3NzKClcblxuXG5mcmlzYnlcbiAgICAuY3JlYXRlICdHRVQgZ2VudXNlcydcbiAgICAuZ2V0IEFQSXVybCAnZ2VudXNlcydcbiAgICAuZXhwZWN0U3RhdHVzIDIwMFxuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnY2hhcnNldD1VVEYtOCdcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJ1xuICAgIC5leHBlY3RKU09OVHlwZXMgJycsIGdlbnVzZXM6IEFycmF5XG4gICAgLmV4cGVjdEpTT05UeXBlcyAnZ2VudXNlcy4qJyxcbiAgICAgICAgICAgIHNjOiBTdHJpbmdcbiAgICAgICAgICAgIGphOiBTdHJpbmdcbiAgICAgICAgICAgIHVwcGVyX2lkOiBTdHJpbmdcbiAgICAuZXhwZWN0SlNPTiAnZ2VudXNlcy4qJywgcmFuazogJ2dlbnVzJ1xuICAgIC50b3NzKClcblxuXG5mcmlzYnlcbiAgICAuY3JlYXRlICdHRVQgZmFtaWxpZXMnXG4gICAgLmdldCBBUEl1cmwgJ2ZhbWlsaWVzJ1xuICAgIC5leHBlY3RTdGF0dXMgMjAwXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbidcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdjaGFyc2V0PVVURi04J1xuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonXG4gICAgLmV4cGVjdEpTT05UeXBlcyAnJywgZmFtaWxpZXM6IEFycmF5XG4gICAgLmV4cGVjdEpTT05UeXBlcyAnZmFtaWxpZXMuKicsXG4gICAgICAgICAgICBzYzogU3RyaW5nXG4gICAgICAgICAgICBqYTogU3RyaW5nXG4gICAgICAgICAgICB1cHBlcl9pZDogU3RyaW5nXG4gICAgLmV4cGVjdEpTT04gJ2ZhbWlsaWVzLionLCByYW5rOiAnZmFtaWx5J1xuICAgIC50b3NzKClcblxuXG5mcmlzYnlcbiAgICAuY3JlYXRlICdHRVQgb3JkZXJzJ1xuICAgIC5nZXQgQVBJdXJsICdvcmRlcnMnXG4gICAgLmV4cGVjdFN0YXR1cyAyMDBcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2NoYXJzZXQ9VVRGLTgnXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKidcbiAgICAuZXhwZWN0SlNPTlR5cGVzICcnLCBvcmRlcnM6IEFycmF5XG4gICAgLmV4cGVjdEpTT05UeXBlcyAnb3JkZXJzLionLFxuICAgICAgICAgICAgc2M6IFN0cmluZ1xuICAgICAgICAgICAgamE6IFN0cmluZ1xuICAgIC5leHBlY3RKU09OICdvcmRlcnMuKicsIHJhbms6ICdvcmRlcidcbiAgICAudG9zcygpXG5cblxuZnJpc2J5XG4gICAgLmNyZWF0ZSAnR0VUIGJpcmRzL+OCueOCuuODoSdcbiAgICAuZ2V0IEFQSXVybCAnYmlyZHMv44K544K644OhJ1xuICAgIC5leHBlY3RTdGF0dXMgMjAwXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbidcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdjaGFyc2V0PVVURi04J1xuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonXG4gICAgLmV4cGVjdEpTT05UeXBlcyAnJyxcbiAgICAgICAgICAgIG5hbWU6IE9iamVjdFxuICAgICAgICAgICAgYmlub21lbjogU3RyaW5nXG4gICAgICAgICAgICB0YXhvbm9taWVzOiBBcnJheVxuICAgIC5leHBlY3RKU09OVHlwZXMgJ25hbWUnLFxuICAgICAgICAgICAgc2M6IFN0cmluZ1xuICAgICAgICAgICAgamE6IFN0cmluZ1xuICAgICAgICAgICAgYWxpZW46IEJvb2xlYW5cbiAgICAgICAgICAgIHJhbms6IFN0cmluZ1xuICAgICAgICAgICAgdXBwZXJfaWQ6IFN0cmluZ1xuICAgIC5leHBlY3RKU09OVHlwZXMgJ3RheG9ub21pZXMuKicsXG4gICAgICAgICAgICBzYzogU3RyaW5nXG4gICAgICAgICAgICBqYTogU3RyaW5nXG4gICAgICAgICAgICByYW5rOiBTdHJpbmdcbiAgICAudG9zcygpXG5cblxuZnJpc2J5XG4gICAgLmNyZWF0ZSAnR0VUIGJpcmRzL+ODkuODieODquOCrOODoj9maWVsZHM9amEsYWxpZW4nXG4gICAgLmdldCBBUEl1cmwgJ2JpcmRzL+ODkuODieODquOCrOODoj9maWVsZHM9amEsYWxpZW4nXG4gICAgLmV4cGVjdFN0YXR1cyAyMDBcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2NoYXJzZXQ9VVRGLTgnXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKidcbiAgICAuZXhwZWN0SlNPTlR5cGVzICcnLFxuICAgICAgICAgICAgbmFtZTogT2JqZWN0XG4gICAgICAgICAgICBiaW5vbWVuOiBTdHJpbmdcbiAgICAgICAgICAgIHRheG9ub21pZXM6IEFycmF5XG4gICAgLmV4cGVjdEpTT05UeXBlcyAnbmFtZScsXG4gICAgICAgICAgICBzYzogdW5kZWZpbmVkXG4gICAgICAgICAgICBqYTogU3RyaW5nXG4gICAgICAgICAgICBhbGllbjogQm9vbGVhblxuICAgICAgICAgICAgcmFuazogdW5kZWZpbmVkXG4gICAgICAgICAgICB1cHBlcl9pZDogdW5kZWZpbmVkXG4gICAgLmV4cGVjdEpTT05UeXBlcyAndGF4b25vbWllcy4qJyxcbiAgICAgICAgICAgIHNjOiB1bmRlZmluZWRcbiAgICAgICAgICAgIGphOiBTdHJpbmdcbiAgICAgICAgICAgIHJhbms6IHVuZGVmaW5lZFxuICAgIC50b3NzKClcblxuZnJpc2J5XG4gICAgLmNyZWF0ZSAnR0VUIGJpcmRzL+ODkuODieODquOCrOODoj9maWVsZHM9amEsdW5rbm93bkZpZWxkJ1xuICAgIC5nZXQgQVBJdXJsICdiaXJkcy/jg5Ljg4njg6rjgqzjg6I/ZmllbGRzPWphLHVua25vd25GaWVsZCdcbiAgICAuZXhwZWN0U3RhdHVzIDIwMFxuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnY2hhcnNldD1VVEYtOCdcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJ1xuICAgIC5leHBlY3RKU09OVHlwZXMgJycsXG4gICAgICAgICAgICBuYW1lOiBPYmplY3RcbiAgICAgICAgICAgIGJpbm9tZW46IFN0cmluZ1xuICAgICAgICAgICAgdGF4b25vbWllczogQXJyYXlcbiAgICAuZXhwZWN0SlNPTlR5cGVzICduYW1lJyxcbiAgICAgICAgICAgIHNjOiB1bmRlZmluZWRcbiAgICAgICAgICAgIGphOiBTdHJpbmdcbiAgICAgICAgICAgIGFsaWVuOiB1bmRlZmluZWRcbiAgICAgICAgICAgIHJhbms6IHVuZGVmaW5lZFxuICAgICAgICAgICAgdXBwZXJfaWQ6IHVuZGVmaW5lZFxuICAgIC5leHBlY3RKU09OVHlwZXMgJ3RheG9ub21pZXMuPycsXG4gICAgICAgICAgICBzYzogdW5kZWZpbmVkXG4gICAgICAgICAgICBqYTogU3RyaW5nXG4gICAgICAgICAgICByYW5rOiB1bmRlZmluZWRcbiAgICAudG9zcygpXG5cbmZyaXNieVxuICAgIC5jcmVhdGUgJ0dFVCBiaXJkcy/jg5Ljg4njg6rjgqzjg6I/ZmllbGRzPW9ubHlVbmtub3duRmllbGQnXG4gICAgLmdldCBBUEl1cmwgJ2JpcmRzL+ODkuODieODquOCrOODoj9maWVsZHM9b25seVVua25vd25GaWVsZCdcbiAgICAuZXhwZWN0U3RhdHVzIDIwMFxuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnY2hhcnNldD1VVEYtOCdcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJ1xuICAgIC5leHBlY3RKU09OVHlwZXMgJycsXG4gICAgICAgICAgICBuYW1lOiBPYmplY3RcbiAgICAgICAgICAgIGJpbm9tZW46IFN0cmluZ1xuICAgICAgICAgICAgdGF4b25vbWllczogQXJyYXlcbiAgICAuZXhwZWN0SlNPTlR5cGVzICduYW1lJyxcbiAgICAgICAgICAgIF9pZDogU3RyaW5nXG4gICAgICAgICAgICBzYzogdW5kZWZpbmVkXG4gICAgICAgICAgICBqYTogdW5kZWZpbmVkXG4gICAgICAgICAgICBhbGllbjogdW5kZWZpbmVkXG4gICAgICAgICAgICByYW5rOiB1bmRlZmluZWRcbiAgICAgICAgICAgIHVwcGVyX2lkOiB1bmRlZmluZWRcbiAgICAuZXhwZWN0SlNPTlR5cGVzICd0YXhvbm9taWVzLionLFxuICAgICAgICAgICAgX2lkOiBTdHJpbmdcbiAgICAgICAgICAgIHNjOiB1bmRlZmluZWRcbiAgICAgICAgICAgIGphOiB1bmRlZmluZWRcbiAgICAgICAgICAgIGFsaWVuOiB1bmRlZmluZWRcbiAgICAgICAgICAgIHJhbms6IHVuZGVmaW5lZFxuICAgICAgICAgICAgdXBwZXJfaWQ6IHVuZGVmaW5lZFxuICAgIC50b3NzKClcblxuXG5mcmlzYnlcbiAgICAuY3JlYXRlICdHRVQgZXhpc3RlbmNlL3VuZGVmaW5lZC1iaXJkLXNwZWNpZXMnXG4gICAgLmdldCBBUEl1cmwgJ2V4aXN0ZW5jZS91bmRlZmluZWQtYmlyZC1zcGVjaWVzJ1xuICAgIC5leHBlY3RTdGF0dXMgMjAwXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbidcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdjaGFyc2V0PVVURi04J1xuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonXG4gICAgLmV4cGVjdEpTT05UeXBlcyAnJyxcbiAgICAgICAgICAgIGV4aXN0ZW5jZTogQm9vbGVhblxuICAgICAgICAgICAgbmFtZTogdW5kZWZpbmVkXG4gICAgLmV4cGVjdEpTT04gJycsXG4gICAgICAgICAgICBleGlzdGVuY2U6IGZhbHNlXG4gICAgLnRvc3MoKVxuXG5cbmZyaXNieVxuICAgIC5jcmVhdGUgJ0dFVCBleGlzdGVuY2Uv44Oe44Ks44OiJ1xuICAgIC5nZXQgQVBJdXJsICdleGlzdGVuY2Uv44Oe44Ks44OiJ1xuICAgIC5leHBlY3RTdGF0dXMgMjAwXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbidcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdjaGFyc2V0PVVURi04J1xuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonXG4gICAgLmV4cGVjdEpTT05UeXBlcyAnJyxcbiAgICAgICAgICAgIGV4aXN0ZW5jZTogQm9vbGVhblxuICAgICAgICAgICAgbmFtZTogT2JqZWN0XG4gICAgLmV4cGVjdEpTT04gJycsXG4gICAgICAgICAgICBleGlzdGVuY2U6IHRydWVcbiAgICAudG9zcygpXG5cbmZyaXNieVxuICAgIC5jcmVhdGUgJ0dFVCBleGlzdGVuY2Uv44Oe44Ks44OiP2ZpZWxkcz1qYSdcbiAgICAuZ2V0IEFQSXVybCAnZXhpc3RlbmNlL+ODnuOCrOODoj9maWVsZHM9amEnXG4gICAgLmV4cGVjdFN0YXR1cyAyMDBcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2NoYXJzZXQ9VVRGLTgnXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKidcbiAgICAuZXhwZWN0SlNPTlR5cGVzICcnLFxuICAgICAgICAgICAgZXhpc3RlbmNlOiBCb29sZWFuXG4gICAgICAgICAgICBuYW1lOlxuICAgICAgICAgICAgICAgIF9pZDogU3RyaW5nXG4gICAgICAgICAgICAgICAgamE6IFN0cmluZ1xuICAgICAgICAgICAgICAgIHNjOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICByYW5rOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB1cHBlcl9pZDogdW5kZWZpbmVkXG4gICAgLmV4cGVjdEpTT04gJycsXG4gICAgICAgICAgICBleGlzdGVuY2U6IHRydWVcbiAgICAudG9zcygpXG5cblxuY29udGVudCA9ICcnJ1xu5pel5pys44Gn44Gv44Kr44Oi6aGe44Gu5aSa44GP44Gv5rih44KK6bOl44Gn44GZ44GM44CB44Kr44Or44Ks44Oi44Gv55WZ6bOl44Gn44CB5bm05Lit6Kaz5a+f44GZ44KL44GT44Go44GM44Gn44GN44G+44GZ44CCXG7jg57jgqzjg6Ljga/muKHjgorjgpLooYzjgYTjgb7jgZnjgYzjgIHml6XmnKzjgafnuYHmrpbjgZnjgovloLTlkIjjgoLjgYLjgorjgb7jgZnjgIJcbua7i+izgOecjOexs+WOn+W4guOBq+OBguOCi+S4ieWztuaxoOOBr+ODnuOCrOODouOBrue5geauluOBruWNl+mZkOWcsOOBqOOBl+OBpuacieWQjeOBp+OBmeOAglxuXG7nkLXnkLbmuZbjgafjga/jgIHjgrPjgqzjg6LjgIHjgqrjg4rjgqzjgqzjg6LjgIHjgq3jg7Pjgq/jg63jg4/jgrjjg63jgIHjg5vjgrfjg4/jgrjjg63jgIHjgrnjgrrjgqzjg6Ljgarjganjga7jgqvjg6LpoZ7jgYzlpJrjgY/opovjgonjgozjgb7jgZnjgIJcbuOBk+OCjOOCieOBruOBhuOBoeOAgeOCs+OCrOODouOAgeOCquODiuOCrOOCrOODouOAgeOCreODs+OCr+ODreODj+OCuOODreOAgeODm+OCt+ODj+OCuOODreOBr+eLqeeMn+mzpeOBp+OBmeOAglxu44Kz44Ks44Oi44Gv54up54yf6ICF44GL44KJ44CM44G544CN44Go5ZG844Gw44KM44G+44GZ44CCXG4nJydcbmJpcmRzUmVmZXJlZCA9IFsn44Kr44Or44Ks44OiJywn44Oe44Ks44OiJywn44Kz44Ks44OiJywn44Kq44OK44Ks44Ks44OiJywn44Kt44Oz44Kv44Ot44OP44K444OtJywn44Ob44K344OP44K444OtJywn44K544K644Ks44OiJ11cblxuZnJpc2J5XG4gICAgLmNyZWF0ZSAnR0VUIGluY2x1c2lvbiBzdWNjZXNzJ1xuICAgIC5nZXQgQVBJdXJsIFwiaW5jbHVzaW9uP2NvbnRlbnQ9I3tjb250ZW50fVwiXG4gICAgLmV4cGVjdFN0YXR1cyAyMDBcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2NoYXJzZXQ9VVRGLTgnXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKidcbiAgICAuZXhwZWN0SlNPTlR5cGVzICcnLFxuICAgICAgICAgICAgaGlzdG9ncmFtOiBBcnJheVxuICAgIC5leHBlY3RKU09OVHlwZXMgJ2hpc3RvZ3JhbS4qJyxcbiAgICAgICAgICAgIHNwZWNpZXM6IE9iamVjdFxuICAgICAgICAgICAgZnJlcXVlbmN5OiBOdW1iZXJcbiAgICAuZXhwZWN0SlNPTkxlbmd0aCAnaGlzdG9ncmFtJywgYmlyZHNSZWZlcmVkLmxlbmd0aFxuICAgIC50b3NzKClcblxuXG4jIGZyaXNieVxuIyAgICAgLmNyZWF0ZSAnR0VUIGluY2x1c2lvbiBzdWNjZXNzIHdpdGggZmllbGRzIHF1ZXJ5J1xuIyAgICAgLmdldCBBUEl1cmwgXCJpbmNsdXNpb24/Y29udGVudD0je2NvbnRlbnR9JmZpZWxkcz1qYVwiXG4jICAgICAuZXhwZWN0U3RhdHVzIDIwMFxuIyAgICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbidcbiMgICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2NoYXJzZXQ9VVRGLTgnXG4jICAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJ1xuIyAgICAgLmV4cGVjdEpTT05UeXBlcyAnJyxcbiMgICAgICAgICAgICAgaGlzdG9ncmFtOiBBcnJheVxuIyAgICAgLmV4cGVjdEpTT05UeXBlcyAnaGlzdG9ncmFtLionLFxuIyAgICAgICAgICAgICBzcGVjaWVzOlxuIyAgICAgICAgICAgICAgICAgamE6IFN0cmluZ1xuIyAgICAgICAgICAgICAgICAgcmFuazogdW5kZWZpbmVkXG4jICAgICAgICAgICAgICAgICB1cHBlcjogdW5kZWZpbmVkXG4jICAgICAgICAgICAgICAgICB1cHBlcl9pZDogdW5kZWZpbmVkXG4jICAgICAgICAgICAgICAgICBhbGllbjogdW5kZWZpbmVkXG4jICAgICAgICAgICAgICAgICBfaWQ6IHVuZGVmaW5lZFxuIyAgICAgICAgICAgICBmcmVxdWVuY3k6IE51bWJlclxuIyAgICAgLmV4cGVjdEpTT05MZW5ndGggJ2hpc3RvZ3JhbScsIGJpcmRzUmVmZXJlZC5sZW5ndGhcbiMgICAgIC50b3NzKClcblxuXG5cbmZyaXNieVxuICAgIC5jcmVhdGUgJ0dFVCBpbmNsdXNpb24gd2l0aCBub2NvbnRlbnQnXG4gICAgLmdldCBBUEl1cmwgJ2luY2x1c2lvbidcbiAgICAuZXhwZWN0U3RhdHVzIDIwMFxuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdDb250ZW50LVR5cGUnLCAnY2hhcnNldD1VVEYtOCdcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJ1xuICAgIC5leHBlY3RKU09OICcnLFxuICAgICAgICAgICAgaGlzdG9ncmFtOiBbXVxuICAgIC50b3NzKClcblxuXG5mcmlzYnlcbiAgICAuY3JlYXRlICdQT1NUIGRpc3RyaWJ1dGlvbnMnXG4gICAgLnBvc3QgQVBJdXJsKCdkaXN0cmlidXRpb25zJyksIHtqYTogJ+OCpuOCuuODqScsIHBsYWNlOiAn5qiq5rWcJ30sIHtqc29uOnRydWV9XG4gICAgLmV4cGVjdFN0YXR1cyAyMDBcbiAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2NoYXJzZXQ9VVRGLTgnXG4gICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKidcbiAgICAuYWZ0ZXIgKGVyciwgcmVzLCBib2R5KSAtPlxuICAgICAgICBmcmlzYnlcbiAgICAgICAgICAgIC5jcmVhdGUgJ0dFVCBBRlRFUiBQT1NUJ1xuICAgICAgICAgICAgLmdldCBBUEl1cmwgJ2Rpc3RyaWJ1dGlvbnMv44Km44K644OpJ1xuICAgICAgICAgICAgLmV4cGVjdFN0YXR1cyAyMDBcbiAgICAgICAgICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICAuZXhwZWN0SGVhZGVyQ29udGFpbnMgJ0NvbnRlbnQtVHlwZScsICdjaGFyc2V0PVVURi04J1xuICAgICAgICAgICAgLmV4cGVjdEhlYWRlckNvbnRhaW5zICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKidcbiAgICAgICAgICAgIC5leHBlY3RKU09OICcnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICfjgqbjgrrjg6knXG4gICAgICAgICAgICAuZXhwZWN0SlNPTiAnZGlzdHJpYnV0aW9ucy4qJyxcbiAgICAgICAgICAgICAgICBwbGFjZTogJ+aoqua1nCdcbiAgICAgICAgICAgIC5leHBlY3RKU09OVHlwZXMgJ2Rpc3RyaWJ1dGlvbnMuKicsXG4gICAgICAgICAgICAgICAgbmFtZV9pZDogU3RyaW5nXG4gICAgICAgICAgICAudG9zcygpXG4gICAgLnRvc3MoKVxuXG5cbiMgZnJpc2J5XG4jICAgICAuY3JlYXRlICdQT1NUIGRpc3RyaWJ1dGlvbnMnXG4jICAgICAucG9zdCBBUEl1cmwoJ2Rpc3RyaWJ1dGlvbnMnKSwge2phOiAn44Kr44Ov44Ks44Op44K5JywgcGxhY2U6ICflt50nfSwge2pzb246dHJ1ZX1cbiMgICAgIC5wb3N0IEFQSXVybCgnZGlzdHJpYnV0aW9ucycpLCB7amE6ICfjgqvjg6/jgqzjg6njgrknLCBwbGFjZTogJ+a4k+iwtyd9LCB7anNvbjp0cnVlfVxuIyAgICAgLnBvc3QgQVBJdXJsKCdkaXN0cmlidXRpb25zJyksIHtqYTogJ+OCpuODn+OCrOODqeOCuScsIHBsYWNlOiAn5rW3J30sIHtqc29uOnRydWV9XG4jICAgICAuYWZ0ZXIgKGVyciwgcmVzLCBib2R5KSAtPlxuIyAgICAgICAgIGZyaXNieVxuIyAgICAgICAgICAgICAuY3JlYXRlICdHRVQgQUZURVIgUE9TVCdcbiMgICAgICAgICAgICAgLmdldCBBUEl1cmwgJ2Rpc3RyaWJ1dGlvbnMnXG4jICAgICAgICAgICAgIC5leHBlY3RTdGF0dXMgMjAwXG4jICAgICAgICAgICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nXG4jICAgICAgICAgICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQ29udGVudC1UeXBlJywgJ2NoYXJzZXQ9VVRGLTgnXG4jICAgICAgICAgICAgIC5leHBlY3RIZWFkZXJDb250YWlucyAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonXG4jICAgICAgICAgICAgIC5leHBlY3RKU09OICcnLFxuIyAgICAgICAgICAgICAgICAgbmFtZTogJ+OCpuOCuuODqSdcbiMgICAgICAgICAgICAgLmV4cGVjdEpTT04gJ2Rpc3RyaWJ1dGlvbnMuKicsXG4jICAgICAgICAgICAgICAgICBwbGFjZTogJ+aoqua1nCdcbiMgICAgICAgICAgICAgLmV4cGVjdEpTT05UeXBlcyAnZGlzdHJpYnV0aW9ucy4qJyxcbiMgICAgICAgICAgICAgICAgIG5hbWVfaWQ6IFN0cmluZ1xuIyAgICAgICAgICAgICAudG9zcygpXG4jICAgICAudG9zcygpXG4iXX0=