mirror of https://github.com/tc39/test262.git
1 line
90 KiB
JSON
1 line
90 KiB
JSON
{"testsCollection":{"name":"Chapter - 15.2_Object_Objects","numTests":"111","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMl9BMSIsCgpwYXRoOiAiMTUuMiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIE9iamVjdCBlcXVhbHMgdG8gdGhpcy5PYmplY3QiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9T2JqZWN0OwoKdmFyIHRoaXNvYmo9dGhpcy5PYmplY3Q7CgppZihvYmohPT10aGlzb2JqKXsKICAkRVJST1IoJ09iamVjdCBpcyB0aGUgcHJvcGVydHkgb2YgZ2xvYmFsJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTFfVDEiLAoKcGF0aDogIjE1LjIuMS4xLCAxNS4yLjIuMSIsCgpkZXNjcmlwdGlvbjogIkNyZWF0aW5nIE9iamVjdChudWxsKSBhbmQgY2hlY2tpbmcgaXRzIHByb3BlcnRpZXMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBfX29iaiA9IE9iamVjdChudWxsKTsKCnZhciBuX19vYmogPSBuZXcgT2JqZWN0KG51bGwpOyAKCmlmIChfX29iai50b1N0cmluZygpICE9PSBuX19vYmoudG9TdHJpbmcoKSl7CgkkRVJST1IoJyMxJyk7CQp9CgppZiAoX19vYmouY29uc3RydWN0b3IgIT09IG5fX29iai5jb25zdHJ1Y3RvcikgewoJJEVSUk9SKCcjMicpOwp9CgppZiAoX19vYmoucHJvdG90eXBlICE9PSBuX19vYmoucHJvdG90eXBlKSB7CgkkRVJST1IoJyMzJyk7Cn0JCgppZiAoX19vYmoudG9Mb2NhbGVTdHJpbmcoKSAhPT0gbl9fb2JqLnRvTG9jYWxlU3RyaW5nKCkpIHsKCSRFUlJPUignIzQnKTsKfQoKaWYgKHR5cGVvZiBfX29iaiAhPT0gdHlwZW9mIG5fX29iaikgewoJJEVSUk9SKCcjNScpOwp9CgogfQp9KTsKCg==","id":"S15.2.1.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTFfVDIiLAoKcGF0aDogIjE1LjIuMS4xLCAxNS4yLjIuMSIsCgpkZXNjcmlwdGlvbjogIkNyZWF0aW5nIE9iamVjdCh2b2lkIDApIGFuZCBjaGVja2luZyBpdHMgcHJvcGVydGllcyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy92YXIgeT0gdm9pZCAwOwoKdmFyIF9fb2JqID0gT2JqZWN0KHZvaWQgMCk7Cgp2YXIgbl9fb2JqID0gbmV3IE9iamVjdCh2b2lkIDApOwoKCmlmIChfX29iai50b1N0cmluZygpICE9PSBuX19vYmoudG9TdHJpbmcoKSl7CgkkRVJST1IoJyMxJyk7CQp9CgppZiAoX19vYmouY29uc3RydWN0b3IgIT09IG5fX29iai5jb25zdHJ1Y3RvcikgewoJJEVSUk9SKCcjMicpOwp9CgppZiAoX19vYmoucHJvdG90eXBlICE9PSBuX19vYmoucHJvdG90eXBlKSB7CgkkRVJST1IoJyMzJyk7Cn0JCgppZiAoX19vYmoudG9Mb2NhbGVTdHJpbmcoKSAhPT0gbl9fb2JqLnRvTG9jYWxlU3RyaW5nKCkpIHsKCSRFUlJPUignIzQnKTsKfQoKaWYgKHR5cGVvZiBfX29iaiAhPT0gdHlwZW9mIG5fX29iaikgewoJJEVSUk9SKCcjNScpOwp9CgogfQp9KTsKCg==","id":"S15.2.1.1_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTFfVDMiLAoKcGF0aDogIjE1LjIuMS4xLCAxNS4yLjIuMSIsCgpkZXNjcmlwdGlvbjogIkNyZWF0aW5nIE9iamVjdCgpIGFuZCBjaGVja2luZyBpdHMgcHJvcGVydGllcyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIF9fb2JqID0gT2JqZWN0KCk7Cgp2YXIgbl9fb2JqID0gbmV3IE9iamVjdCgpOwogCmlmIChfX29iai50b1N0cmluZygpICE9PSBuX19vYmoudG9TdHJpbmcoKSl7CgkkRVJST1IoJyMxJyk7CQp9CgppZiAoX19vYmouY29uc3RydWN0b3IgIT09IG5fX29iai5jb25zdHJ1Y3RvcikgewoJJEVSUk9SKCcjMicpOwp9CgppZiAoX19vYmoucHJvdG90eXBlICE9PSBuX19vYmoucHJvdG90eXBlKSB7CgkkRVJST1IoJyMzJyk7Cn0JCgppZiAoX19vYmoudG9Mb2NhbGVTdHJpbmcoKSAhPT0gbl9fb2JqLnRvTG9jYWxlU3RyaW5nKCkpIHsKCSRFUlJPUignIzQnKTsKfQoKaWYgKHR5cGVvZiBfX29iaiAhPT0gdHlwZW9mIG5fX29iaikgewoJJEVSUk9SKCcjNScpOwp9CgogfQp9KTsKCg==","id":"S15.2.1.1_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTFfVDQiLAoKcGF0aDogIjE1LjIuMS4xLCAxNS4yLjIuMSIsCgpkZXNjcmlwdGlvbjogIkNyZWF0aW5nIE9iamVjdCh1bmRlZmluZWQpIGFuZCBjaGVja2luZyBpdHMgcHJvcGVydGllcyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIF9fb2JqID0gT2JqZWN0KHVuZGVmaW5lZCk7Cgp2YXIgbl9fb2JqID0gbmV3IE9iamVjdCh1bmRlZmluZWQpOyAKCmlmIChfX29iai50b1N0cmluZygpICE9PSBuX19vYmoudG9TdHJpbmcoKSl7CgkkRVJST1IoJyMxJyk7CQp9CgppZiAoX19vYmouY29uc3RydWN0b3IgIT09IG5fX29iai5jb25zdHJ1Y3RvcikgewoJJEVSUk9SKCcjMicpOwp9CgppZiAoX19vYmoucHJvdG90eXBlICE9PSBuX19vYmoucHJvdG90eXBlKSB7CgkkRVJST1IoJyMzJyk7Cn0JCgppZiAoX19vYmoudG9Mb2NhbGVTdHJpbmcoKSAhPT0gbl9fb2JqLnRvTG9jYWxlU3RyaW5nKCkpIHsKCSRFUlJPUignIzQnKTsKfQoKaWYgKHR5cGVvZiBfX29iaiAhPT0gdHlwZW9mIG5fX29iaikgewoJJEVSUk9SKCcjNScpOwp9CgogfQp9KTsKCg==","id":"S15.2.1.1_A1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTFfVDUiLAoKcGF0aDogIjE1LjIuMS4xLCAxNS4yLjIuMSIsCgpkZXNjcmlwdGlvbjogIkNyZWF0aW5nIE9iamVjdCh4KSBhbmQgY2hlY2tpbmcgaXRzIHByb3BlcnRpZXMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBfX29iaiA9IE9iamVjdCh4KTsKCnZhciBuX19vYmogPSBuZXcgT2JqZWN0KHgpOyAKCmlmIChfX29iai50b1N0cmluZygpICE9PSBuX19vYmoudG9TdHJpbmcoKSl7CgkkRVJST1IoJyMxJyk7CQp9CgppZiAoX19vYmouY29uc3RydWN0b3IgIT09IG5fX29iai5jb25zdHJ1Y3RvcikgewoJJEVSUk9SKCcjMicpOwp9CgppZiAoX19vYmoucHJvdG90eXBlICE9PSBuX19vYmoucHJvdG90eXBlKSB7CgkkRVJST1IoJyMzJyk7Cn0JCgppZiAoX19vYmoudG9Mb2NhbGVTdHJpbmcoKSAhPT0gbl9fb2JqLnRvTG9jYWxlU3RyaW5nKCkpIHsKCSRFUlJPUignIzQnKTsKfQoKaWYgKHR5cGVvZiBfX29iaiAhPT0gdHlwZW9mIG5fX29iaikgewoJJEVSUk9SKCcjNScpOwp9Cgp2YXIgeDsKCiB9Cn0pOwoK","id":"S15.2.1.1_A1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDEiLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBPYmplY3QgZnVuY3Rpb24gd2l0aCBib29sZWFuIGFyZ3VtZW50IHZhbHVlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9vbCA9IHRydWU7CgppZih0eXBlb2YgYm9vbCAhPT0gJ2Jvb2xlYW4nKXsKICAkRkFJTCgnIzE6IGJvb2wgc2hvdWxkIGJlIGJvb2xlYW4gcHJpbWl0aXZlJyk7Cn0KCnZhciBvYmogPSBPYmplY3QoYm9vbCk7CgppZiAob2JqLmNvbnN0cnVjdG9yICE9PSBCb29sZWFuKSB7CiAgJEVSUk9SKCcjMjogT2JqZWN0KHRydWUpIHJldHVybnMgVG9PYmplY3QodHJ1ZSknKTsKfQoKaWYgKHR5cGVvZiBvYmogIT09ICJvYmplY3QiKSB7CiAgJEVSUk9SKCcjMzogT2JqZWN0KHRydWUpIHJldHVybnMgVG9PYmplY3QodHJ1ZSknKTsKfQoKaWYgKCFvYmopIHsKICAkRVJST1IoJyM0OiBPYmplY3QodHJ1ZSkgcmV0dXJucyBUb09iamVjdCh0cnVlKScpOwp9CgppZiAob2JqID09PSB0cnVlKSB7CiAgJEVSUk9SKCcjNTogT2JqZWN0KHRydWUpIHJldHVybnMgVG9PYmplY3QodHJ1ZSknKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.1.1_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDEwIiwKCnBhdGg6ICIxNS4yLjEuMSIsCgpkZXNjcmlwdGlvbjogIkNhbGxpbmcgT2JqZWN0IGZ1bmN0aW9uIHdpdGggYXJyYXkgb2YgbnVtYmVycyBhcyBhcmd1bWVudCB2YWx1ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGFyciA9IFsxLDIsM107CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBhcnIgIT09ICdvYmplY3QnKSB7CiAgJEVSUk9SKCcjMTogYXJyID0gWzEsMiwzXSBpcyBOT1QgYW4gb2JqZWN0Jyk7Cn0KCnZhciBuX29iaiA9IE9iamVjdChhcnIpOwoKYXJyLnB1c2goNCk7CgovL0NIRUNLIzIKaWYgKChuX29iaiAhPT0gYXJyKXx8KG5fb2JqWzNdIT09NCkpIHsKICAkRVJST1IoJyMyOiBPYmplY3QoWzEsMiwzXSkgcmV0dXJucyBUb09iamVjdChbMSwyLDNdKScpOwp9CgoKCgogfQp9KTsKCg==","id":"S15.2.1.1_A2_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDExIiwKCnBhdGg6ICIxNS4yLjEuMSIsCgpkZXNjcmlwdGlvbjogIkNhbGxpbmcgT2JqZWN0IGZ1bmN0aW9uIHdpdGggZnVuY3Rpb24gZGVjbGFyYXRpb24gYXMgYXJndW1lbnQgdmFsdWUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAodHlwZW9mIGZ1bmMgIT09ICd1bmRlZmluZWQnKSB7CiAgJEVSUk9SKCcjMTogIGZ1bmN0aW9uIGV4cHJlc3Npb24gY2FuXCd0IGJlIGRlY2xhcmF0ZWQnKTsKfQoKdmFyIG5fb2JqID0gT2JqZWN0KGZ1bmN0aW9uIGZ1bmMoKXtyZXR1cm4gMTt9KTsKCi8vQ0hFQ0sjMgppZiAoKG5fb2JqLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbil8fChuX29iaigpIT09MSkpIHsKICAkRVJST1IoJyMyOiBPYmplY3QoZnVuY3Rpb24gZnVuYygpe3JldHVybiAxO30pIHJldHVybnMgZnVuY3Rpb24nKTsKfQoKLy9DSEVDSyMzCmlmICh0eXBlb2YgZnVuYyAhPT0gJ3VuZGVmaW5lZCcpIHsKICAkRVJST1IoJyMzOiAgZnVuY3Rpb24gZXhwcmVzc2lvbiBjYW5cJ3QgYmUgZGVjbGFyYXRlZCcpOwp9CgoKIH0KfSk7Cgo=","id":"S15.2.1.1_A2_T11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDEyIiwKCnBhdGg6ICIxNS4yLjEuMSIsCgpkZXNjcmlwdGlvbjogIkNhbGxpbmcgT2JqZWN0IGZ1bmN0aW9uIHdpdGggbnVtZXJpYyBleHByZXNzaW9uIGFzIGFyZ3VtZW50IHZhbHVlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqID0gT2JqZWN0KDEuMSooW10ubGVuZ3RoK3txOjF9WyJxIl0pKTsKCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iaiAhPT0gIm9iamVjdCIpIHsKICAkRVJST1IoJyMyOiBPYmplY3QoZXhwcmVzc2lvbikgcmV0dXJucyBUb09iamVjdChleHByZXNzaW9uKScpOwp9CgovL0NIRUNLIzMKaWYgKG9iai5jb25zdHJ1Y3RvciAhPT0gTnVtYmVyKSB7CiAgJEVSUk9SKCcjMzogT2JqZWN0KGV4cHJlc3Npb24pIHJldHVybnMgVG9PYmplY3QoZXhwcmVzc2lvbiknKTsKfQoKLy9DSEVDSyM0CmlmICgob2JqICE9IDEuMSl8fChvYmogPT09IDEuMSkpIHsKICAkRVJST1IoJyM0OiBPYmplY3QoZXhwcmVzc2lvbikgcmV0dXJucyBUb09iamVjdChleHByZXNzaW9uKScpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.1.1_A2_T12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDEzIiwKCnBhdGg6ICIxNS4yLjEuMSIsCgpkZXNjcmlwdGlvbjogIkNhbGxpbmcgT2JqZWN0IGZ1bmN0aW9uIHdpdGggYm9vbGVhbiBleHByZXNzaW9uIGFzIGFyZ3VtZW50IHZhbHVlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqID0gT2JqZWN0KCgxPT09MSkmJighZmFsc2UpKTsKCi8vQ0hFQ0sjMQppZiAob2JqLmNvbnN0cnVjdG9yICE9PSBCb29sZWFuKSB7CiAgJEVSUk9SKCcjMTogT2JqZWN0KGV4cHJlc3Npb24pIHJldHVybnMgVG9PYmplY3QoZXhwcmVzc2lvbiknKTsKfQoKLy9DSEVDSyMxLjEKaWYgKHR5cGVvZiBvYmogIT09ICJvYmplY3QiKSB7CiAgJEVSUk9SKCcjMS4xOiBPYmplY3QoZXhwcmVzc2lvbikgcmV0dXJucyBUb09iamVjdChleHByZXNzaW9uKScpOwp9CgovL0NIRUNLIzIKaWYgKCEob2JqKSkgewogICRFUlJPUignIzI6IE9iamVjdChleHByZXNzaW9uKSByZXR1cm5zIFRvT2JqZWN0KGV4cHJlc3Npb24pJyk7Cn0KCi8vQ0hFQ0sjMwppZiAob2JqPT09dHJ1ZSkgewogICRFUlJPUignIzM6IE9iamVjdChleHByZXNzaW9uKSByZXR1cm5zIFRvT2JqZWN0KGV4cHJlc3Npb24pJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.1.1_A2_T13"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDE0IiwKCnBhdGg6ICIxNS4yLjEuMSIsCgpkZXNjcmlwdGlvbjogIkNhbGxpbmcgT2JqZWN0IGZ1bmN0aW9uIHdpdGggc3VtIG9mIGVtcHR5IHN0cmluZyBhbmQgYSBudW1iZXIgYXMgYXJndW1lbnQgdmFsdWUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmogPSBPYmplY3QoIiIrMSk7CgovL0NIRUNLIzIKaWYgKG9iai5jb25zdHJ1Y3RvciAhPT0gU3RyaW5nKSB7CiAgJEVSUk9SKCcjMjogT2JqZWN0KGV4cHJlc3Npb24pIHJldHVybnMgVG9PYmplY3QoZXhwcmVzc2lvbiknKTsKfQoKLy9DSEVDSyMzCmlmICh0eXBlb2Ygb2JqICE9PSAib2JqZWN0IikgewogICRFUlJPUignIzM6IE9iamVjdChleHByZXNzaW9uKSByZXR1cm5zIFRvT2JqZWN0KGV4cHJlc3Npb24pJyk7Cn0KCi8vQ0hFQ0sjNAppZiAoKG9iaiAhPSAiMSIpfHwob2JqID09PSAiMSIpKSB7CiAgJEVSUk9SKCcjNDogT2JqZWN0KGV4cHJlc3Npb24pIHJldHVybnMgVG9PYmplY3QoZXhwcmVzc2lvbiknKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.1.1_A2_T14"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDIiLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBPYmplY3QgZnVuY3Rpb24gd2l0aCBudW1iZXIgYXJndW1lbnQgdmFsdWUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBudW0gPSAxLjE7CgovLyBDSEVDSyMxCmlmKHR5cGVvZiBudW0gICE9PSAnbnVtYmVyJyl7CiAgJEVSUk9SKCcjMTogbnVtID0gMS4xIHNob3VsZCBiZSBOdW1iZXIgcHJpbWl0aXZlJyk7Cn0KCnZhciBvYmogPSBPYmplY3QobnVtKTsKCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iaiAhPT0gIm9iamVjdCIpIHsKICAkRVJST1IoJyMyOiBPYmplY3QoMS4xKSByZXR1cm5zIFRvT2JqZWN0KDEuMSknKTsKfQoKLy9DSEVDSyMzCmlmIChvYmouY29uc3RydWN0b3IgIT09IE51bWJlcikgewogICRFUlJPUignIzM6IE9iamVjdCgxLjEpIHJldHVybnMgVG9PYmplY3QoMS4xKScpOwp9CgovL0NIRUNLIzQKaWYgKChvYmogIT0gMS4xKXx8KG9iaiA9PT0gMS4xKSkgewogICRFUlJPUignIzQ6IE9iamVjdCgxLjEpIHJldHVybnMgVG9PYmplY3QoMS4xKScpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.1.1_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDMiLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBPYmplY3QgZnVuY3Rpb24gd2l0aCBzdHJpbmcgYXJndW1lbnQgdmFsdWUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBzdHIgPSAnTHVrZSBTa3l3YWxrZXInOwoKLy8gQ0hFQ0sjMQppZiAodHlwZW9mIHN0ciAgIT09ICdzdHJpbmcnKSB7CiAgJEVSUk9SKCcjMTogIkx1a2UgU2t5d2Fsa2VyIiBzaG91bGQgYmUgYSBTdHJpbmcgcHJpbWl0aXZlJyk7Cn0KCnZhciBvYmogPSBPYmplY3Qoc3RyKTsKCi8vQ0hFQ0sjMgppZiAob2JqLmNvbnN0cnVjdG9yICE9PSBTdHJpbmcpIHsKICAkRVJST1IoJyMyOiBPYmplY3QoIkx1a2UgU2t5d2Fsa2VyIikgcmV0dXJucyBUb09iamVjdCgiTHVrZSBTa3l3YWxrZXIiKScpOwp9CgovL0NIRUNLIzMKaWYgKHR5cGVvZiBvYmogIT09ICJvYmplY3QiKSB7CiAgJEVSUk9SKCcjMzogT2JqZWN0KCJMdWtlIFNreXdhbGtlciIpIHJldHVybnMgVG9PYmplY3QoIkx1a2UgU2t5d2Fsa2VyIiknKTsKfQoKLy9DSEVDSyM0CmlmICgob2JqICE9ICJMdWtlIFNreXdhbGtlciIpfHwob2JqID09PSAiTHVrZSBTa3l3YWxrZXIiKSkgewogICRFUlJPUignIzQ6IE9iamVjdCgiTHVrZSBTa3l3YWxrZXIiKSByZXR1cm5zIFRvT2JqZWN0KCJMdWtlIFNreXdhbGtlciIpJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.1.1_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDQiLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBPYmplY3QgZnVuY3Rpb24gd2l0aCBvYmplY3QgYXJndW1lbnQgdmFsdWUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmogPSB7ZmxhZzp0cnVlfTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mKG9iaikgIT09ICdvYmplY3QnKSB7CiAgJEZBSUwoJyMxOiBvYmogPSB7ZmxhZzp0cnVlfSBzaG91bGQgYmUgYW4gT2JqZWN0Jyk7Cn0KCnZhciBuX29iaiA9IE9iamVjdChvYmopOwoKLy9DSEVDSyMyCmlmICgobl9vYmogIT09IG9iail8fCghKG5fb2JqWydmbGFnJ10pKSkgewogICRFUlJPUignIzI6IE9iamVjdCh7ZmxhZzp0cnVlfSkgcmV0dXJucyBUb09iamVjdCh7ZmxhZzp0cnVlfSknKTsKfQoKCiB9Cn0pOwoK","id":"S15.2.1.1_A2_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDUiLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBPYmplY3QgZnVuY3Rpb24gd2l0aCBOYU4gYXJndW1lbnQgdmFsdWUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBudW0gPSBOYU47CgovLyBDSEVDSyMxCmlmKHR5cGVvZiBudW0gICE9PSAnbnVtYmVyJyl7CiAgJEVSUk9SKCcjMTogbnVtID0gTmFOIHNob3VsZCBoYXZlIG51bWJlciB0eXBlJyk7Cn0KCnZhciBvYmogPSBPYmplY3QobnVtKTsKCi8vQ0hFQ0sjMgppZiAob2JqLmNvbnN0cnVjdG9yICE9PSBOdW1iZXIpIHsKICAkRVJST1IoJyMyOiBPYmplY3QoTmFOKSByZXR1cm5zIFRvT2JqZWN0KE5hTiknKTsKfQoKLy9DSEVDSyMzCmlmICh0eXBlb2Ygb2JqIT09Im9iamVjdCIpIHsKICAkRVJST1IoJyMyOiBPYmplY3QoTmFOKSByZXR1cm5zIFRvT2JqZWN0KE5hTiknKTsKfQovLwoKIH0KfSk7Cgo=","id":"S15.2.1.1_A2_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDYiLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBPYmplY3QgZnVuY3Rpb24gd2l0aCBJbmZpbml0eSBhcmd1bWVudCB2YWx1ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIG51bSA9IEluZmluaXR5OwoKLy8gQ0hFQ0sjMQppZih0eXBlb2YgbnVtICAhPT0gJ251bWJlcicpewogICRFUlJPUignIzE6IG51bSA9IEluZmluaXR5IHNob3VsZCBiZSBhIE51bWJlciBwcmltaXRpdmUnKTsKfQoKdmFyIG9iaiA9IE9iamVjdChudW0pOwoKLy9DSEVDSyMyCmlmIChvYmouY29uc3RydWN0b3IgIT09IE51bWJlcikgewogICRFUlJPUignIzI6IE9iamVjdChJbmZpbml0eSkgcmV0dXJucyBUb09iamVjdChJbmZpbml0eSknKTsKfQoKLy9DSEVDSyMzCmlmICh0eXBlb2Ygb2JqIT09Im9iamVjdCIpIHsKICAkRVJST1IoJyMzOiBPYmplY3QoSW5maW5pdHkpIHJldHVybnMgVG9PYmplY3QoSW5maW5pdHkpJyk7Cn0KCi8vQ0hFQ0sjNAppZiAoKG9iaiAhPSBJbmZpbml0eSl8fChvYmogPT09IEluZmluaXR5KSkgewogICRFUlJPUignIzQ6IE9iamVjdChJbmZpbml0eSkgcmV0dXJucyBUb09iamVjdChJbmZpbml0eSknKTsKfQoKCiB9Cn0pOwoK","id":"S15.2.1.1_A2_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDciLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBPYmplY3QgZnVuY3Rpb24gd2l0aCBlbXB0eSBzdHJpbmcgYXJndW1lbnQgdmFsdWUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBzdHIgPSAnJzsKCi8vIENIRUNLIzEKaWYgKHR5cGVvZihzdHIpICE9PSAnc3RyaW5nJykgewogICRGQUlMKCcjMTogIiIgaXMgTk9UIGEgU3RyaW5nJyk7Cn0KCnZhciBvYmogPSBPYmplY3Qoc3RyKTsKCi8vQ0hFQ0sjMgppZiAob2JqLmNvbnN0cnVjdG9yICE9PSBTdHJpbmcpIHsKICAkRVJST1IoJyMyOiBPYmplY3QoIiIpIHJldHVybnMgVG9PYmplY3QoIiIpJyk7Cn0KCi8vQ0hFQ0sjMwppZiAodHlwZW9mIG9iaiAhPT0gIm9iamVjdCIpIHsKICAkRVJST1IoJyMzOiBPYmplY3QoIiIpIHJldHVybnMgVG9PYmplY3QoIiIpJyk7Cn0KCi8vQ0hFQ0sjNAppZiAoKG9iaiAhPSAiIil8fChvYmogPT09ICIiKSkgewogICRFUlJPUignIzQ6IE9iamVjdCgiIikgcmV0dXJucyBUb09iamVjdCgiIiknKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.1.1_A2_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDgiLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBPYmplY3QgZnVuY3Rpb24gd2l0aCBmdW5jdGlvbiB2YXJpYWJsZSBhcmd1bWVudCB2YWx1ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGZ1bmMgPSBmdW5jdGlvbigpe3JldHVybiAxO307CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBmdW5jICE9PSAnZnVuY3Rpb24nKSB7CiAgJEVSUk9SKCcjMTogZnVuYyA9IGZ1bmN0aW9uKCl7cmV0dXJuIDE7fSBpcyBOT1QgYW4gZnVuY3Rpb24nKTsKfQoKdmFyIG5fb2JqID0gT2JqZWN0KGZ1bmMpOwoKLy9DSEVDSyMyCmlmICgobl9vYmogIT09IGZ1bmMpfHwobl9vYmooKSE9PTEpKSB7CiAgJEVSUk9SKCcjMjogT2JqZWN0KGZ1bmN0aW9uKSByZXR1cm5zIGZ1bmN0aW9uJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.2.1.1_A2_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTJfVDkiLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBPYmplY3QgZnVuY3Rpb24gd2l0aCBmdW5jdGlvbiBhcmd1bWVudCB2YWx1ZS4gVGhlIGZ1bmN0aW9uIGlzIGRlY2xhcmVkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHR5cGVvZiBmdW5jICE9PSAnZnVuY3Rpb24nKSB7CiAgJEVSUk9SKCcjMTogZnVuYyA9IGZ1bmN0aW9uKCl7cmV0dXJuIDE7fSBpcyBOT1QgYW4gZnVuY3Rpb24nKTsKfQoKdmFyIG5fb2JqID0gT2JqZWN0KGZ1bmMpOwoKLy9DSEVDSyMyCmlmICgobl9vYmogIT09IGZ1bmMpfHwobl9vYmooKSE9PTEpKSB7CiAgJEVSUk9SKCcjMjogT2JqZWN0KGZ1bmN0aW9uKSByZXR1cm5zIGZ1bmN0aW9uJyk7Cn0KCmZ1bmN0aW9uIGZ1bmMoKXtyZXR1cm4gMTt9OwoKCiB9Cn0pOwoK","id":"S15.2.1.1_A2_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTNfVDEiLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgYW4gb2JqZWN0IHdpdGggXCJPYmplY3QoMSwyLDMpXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmogPSBPYmplY3QoMSwyLDMpOwoKLy9DSEVDSyMxCmlmIChvYmouY29uc3RydWN0b3IgIT09IE51bWJlcikgewogICRFUlJPUignIzE6IFNpbmNlIE9iamVjdCBhcyBhIGZ1bmN0aW9uIGNhbGxpbmcgaXMgdGhlIHNhbWUgYXMgZnVuY3Rpb24gY2FsbGluZyBsaXN0IG9mIGFyZ3VtZW50cyBjYW4gYXBwZWFycyBpbiBicmFjZXM7Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iaiAhPT0gIm9iamVjdCIpIHsKICAkRVJST1IoJyMyOiBTaW5jZSBPYmplY3QgYXMgYSBmdW5jdGlvbiBjYWxsaW5nIGlzIHRoZSBzYW1lIGFzIGZ1bmN0aW9uIGNhbGxpbmcgbGlzdCBvZiBhcmd1bWVudHMgY2FuIGFwcGVhcnMgaW4gYnJhY2VzOycpOwp9CgovL0NIRUNLIzMKaWYgKChvYmogIT0gMSl8fChvYmogPT09IDEpKSB7CiAgJEVSUk9SKCczIzogU2luY2UgT2JqZWN0IGFzIGEgZnVuY3Rpb24gY2FsbGluZyBpcyB0aGUgc2FtZSBhcyBmdW5jdGlvbiBjYWxsaW5nIGxpc3Qgb2YgYXJndW1lbnRzIGNhbiBhcHBlYXJzIGluIGJyYWNlczsnKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.1.1_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTNfVDIiLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgYW4gb2JqZWN0IHdpdGggXCJPYmplY3QobnVsbCwyLDMpXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmogPSBPYmplY3QobnVsbCwyLDMpOwoKLy9DSEVDSyMxCmlmIChvYmouY29uc3RydWN0b3IgIT09IE9iamVjdCkgewogICRFUlJPUignIzE6IFNpbmNlIE9iamVjdCBhcyBhIGZ1bmN0aW9uIGNhbGxpbmcgaXMgdGhlIHNhbWUgYXMgZnVuY3Rpb24gY2FsbGluZyBsaXN0IG9mIGFyZ3VtZW50cyBjYW4gYXBwZWFycyBpbiBicmFjZXM7Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iaiAhPT0gIm9iamVjdCIpIHsKICAkRVJST1IoJyMyOiBTaW5jZSBPYmplY3QgYXMgYSBmdW5jdGlvbiBjYWxsaW5nIGlzIHRoZSBzYW1lIGFzIGZ1bmN0aW9uIGNhbGxpbmcgbGlzdCBvZiBhcmd1bWVudHMgY2FuIGFwcGVhcnMgaW4gYnJhY2VzOycpOwp9CgogfQp9KTsKCg==","id":"S15.2.1.1_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4xLjFfQTNfVDMiLAoKcGF0aDogIjE1LjIuMS4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgYW4gb2JqZWN0IHdpdGggXCJPYmplY3QoKG51bGwsMiwzKSwxLDIpXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmogPSBPYmplY3QoKG51bGwsMiwzKSwxLDIpOwoKLy9DSEVDSyMxCmlmIChvYmouY29uc3RydWN0b3IgIT09IE51bWJlcikgewogICRFUlJPUignIzE6IFNpbmNlIE9iamVjdCBhcyBhIGZ1bmN0aW9uIGNhbGxpbmcgaXMgdGhlIHNhbWUgYXMgZnVuY3Rpb24gY2FsbGluZyBsaXN0IG9mIGFyZ3VtZW50cyBjYW4gYXBwZWFycyBpbiBicmFjZXM7Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iaiAhPT0gIm9iamVjdCIpIHsKICAkRVJST1IoJyMyOiBTaW5jZSBPYmplY3QgYXMgYSBmdW5jdGlvbiBjYWxsaW5nIGlzIHRoZSBzYW1lIGFzIGZ1bmN0aW9uIGNhbGxpbmcgbGlzdCBvZiBhcmd1bWVudHMgY2FuIGFwcGVhcnMgaW4gYnJhY2VzOycpOwp9CgovL0NIRUNLIzMKaWYgKChvYmogIT0gMyl8fChvYmogPT09IDMpKSB7CiAgJEVSUk9SKCczIzogU2luY2UgT2JqZWN0IGFzIGEgZnVuY3Rpb24gY2FsbGluZyBpcyB0aGUgc2FtZSBhcyBmdW5jdGlvbiBjYWxsaW5nIGxpc3Qgb2YgYXJndW1lbnRzIGNhbiBhcHBlYXJzIGluIGJyYWNlczsnKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.1.1_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTFfVDEiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgbmV3IE9iamVjdCgpIGFuZCBjaGVja2luZyBpdHMgcHJvcGVydGllcyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIG9iaiA9IG5ldyBPYmplY3QoKTsKCi8vIENIRUNLIzAKaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMDogbmV3IE9iamVjdCgpIHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBuYXRpdmUgb2JqZWN0LicpOwp9CgovLyBDSEVDSyMxCmlmIChvYmouY29uc3RydWN0b3IgIT09IE9iamVjdCkgewogICRFUlJPUignIzE6IG5ldyBPYmplY3QoKSBjcmVhdGUgYSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0Jyk7Cn0KCi8vIENIRUNLIzIKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKG9iaikpKSB7CiAgJEVSUk9SKCcjMjogd2hlbiBuZXcgT2JqZWN0KCkgY2FsbHMgdGhlIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgdGhlIG5ld2x5IGNvbnN0cnVjdGVkIG9iamVjdCBpcyBzZXQgdG8gdGhlIE9iamVjdCBwcm90b3R5cGUgb2JqZWN0LicpOwp9CgovLyBDSEVDSyMzCnZhciB0b19zdHJpbmdfcmVzdWx0ID0gJ1tvYmplY3QgJysgJ09iamVjdCcgKyddJzsKaWYgKG9iai50b1N0cmluZygpICE9PSB0b19zdHJpbmdfcmVzdWx0KSB7CiAgJEVSUk9SKCcjMzogd2hlbiBuZXcgT2JqZWN0KCkgY2FsbHMgdGhlIFtbQ2xhc3NdXSBwcm9wZXJ0eSBvZiB0aGUgbmV3bHkgY29uc3RydWN0ZWQgb2JqZWN0IGlzIHNldCB0byAiT2JqZWN0Ii4nKTsKfQoKLy8gQ0hFQ0sjNAppZiAob2JqLnZhbHVlT2YoKS50b1N0cmluZygpICE9PSB0b19zdHJpbmdfcmVzdWx0LnRvU3RyaW5nKCkpIHsKICAkRVJST1IoJyM0OiB3aGVuIG5ldyBPYmplY3QoKSBjYWxscyB0aGUgbmV3bHkgY29uc3RydWN0ZWQgb2JqZWN0IGhhcyBubyBbW1ZhbHVlXV0gcHJvcGVydHkuJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.2.2.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTFfVDIiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgbmV3IE9iamVjdCh2b2lkIDApIGFuZCBjaGVja2luZyBpdHMgcHJvcGVydGllcyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy92YXIgZm9vID0gdm9pZCAwOwp2YXIgb2JqID0gbmV3IE9iamVjdCh2b2lkIDApOwoKLy8gQ0hFQ0sjMAppZiAob2JqID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMwOiBuZXcgT2JqZWN0KHVuZGVmaW5lZCkgcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG5hdGl2ZSBvYmplY3QuJyk7Cn0KCi8vIENIRUNLIzEKaWYgKG9iai5jb25zdHJ1Y3RvciAhPT0gT2JqZWN0KSB7CiAgJEVSUk9SKCcjMTogbmV3IE9iamVjdCh1bmRlZmluZWQpIGNyZWF0ZSBhIG5ldyBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QnKTsKfQoKLy8gQ0hFQ0sjMgppZiAoIShPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2Yob2JqKSkpIHsKICAkRVJST1IoJyMyOiB3aGVuIG5ldyBPYmplY3QodW5kZWZpbmVkKSBjYWxscyB0aGUgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiB0aGUgbmV3bHkgY29uc3RydWN0ZWQgb2JqZWN0IGlzIHNldCB0byB0aGUgT2JqZWN0IHByb3RvdHlwZSBvYmplY3QuJyk7Cn0KCi8vIENIRUNLIzMKdmFyIHRvX3N0cmluZ19yZXN1bHQgPSAnW29iamVjdCAnKyAnT2JqZWN0JyArJ10nOwppZiAob2JqLnRvU3RyaW5nKCkgIT09IHRvX3N0cmluZ19yZXN1bHQpIHsKICAkRVJST1IoJyMzOiB3aGVuIG5ldyBPYmplY3QodW5kZWZpbmVkKSBjYWxscyB0aGUgW1tDbGFzc11dIHByb3BlcnR5IG9mIHRoZSBuZXdseSBjb25zdHJ1Y3RlZCBvYmplY3QgaXMgc2V0IHRvICJPYmplY3QiLicpOwp9CgovLyBDSEVDSyM0CmlmIChvYmoudmFsdWVPZigpLnRvU3RyaW5nKCkgIT09IHRvX3N0cmluZ19yZXN1bHQudG9TdHJpbmcoKSkgewogICRFUlJPUignIzQ6IHdoZW4gbmV3IE9iamVjdCh1bmRlZmluZWQpIGNhbGxzIHRoZSBuZXdseSBjb25zdHJ1Y3RlZCBvYmplY3QgaGFzIG5vIFtbVmFsdWVdXSBwcm9wZXJ0eS4nKTsKfQoKCiB9Cn0pOwoK","id":"S15.2.2.1_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTFfVDMiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgbmV3IE9iamVjdChudWxsKSBhbmQgY2hlY2tpbmcgaXRzIHByb3BlcnRpZXMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmogPSBuZXcgT2JqZWN0KG51bGwpOwoKLy8gQ0hFQ0sjMAppZiAob2JqID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMwOiBuZXcgT2JqZWN0KG51bGwpIHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBuYXRpdmUgb2JqZWN0LicpOwp9CgovLyBDSEVDSyMxCmlmIChvYmouY29uc3RydWN0b3IgIT09IE9iamVjdCkgewogICRFUlJPUignIzE6IG5ldyBPYmplY3QobnVsbCkgY3JlYXRlIGEgbmV3IG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCcpOwp9CgovLyBDSEVDSyMyCmlmICghKE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihvYmopKSkgewogICRFUlJPUignIzI6IHdoZW4gbmV3IE9iamVjdChudWxsKSBjYWxscyB0aGUgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiB0aGUgbmV3bHkgY29uc3RydWN0ZWQgb2JqZWN0IGlzIHNldCB0byB0aGUgT2JqZWN0IHByb3RvdHlwZSBvYmplY3QuJyk7Cn0KCi8vIENIRUNLIzMKdmFyIHRvX3N0cmluZ19yZXN1bHQgPSAnW29iamVjdCAnKyAnT2JqZWN0JyArJ10nOwppZiAob2JqLnRvU3RyaW5nKCkgIT09IHRvX3N0cmluZ19yZXN1bHQpIHsKICAkRVJST1IoJyMzOiB3aGVuIG5ldyBPYmplY3QobnVsbCkgY2FsbHMgdGhlIFtbQ2xhc3NdXSBwcm9wZXJ0eSBvZiB0aGUgbmV3bHkgY29uc3RydWN0ZWQgb2JqZWN0IGlzIHNldCB0byAiT2JqZWN0Ii4nKTsKfQoKLy8gQ0hFQ0sjNAppZiAob2JqLnZhbHVlT2YoKS50b1N0cmluZygpICE9PSB0b19zdHJpbmdfcmVzdWx0LnRvU3RyaW5nKCkpIHsKICAkRVJST1IoJyM0OiB3aGVuIG5ldyBPYmplY3QobnVsbCkgY2FsbHMgdGhlIG5ld2x5IGNvbnN0cnVjdGVkIG9iamVjdCBoYXMgbm8gW1tWYWx1ZV1dIHByb3BlcnR5LicpOwp9CgoKIH0KfSk7Cgo=","id":"S15.2.2.1_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTFfVDQiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgbmV3IE9iamVjdCh1bmRlZmluZWQpIGFuZCBjaGVja2luZyBpdHMgcHJvcGVydGllcyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIG9iaiA9IG5ldyBPYmplY3QodW5kZWZpbmVkKTsKCi8vIENIRUNLIzAKaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMDogbmV3IE9iamVjdCh1bmRlZmluZWQpIHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBuYXRpdmUgb2JqZWN0LicpOwp9CgovLyBDSEVDSyMxCmlmIChvYmouY29uc3RydWN0b3IgIT09IE9iamVjdCkgewogICRFUlJPUignIzE6IG5ldyBPYmplY3QodW5kZWZpbmVkKSBjcmVhdGUgYSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0Jyk7Cn0KCi8vIENIRUNLIzIKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKG9iaikpKSB7CiAgJEVSUk9SKCcjMjogd2hlbiBuZXcgT2JqZWN0KHVuZGVmaW5lZCkgY2FsbHMgdGhlIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgdGhlIG5ld2x5IGNvbnN0cnVjdGVkIG9iamVjdCBpcyBzZXQgdG8gdGhlIE9iamVjdCBwcm90b3R5cGUgb2JqZWN0LicpOwp9CgovLyBDSEVDSyMzCnZhciB0b19zdHJpbmdfcmVzdWx0ID0gJ1tvYmplY3QgJysgJ09iamVjdCcgKyddJzsKaWYgKG9iai50b1N0cmluZygpICE9PSB0b19zdHJpbmdfcmVzdWx0KSB7CiAgJEVSUk9SKCcjMzogd2hlbiBuZXcgT2JqZWN0KHVuZGVmaW5lZCkgY2FsbHMgdGhlIFtbQ2xhc3NdXSBwcm9wZXJ0eSBvZiB0aGUgbmV3bHkgY29uc3RydWN0ZWQgb2JqZWN0IGlzIHNldCB0byAiT2JqZWN0Ii4nKTsKfQoKLy8gQ0hFQ0sjNAppZiAob2JqLnZhbHVlT2YoKS50b1N0cmluZygpICE9PSB0b19zdHJpbmdfcmVzdWx0LnRvU3RyaW5nKCkpIHsKICAkRVJST1IoJyM0OiB3aGVuIG5ldyBPYmplY3QodW5kZWZpbmVkKSBjYWxscyB0aGUgbmV3bHkgY29uc3RydWN0ZWQgb2JqZWN0IGhhcyBubyBbW1ZhbHVlXV0gcHJvcGVydHkuJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.2.2.1_A1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTFfVDUiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgbmV3IE9iamVjdCh4KSwgd2hlcmUgeCBpcyBcInVuZGVmaW5lZFwiLCBhbmQgY2hlY2tpbmcgaXQgcHJvcGVydGllcyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIG9iaiA9IG5ldyBPYmplY3QoeCk7CgovLyBDSEVDSyMwCmlmIChvYmogPT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzA6IG5ldyBPYmplY3QodW5kZWZpbmVkKSByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgbmF0aXZlIG9iamVjdC4nKTsKfQoKLy8gQ0hFQ0sjMQppZiAob2JqLmNvbnN0cnVjdG9yICE9PSBPYmplY3QpIHsKICAkRVJST1IoJyMxOiBuZXcgT2JqZWN0KHVuZGVmaW5lZCkgY3JlYXRlIGEgbmV3IG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCcpOwp9CgovLyBDSEVDSyMyCmlmICghKE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihvYmopKSkgewogICRFUlJPUignIzI6IHdoZW4gbmV3IE9iamVjdCh1bmRlZmluZWQpIGNhbGxzIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBuZXdseSBjb25zdHJ1Y3RlZCBvYmplY3QgaXMgc2V0IHRvIHRoZSBPYmplY3QgcHJvdG90eXBlIG9iamVjdC4nKTsKfQoKLy8gQ0hFQ0sjMwp2YXIgdG9fc3RyaW5nX3Jlc3VsdCA9ICdbb2JqZWN0ICcrICdPYmplY3QnICsnXSc7CmlmIChvYmoudG9TdHJpbmcoKSAhPT0gdG9fc3RyaW5nX3Jlc3VsdCkgewogICRFUlJPUignIzM6IHdoZW4gbmV3IE9iamVjdCh1bmRlZmluZWQpIGNhbGxzIHRoZSBbW0NsYXNzXV0gcHJvcGVydHkgb2YgdGhlIG5ld2x5IGNvbnN0cnVjdGVkIG9iamVjdCBpcyBzZXQgdG8gIk9iamVjdCIuJyk7Cn0KCi8vIENIRUNLIzQKaWYgKG9iai52YWx1ZU9mKCkudG9TdHJpbmcoKSAhPT0gdG9fc3RyaW5nX3Jlc3VsdC50b1N0cmluZygpKSB7CiAgJEVSUk9SKCcjNDogd2hlbiBuZXcgT2JqZWN0KHVuZGVmaW5lZCkgY2FsbHMgdGhlIG5ld2x5IGNvbnN0cnVjdGVkIG9iamVjdCBoYXMgbm8gW1tWYWx1ZV1dIHByb3BlcnR5LicpOwp9Cgp2YXIgeDsKCgogfQp9KTsKCg==","id":"S15.2.2.1_A1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTJfVDEiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVGhlIHZhbHVlIGlzIE9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIG9iaiA9IHtwcm9wOjF9OwoKdmFyIG5fb2JqID0gbmV3IE9iamVjdChvYmopOwoKLy9DSEVDSyMxCmlmIChuX29iaiAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMTogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCBhbmQgaWYgdGhlIHZhbHVlIGlzIGFuIE9iamVjdCBzaW1wbHkgdmFsdWUgcmV0dXJucy4nKTsKfQoKLy9DSEVDSyMyCmlmIChuX29ialsncHJvcCddICE9PSAxKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCBhbmQgaWYgdGhlIHZhbHVlIGlzIGFuIE9iamVjdCBzaW1wbHkgdmFsdWUgcmV0dXJucy4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.2.1_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTJfVDIiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVGhlIHZhbHVlIGlzIGEgZnVuY3Rpb24gdmFyaWFibGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBmdW5jID0gZnVuY3Rpb24oKXtyZXR1cm4gMTt9OwoKdmFyIG5fb2JqID0gbmV3IE9iamVjdChmdW5jKTsKCi8vQ0hFQ0sjMQppZiAobl9vYmogIT09IGZ1bmMpIHsKICAkRVJST1IoJyMxOiBXaGVuIHRoZSBPYmplY3QgY29uc3RydWN0b3IgaXMgY2FsbGVkIGFuZCBpZiB0aGUgdmFsdWUgaXMgYW4gT2JqZWN0IHNpbXBseSB2YWx1ZSByZXR1cm5zJyk7Cn0KCi8vQ0hFQ0sjMgppZiAobl9vYmooKSAhPT0gMSkgewogICRFUlJPUignV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCBhbmQgaWYgdGhlIHZhbHVlIGlzIGFuIE9iamVjdCBzaW1wbHkgdmFsdWUgcmV0dXJucycpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.2.1_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTJfVDMiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVGhlIHZhbHVlIGlzIGFuIGFycmF5IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYXJyID0gWzEsMiwzXTsKCnZhciBuX29iaiA9IG5ldyBPYmplY3QoYXJyKTsKCmFyci5wdXNoKDQpOwoKLy9DSEVDSyMxCmlmIChuX29iaiAhPT0gYXJyKSB7CiAgJEVSUk9SKCcjMTogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCBhbmQgaWYgdGhlIHZhbHVlIGlzIGFuIE9iamVjdCBzaW1wbHkgdmFsdWUgcmV0dXJucy4nKTsKfQoKLy9DSEVDSyMyCmlmIChuX29ialszXSAhPT0gNCkgewogICRFUlJPUignIzI6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgYW5kIGlmIHRoZSB2YWx1ZSBpcyBhbiBPYmplY3Qgc2ltcGx5IHZhbHVlIHJldHVybnMuJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.2.1_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTJfVDUiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVGhlIHZhbHVlIGlzIGEgRGF0ZSBvYmplY3QiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmogPSBuZXcgRGF0ZSgxOTc4LDMpOwoKdmFyIG5fb2JqID0gbmV3IE9iamVjdChvYmopOwoKLy9DSEVDSyMxCmlmIChuX29iaiAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMTogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCBhbmQgaWYgdGhlIHZhbHVlIGlzIGFuIE9iamVjdCBzaW1wbHkgdmFsdWUgcmV0dXJucy4nKTsKfQoKLy9DSEVDSyMyCmlmICgobl9vYmouZ2V0WWVhcigpICE9PSA3OCl8fChuX29iai5nZXRNb250aCgpICE9PSAzKSkgewogICRFUlJPUignIzI6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgYW5kIGlmIHRoZSB2YWx1ZSBpcyBhbiBPYmplY3Qgc2ltcGx5IHZhbHVlIHJldHVybnMuJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.2.1_A2_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTJfVDYiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVGhlIHZhbHVlIGlzIGEgZGVjbGFyZWQgZnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBuX29iaiA9IG5ldyBPYmplY3QoZnVuYyk7CgovL0NIRUNLIzEKaWYgKG5fb2JqICE9PSBmdW5jKSB7CiAgJEVSUk9SKCcjMTogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCBhbmQgaWYgdGhlIHZhbHVlIGlzIGFuIE9iamVjdCBzaW1wbHkgdmFsdWUgcmV0dXJucycpOwp9CgovL0NIRUNLIzIKaWYgKG5fb2JqKCkgIT09IDEpIHsKICAkRVJST1IoJ1doZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgYW5kIGlmIHRoZSB2YWx1ZSBpcyBhbiBPYmplY3Qgc2ltcGx5IHZhbHVlIHJldHVybnMnKTsKfQoKZnVuY3Rpb24gZnVuYygpe3JldHVybiAxO307CgogfQp9KTsKCg==","id":"S15.2.2.1_A2_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTJfVDciLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiVGhlIHZhbHVlIGlzIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMAppZiAodHlwZW9mIGZ1bmMgIT09ICd1bmRlZmluZWQnKSB7CiAgJEVSUk9SKCcjMDogZnVuY3Rpb24gZXhwcmVzc2lvbiBjYW5cJ3QgYmUgZGVjbGFyYXRlZCcpOwp9Cgp2YXIgbl9vYmogPSBuZXcgT2JqZWN0KGZ1bmN0aW9uIGZ1bmMoKXtyZXR1cm4gMTt9KTsKCi8vQ0hFQ0sjMQppZiAobl9vYmouY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMTogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCBhbmQgaWYgdGhlIHZhbHVlIGlzIGFuIE9iamVjdCBzaW1wbHkgdmFsdWUgcmV0dXJucycpOwp9CgovL0NIRUNLIzIKaWYgKG5fb2JqKCkgIT09IDEpIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBPYmplY3QgY29uc3RydWN0b3IgaXMgY2FsbGVkIGFuZCBpZiB0aGUgdmFsdWUgaXMgYW4gT2JqZWN0IHNpbXBseSB2YWx1ZSByZXR1cm5zJyk7Cn0KCi8vQ0hFQ0sjMwppZiAodHlwZW9mIGZ1bmMgIT09ICd1bmRlZmluZWQnKSB7CiAgJEVSUk9SKCcjMzogZnVuY3Rpb24gZXhwcmVzc2lvbiBjYW5cJ3QgYmUgZGVjbGFyYXRlZCcpOwp9CgoKIH0KfSk7Cgo=","id":"S15.2.2.1_A2_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTNfVDEiLAoKcGF0aDogIjE1LjIuMi4xLCA4LjYiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCB2YWx1ZSBpcyBhIG5vbmVtcHR5IHN0cmluZyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIHN0ciA9ICdPYmktV2FuIEtlbm9iaSc7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBzdHIgICE9PSAnc3RyaW5nJykgewogICRGQUlMKCcjMTogIk9iaS1XYW4gS2Vub2JpIiBpcyBOT1QgYSBTdHJpbmcnKTsKfQoKCnZhciBuX29iaiA9IG5ldyBPYmplY3Qoc3RyKTsKCi8vQ0hFQ0sjMgppZiAobl9vYmouY29uc3RydWN0b3IgIT09IFN0cmluZykgewogICRFUlJPUignIzI6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBTdHJpbmcgYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KHN0cmluZyknKTsKfQoKLy9DSEVDSyMzCmlmICh0eXBlb2Ygbl9vYmogIT09ICdvYmplY3QnKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIFN0cmluZyBhcmd1bWVudCByZXR1cm4gVG9PYmplY3Qoc3RyaW5nKScpOwp9CgovL0NIRUNLIzQKaWYgKCBuX29iaiAhPSBzdHIpIHsKICAkRVJST1IoJyM0OiBXaGVuIHRoZSBPYmplY3QgY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggU3RyaW5nIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChzdHJpbmcpJyk7Cn0KCi8vQ0hFQ0sjNQppZiAoIG5fb2JqID09PSBzdHIpIHsKICAkRVJST1IoJyM1OiBXaGVuIHRoZSBPYmplY3QgY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggU3RyaW5nIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChzdHJpbmcpJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.2.2.1_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTNfVDIiLAoKcGF0aDogIjE1LjIuMi4xLCA4LjYiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCB2YWx1ZSBpcyBhbiBlbXB0eSBzdHJpbmciLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBzdHIgPSAnJzsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIHN0ciAgIT09ICdzdHJpbmcnKSB7CiAgJEZBSUwoJyMxOiAiIiBpcyBOT1QgYSBTdHJpbmcnKTsKfQoKdmFyIG5fb2JqID0gbmV3IE9iamVjdChzdHIpOwoKLy9DSEVDSyMyCmlmIChuX29iai5jb25zdHJ1Y3RvciAhPT0gU3RyaW5nKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIFN0cmluZyBhcmd1bWVudCByZXR1cm4gVG9PYmplY3Qoc3RyaW5nKScpOwp9CgovL0NIRUNLIzMKaWYgKHR5cGVvZiBuX29iaiAhPT0gJ29iamVjdCcpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBPYmplY3QgY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggU3RyaW5nIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChzdHJpbmcpJyk7Cn0KCi8vQ0hFQ0sjNAppZiAoIG5fb2JqICE9IHN0cikgewogICRFUlJPUignIzQ6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBTdHJpbmcgYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KHN0cmluZyknKTsKfQoKLy9DSEVDSyM1CmlmICggbl9vYmogPT09IHN0cikgewogICRFUlJPUignIzU6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBTdHJpbmcgYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KHN0cmluZyknKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.2.1_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTNfVDMiLAoKcGF0aDogIjE1LjIuMi4xLCA4LjYiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCB2YWx1ZSBpcyBzdW0gb2YgZW1wdHkgc3RyaW5nIGFuZCBudW1iZXIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBuX29iaiA9IG5ldyBPYmplY3QoIiIrMSk7CgovL0NIRUNLIzIKaWYgKG5fb2JqLmNvbnN0cnVjdG9yICE9PSBTdHJpbmcpIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBPYmplY3QgY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggU3RyaW5nIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChzdHJpbmcpJyk7Cn0KCi8vQ0hFQ0sjMwppZiAodHlwZW9mIG5fb2JqICE9PSAnb2JqZWN0JykgewogICRFUlJPUignIzM6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBTdHJpbmcgYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KHN0cmluZyknKTsKfQoKLy9DSEVDSyM0CmlmICggbl9vYmogIT0gIjEiKSB7CiAgJEVSUk9SKCcjNDogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIFN0cmluZyBhcmd1bWVudCByZXR1cm4gVG9PYmplY3Qoc3RyaW5nKScpOwp9CgovL0NIRUNLIzUKaWYgKCBuX29iaiA9PT0gIjEiKSB7CiAgJEVSUk9SKCcjNTogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIFN0cmluZyBhcmd1bWVudCByZXR1cm4gVG9PYmplY3Qoc3RyaW5nKScpOwp9CgogfQp9KTsKCg==","id":"S15.2.2.1_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTRfVDEiLAoKcGF0aDogIjE1LjIuMi4xLCA4LjYiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCB2YWx1ZSBpcyBcInRydWVcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvb2wgPSB0cnVlOwoKLy9DSEVDSyMxCmlmICh0eXBlb2YgYm9vbCAgIT09ICdib29sZWFuJykgewogICRGQUlMKCcjMTogdHJ1ZSBpcyBOT1QgYSBib29sZWFuJyk7Cn0KCnZhciBuX29iaiA9IG5ldyBPYmplY3QoYm9vbCk7CgovL0NIRUNLIzIKaWYgKG5fb2JqLmNvbnN0cnVjdG9yICE9PSBCb29sZWFuKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIEJvb2xlYW4gYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KGJvb2xlYW4pJyk7Cn0KCi8vQ0hFQ0sjMwppZiAodHlwZW9mIG5fb2JqICE9PSAnb2JqZWN0JykgewogICRFUlJPUignIzM6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBCb29sZWFuIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChib29sZWFuKScpOwp9CgovL0NIRUNLIzQKaWYgKCBuX29iaiAhPSBib29sKSB7CiAgJEVSUk9SKCcjNDogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIEJvb2xlYW4gYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KGJvb2xlYW4pJyk7Cn0KCi8vQ0hFQ0sjNQppZiAoIG5fb2JqID09PSBib29sKSB7CiAgJEVSUk9SKCcjNTogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIEJvb2xlYW4gYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KGJvb2xlYW4pJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.2.1_A4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTRfVDIiLAoKcGF0aDogIjE1LjIuMi4xLCA4LjYiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCB2YWx1ZSBpcyBcImZhbHNlXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBib29sID0gZmFsc2U7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBib29sICAhPT0gJ2Jvb2xlYW4nKSB7CiAgJEZBSUwoJyMxOiBmYWxzZSBpcyBOT1QgYSBib29sZWFuJyk7Cn0KCnZhciBuX29iaiA9IG5ldyBPYmplY3QoYm9vbCk7CgovL0NIRUNLIzIKaWYgKG5fb2JqLmNvbnN0cnVjdG9yICE9PSBCb29sZWFuKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIEJvb2xlYW4gYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KGJvb2xlYW4pJyk7Cn0KCi8vQ0hFQ0sjMwppZiAodHlwZW9mIG5fb2JqICE9PSAnb2JqZWN0JykgewogICRFUlJPUignIzM6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBCb29sZWFuIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChib29sZWFuKScpOwp9CgovL0NIRUNLIzQKaWYgKCBuX29iaiAhPSBib29sKSB7CiAgJEVSUk9SKCcjNDogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIEJvb2xlYW4gYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KGJvb2xlYW4pJyk7Cn0KCi8vQ0hFQ0sjNQppZiAoIG5fb2JqID09PSBib29sKSB7CiAgJEVSUk9SKCcjNTogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIEJvb2xlYW4gYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KGJvb2xlYW4pJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.2.1_A4_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTRfVDMiLAoKcGF0aDogIjE1LjIuMi4xLCA4LjYiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCB2YWx1ZSBpcyBib29sZWFuIGV4cHJlc3Npb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBuX29iaiA9IG5ldyBPYmplY3QoKDE9PT0xKSYmIShmYWxzZSkpOwoKLy9DSEVDSyMyCmlmIChuX29iai5jb25zdHJ1Y3RvciAhPT0gQm9vbGVhbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBCb29sZWFuIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChib29sZWFuKScpOwp9CgovL0NIRUNLIzMKaWYgKHR5cGVvZiBuX29iaiAhPT0gJ29iamVjdCcpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBPYmplY3QgY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggQm9vbGVhbiBhcmd1bWVudCByZXR1cm4gVG9PYmplY3QoYm9vbGVhbiknKTsKfQoKLy9DSEVDSyM0CmlmICggbl9vYmogIT0gdHJ1ZSkgewogICRFUlJPUignIzQ6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBCb29sZWFuIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChib29sZWFuKScpOwp9CgovL0NIRUNLIzUKaWYgKCBuX29iaiA9PT0gdHJ1ZSkgewogICRFUlJPUignIzU6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBCb29sZWFuIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChib29sZWFuKScpOwp9CgogfQp9KTsKCg==","id":"S15.2.2.1_A4_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTVfVDEiLAoKcGF0aDogIjE1LjIuMi4xLCA4LjYiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCB2YWx1ZSBpcyBhbnkgbnVtYmVyIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgbnVtID0gMS4wOwoKLy9DSEVDSyMxCmlmICh0eXBlb2YgbnVtICAhPT0gJ251bWJlcicpIHsKICAkRkFJTCgnIzE6IDEuMCBpcyBOT1QgYSBudW1iZXInKTsKfQoKdmFyIG5fb2JqID0gbmV3IE9iamVjdChudW0pOwoKLy9DSEVDSyMyCmlmIChuX29iai5jb25zdHJ1Y3RvciAhPT0gTnVtYmVyKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIE51bWJlciBhcmd1bWVudCByZXR1cm4gVG9PYmplY3QobnVtYmVyKScpOwp9CgovL0NIRUNLIzMKaWYgKHR5cGVvZiBuX29iaiAhPT0gJ29iamVjdCcpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBPYmplY3QgY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggTnVtYmVyIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChudW1iZXIpJyk7Cn0KCi8vQ0hFQ0sjNAppZiAoIG5fb2JqICE9IG51bSkgewogICRFUlJPUignIzQ6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBOdW1iZXIgYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KG51bWJlciknKTsKfQoKLy9DSEVDSyM1CmlmICggbl9vYmogPT09IG51bSkgewogICRFUlJPUignIzU6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBOdW1iZXIgYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KG51bWJlciknKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.2.1_A5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTVfVDIiLAoKcGF0aDogIjE1LjIuMi4xLCA4LjYiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCB2YWx1ZSBpcyBOYU4iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBudW0gPSBOYU47CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBudW0gICE9PSAnbnVtYmVyJykgewogICRGQUlMKCcjMTogTmFOIGlzIE5PVCBhIG51bWJlcicpOwp9Cgp2YXIgbl9vYmogPSBuZXcgT2JqZWN0KG51bSk7CgovL0NIRUNLIzIKaWYgKG5fb2JqLmNvbnN0cnVjdG9yICE9PSBOdW1iZXIpIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBPYmplY3QgY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggTnVtYmVyIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChudW1iZXIpJyk7Cn0KCi8vQ0hFQ0sjMwppZiAodHlwZW9mIG5fb2JqICE9PSAnb2JqZWN0JykgewogICRFUlJPUignIzM6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBOdW1iZXIgYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KG51bWJlciknKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.2.1_A5_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTVfVDMiLAoKcGF0aDogIjE1LjIuMi4xLCA4LjYiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCB2YWx1ZSBpcyBJbmZpbml0eSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIG51bSA9IEluZmluaXR5OwoKLy9DSEVDSyMxCmlmICh0eXBlb2YgbnVtICAhPT0gJ251bWJlcicpIHsKICAkRkFJTCgnIzE6IEluZmluaXR5IGlzIE5PVCBhIG51bWJlcicpOwp9Cgp2YXIgbl9vYmogPSBuZXcgT2JqZWN0KG51bSk7CgovL0NIRUNLIzIKaWYgKG5fb2JqLmNvbnN0cnVjdG9yICE9PSBOdW1iZXIpIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBPYmplY3QgY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggTnVtYmVyIGFyZ3VtZW50IHJldHVybiBUb09iamVjdChudW1iZXIpJyk7Cn0KCi8vQ0hFQ0sjMwppZiAodHlwZW9mIG5fb2JqICE9PSAnb2JqZWN0JykgewogICRFUlJPUignIzM6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBOdW1iZXIgYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KG51bWJlciknKTsKfQoKLy9DSEVDSyM0CmlmICggbl9vYmogIT0gbnVtKSB7CiAgJEVSUk9SKCcjNDogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIE51bWJlciBhcmd1bWVudCByZXR1cm4gVG9PYmplY3QobnVtYmVyKScpOwp9CgovL0NIRUNLIzUKaWYgKCBuX29iaiA9PT0gbnVtKSB7CiAgJEVSUk9SKCcjNTogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIE51bWJlciBhcmd1bWVudCByZXR1cm4gVG9PYmplY3QobnVtYmVyKScpOwp9CgogfQp9KTsKCg==","id":"S15.2.2.1_A5_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTVfVDQiLAoKcGF0aDogIjE1LjIuMi4xLCA4LjYiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCB2YWx1ZSBpcyBudW1lcmljIGV4cHJlc3Npb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBuX29iaiA9IG5ldyBPYmplY3QoIDIqKFtdLmxlbmd0aCArIHtxOjF9WyJxIl0pKTsKCi8vQ0hFQ0sjMgppZiAobl9vYmouY29uc3RydWN0b3IgIT09IE51bWJlcikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBOdW1iZXIgYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KG51bWJlciknKTsKfQoKLy9DSEVDSyMzCmlmICh0eXBlb2Ygbl9vYmogIT09ICdvYmplY3QnKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIE51bWJlciBhcmd1bWVudCByZXR1cm4gVG9PYmplY3QobnVtYmVyKScpOwp9CgovL0NIRUNLIzQKaWYgKCBuX29iaiAhPSAyKSB7CiAgJEVSUk9SKCcjNDogV2hlbiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIE51bWJlciBhcmd1bWVudCByZXR1cm4gVG9PYmplY3QobnVtYmVyKScpOwp9CgovL0NIRUNLIzUKaWYgKCBuX29iaiA9PT0gMikgewogICRFUlJPUignIzU6IFdoZW4gdGhlIE9iamVjdCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBOdW1iZXIgYXJndW1lbnQgcmV0dXJuIFRvT2JqZWN0KG51bWJlciknKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.2.1_A5_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTZfVDEiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgYW4gb2JqZWN0IHdpdGggXCJuZXcgT2JqZWN0KDEsMiwzKVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqID0gbmV3IE9iamVjdCgxLDIsMyk7CgovL0NIRUNLIzEKaWYgKG9iai5jb25zdHJ1Y3RvciAhPT0gTnVtYmVyKSB7CiAgJEVSUk9SKCcjMTogU2luY2UgT2JqZWN0IGFzIGEgZnVuY3Rpb24gY2FsbGluZyBpcyB0aGUgc2FtZSBhcyBmdW5jdGlvbiBjYWxsaW5nIGxpc3Qgb2YgYXJndW1lbnRzIGNhbiBhcHBlYXJzIGluIGJyYWNlczsnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqICE9PSAib2JqZWN0IikgewogICRFUlJPUignIzI6IFNpbmNlIE9iamVjdCBhcyBhIGZ1bmN0aW9uIGNhbGxpbmcgaXMgdGhlIHNhbWUgYXMgZnVuY3Rpb24gY2FsbGluZyBsaXN0IG9mIGFyZ3VtZW50cyBjYW4gYXBwZWFycyBpbiBicmFjZXM7Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoKG9iaiAhPSAxKXx8KG9iaiA9PT0gMSkpIHsKICAkRVJST1IoJzMjOiBTaW5jZSBPYmplY3QgYXMgYSBmdW5jdGlvbiBjYWxsaW5nIGlzIHRoZSBzYW1lIGFzIGZ1bmN0aW9uIGNhbGxpbmcgbGlzdCBvZiBhcmd1bWVudHMgY2FuIGFwcGVhcnMgaW4gYnJhY2VzOycpOwp9CgogfQp9KTsKCg==","id":"S15.2.2.1_A6_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTZfVDIiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgYW4gb2JqZWN0IHdpdGggXCJuZXcgT2JqZWN0KG51bGwsMiwzKVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqID0gbmV3IE9iamVjdChudWxsLDIsMyk7CgovL0NIRUNLIzEKaWYgKG9iai5jb25zdHJ1Y3RvciAhPT0gT2JqZWN0KSB7CiAgJEVSUk9SKCcjMTogU2luY2UgT2JqZWN0IGFzIGEgZnVuY3Rpb24gY2FsbGluZyBpcyB0aGUgc2FtZSBhcyBmdW5jdGlvbiBjYWxsaW5nIGxpc3Qgb2YgYXJndW1lbnRzIGNhbiBhcHBlYXJzIGluIGJyYWNlczsnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqICE9PSAib2JqZWN0IikgewogICRFUlJPUignIzI6IFNpbmNlIE9iamVjdCBhcyBhIGZ1bmN0aW9uIGNhbGxpbmcgaXMgdGhlIHNhbWUgYXMgZnVuY3Rpb24gY2FsbGluZyBsaXN0IG9mIGFyZ3VtZW50cyBjYW4gYXBwZWFycyBpbiBicmFjZXM7Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.2.1_A6_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4yLjFfQTZfVDMiLAoKcGF0aDogIjE1LjIuMi4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgYW4gb2JqZWN0IHdpdGggXCJuZXcgT2JqZWN0KChudWxsLDIsMyksMiwzKVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqID0gbmV3IE9iamVjdCgobnVsbCwyLDMpLDEsMik7CgovL0NIRUNLIzEKaWYgKG9iai5jb25zdHJ1Y3RvciAhPT0gTnVtYmVyKSB7CiAgJEVSUk9SKCcjMTogU2luY2UgT2JqZWN0IGFzIGEgZnVuY3Rpb24gY2FsbGluZyBpcyB0aGUgc2FtZSBhcyBmdW5jdGlvbiBjYWxsaW5nIGxpc3Qgb2YgYXJndW1lbnRzIGNhbiBhcHBlYXJzIGluIGJyYWNlczsnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqICE9PSAib2JqZWN0IikgewogICRFUlJPUignIzI6IFNpbmNlIE9iamVjdCBhcyBhIGZ1bmN0aW9uIGNhbGxpbmcgaXMgdGhlIHNhbWUgYXMgZnVuY3Rpb24gY2FsbGluZyBsaXN0IG9mIGFyZ3VtZW50cyBjYW4gYXBwZWFycyBpbiBicmFjZXM7Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoKG9iaiAhPSAzKXx8KG9iaiA9PT0gMykpIHsKICAkRVJST1IoJzMjOiBTaW5jZSBPYmplY3QgYXMgYSBmdW5jdGlvbiBjYWxsaW5nIGlzIHRoZSBzYW1lIGFzIGZ1bmN0aW9uIGNhbGxpbmcgbGlzdCBvZiBhcmd1bWVudHMgY2FuIGFwcGVhcnMgaW4gYnJhY2VzOycpOwp9CgogfQp9KTsKCg==","id":"S15.2.2.1_A6_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4zX0ExIiwKCnBhdGg6ICIxNS4yLjMiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBleGlzdGVuY2Ugb2YgdGhlIHByb3BlcnR5IFwicHJvdG90eXBlXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGlmKCFPYmplY3QuaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpKXsKICAkRVJST1IoJyMxOiBUaGUgT2JqZWN0IGNvbnN0cnVjdG9yIGhhcyB0aGUgcHJvcGVydHkgInByb3RvdHlwZSInKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.3_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4zX0EyIiwKCnBhdGg6ICIxNS4yLjMsIDE1LjIuNCIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIEZ1bmN0aW9uLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKE9iamVjdCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vIENIRUNLIwppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihPYmplY3QpKSkgewogICRFUlJPUignIzE6IHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIGlzIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0LicpOwp9CgogfQp9KTsKCg==","id":"S15.2.3_A2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4zX0EzIiwKCnBhdGg6ICIxNS4yLjMsIDE1LjIuNCIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIE9iamVjdC5sZW5ndGgiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZighT2JqZWN0Lmhhc093blByb3BlcnR5KCJsZW5ndGgiKSl7CiAgJEVSUk9SKCcjMTogVGhlIE9iamVjdCBjb25zdHJ1Y3RvciBoYXMgdGhlIHByb3BlcnR5ICJsZW5ndGgiJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoT2JqZWN0Lmxlbmd0aCAhPT0gMSkgewogICRFUlJPUignIzI6IE9iamVjdC5sZW5ndGggcHJvcGVydHkgdmFsdWUgc2hvdWxkIGJlIDEnKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.3_A3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4zLjFfQTEiLAoKcGF0aDogIjE1LjIuMy4xLCAxNS4yLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIFwiT2JqZWN0LnByb3RvdHlwZVwiIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqID0gT2JqZWN0LnByb3RvdHlwZTsKT2JqZWN0LnByb3RvdHlwZSA9IGZ1bmN0aW9uKCl7cmV0dXJuICJzaGlmdGVkIjt9OwoKLy9DSEVDSyMxCmlmIChPYmplY3QucHJvdG90eXBlICE9PSBvYmopIHsKICAkRVJST1IoJyMxOiB0aGUgT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHkuJyk7Cn0KCi8vQ0hFQ0sjMgp0cnkgewogIE9iamVjdC5wcm90b3R5cGUoKTsKICAkRVJST1IoJyMyOiB0aGUgT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHknKTsKfSBjYXRjaCAoZSkgewogIDsKfQoKIH0KfSk7Cgo=","id":"S15.2.3.1_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4zLjFfQTIiLAoKcGF0aDogIjE1LjIuMy4xLCAxNS4yLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBlbnVtZXJhdGluZyBcIk9iamVjdC5wcm90b3R5cGVcIiBwcm9wZXJ0eSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy8gQ0hFQ0sjMQppZiAoT2JqZWN0LnByb3BlcnR5SXNFbnVtZXJhYmxlKCdwcm90b3R5cGUnKSkgewogICRFUlJPUignIzE6IHRoZSBPYmplY3QucHJvdG90eXBlIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgovLyBDSEVDSyMyCnZhciBjb3V0PTA7Cgpmb3IgKHAgaW4gT2JqZWN0KXsKICBpZiAocD09PSJwcm90b3R5cGUiKSBjb3V0Kys7Cn0KCmlmIChjb3V0ICE9PSAwKSB7CiAgJEVSUk9SKCcjMjogdGhlIE9iamVjdC5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.3.1_A2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi4zLjFfQTMiLAoKcGF0aDogIjE1LjIuMy4xLCAxNS4yLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyBcIk9iamVjdC5wcm90b3R5cGVcIiBwcm9wZXJ0eSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGU7CgovL0NIRUNLIzIKaWYgKCEoT2JqZWN0Lmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKSkpIHsKICAkRVJST1IoJyMyOiB0aGUgT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZS4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.3.1_A3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjFfQTFfVDEiLAoKcGF0aDogIjE1LjIuNC4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3RvciAhPT0gT2JqZWN0KSB7CiAgJEVSUk9SKCcjMTogVGhlIGluaXRpYWwgdmFsdWUgb2YgT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3RvciBpcyB0aGUgYnVpbHQtaW4gT2JqZWN0IGNvbnN0cnVjdG9yJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.4.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjFfQTFfVDIiLAoKcGF0aDogIjE1LjIuNC4xIiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgXCJuZXcgT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3RvclwiIGFuZCBjaGVja2luZyBpdHMgcHJvcGVydGllcyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGNvbnN0ciA9IE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3I7Cgp2YXIgb2JqID0gbmV3IGNvbnN0cjsKCi8vIENIRUNLIzAKaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMDogbmV3IE9iamVjdCgpIHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBuYXRpdmUgb2JqZWN0LicpOwp9CgovLyBDSEVDSyMxCmlmIChvYmouY29uc3RydWN0b3IgIT09IE9iamVjdCkgewogICRFUlJPUignIzE6IG5ldyBPYmplY3QoKSBjcmVhdGUgYSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0Jyk7Cn0KCi8vIENIRUNLIzIKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKG9iaikpKSB7CiAgJEVSUk9SKCcjMjogd2hlbiBuZXcgT2JqZWN0KCkgY2FsbHMgdGhlIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgdGhlIG5ld2x5IGNvbnN0cnVjdGVkIG9iamVjdCBpcyBzZXQgdG8gdGhlIE9iamVjdCBwcm90b3R5cGUgb2JqZWN0LicpOwp9CgovLyBDSEVDSyMzCnZhciB0b19zdHJpbmdfcmVzdWx0ID0gJ1tvYmplY3QgJysgJ09iamVjdCcgKyddJzsKaWYgKG9iai50b1N0cmluZygpICE9PSB0b19zdHJpbmdfcmVzdWx0KSB7CiAgJEVSUk9SKCcjMzogd2hlbiBuZXcgT2JqZWN0KCkgY2FsbHMgdGhlIFtbQ2xhc3NdXSBwcm9wZXJ0eSBvZiB0aGUgbmV3bHkgY29uc3RydWN0ZWQgb2JqZWN0IGlzIHNldCB0byAiT2JqZWN0Ii4nKTsKfQoKLy8gQ0hFQ0sjNAppZiAob2JqLnZhbHVlT2YoKS50b1N0cmluZygpICE9PSB0b19zdHJpbmdfcmVzdWx0KSB7CiAgJEVSUk9SKCcjNDogd2hlbiBuZXcgT2JqZWN0KCkgY2FsbHMgdGhlIG5ld2x5IGNvbnN0cnVjdGVkIG9iamVjdCBoYXMgbm8gW1tWYWx1ZV1dIHByb3BlcnR5LicpOwp9CgogfQp9KTsKCg==","id":"S15.2.4.1_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40X0ExX1QxIiwKCnBhdGg6ICIxNS4yLjQsIDguNi4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIE9iamVjdC5wcm90b3R5cGUucHJvdG90eXBlIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvLyBDSEVDSyMxCmlmIChPYmplY3QucHJvdG90eXBlLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogT2JqZWN0IHByb3RvdHlwZSBoYXMgbm90IHByb3RvdHlwZScpOwp9CgogfQp9KTsKCg==","id":"S15.2.4_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40X0EyIiwKCnBhdGg6ICIxNS4yLjQiLAoKZGVzY3JpcHRpb246ICJHZXR0aW5nIHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tDbGFzc11dIHByb3BlcnR5IHdpdGggT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZygpIGZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgdG9zdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKCk7CgovL0NIRUNLIzEKaWYgKHRvc3RyICE9PSAiW29iamVjdCBPYmplY3RdIikgewogICRFUlJPUignIzE6IHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tDbGFzc11dIHByb3BlcnR5IG9mIE9iamVjdCBwcm90b3R5cGUgb2JqZWN0IGlzICJPYmplY3QiJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.4_A2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40X0EzIiwKCnBhdGg6ICIxNS4yLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjYWxsaW5nIE9iamVjdCBwcm90b3R5cGUgYXMgYSBmdW5jdGlvbiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgT2JqZWN0LnByb3RvdHlwZSgpOwogICRGQUlMKCcjMTogU2luY2UgT2JqZWN0IHByb3RvdHlwZSBvYmplY3QgaXMgbm90IGZ1bmN0aW9uIGl0IGhhcyBub3QgW1tjYWxsXV0gbWV0aG9kJyk7Cn0gY2F0Y2ggKGUpIHsKICAkUFJJTlQoZSk7Cn0KCiB9Cn0pOwoK","id":"S15.2.4_A3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40X0E0IiwKCnBhdGg6ICIxNS4yLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBPYmplY3QucHJvdG90eXBlXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIGluc3RhbmNlID0gbmV3IE9iamVjdC5wcm90b3R5cGU7CiAgJEZBSUwoJyMxOiBTaW5jZSBPYmplY3QgcHJvdG90eXBlIG9iamVjdCBpcyBub3QgZnVuY3Rpb24gaXQgaGFzIG5vdCBbW2NyZWF0ZV1dIG1ldGhvZCcpOwp9IGNhdGNoIChlKSB7CiAgJFBSSU5UKGUpOwp9CgogfQp9KTsKCg==","id":"S15.2.4_A4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjJfQTEiLAoKcGF0aDogIjE1LjIuNC4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgdGhlIHR5cGUgb2YgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBhbmQgdGhlIHJldHVybmVkIHJlc3VsdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0eXBlb2YgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IHRvU3RyaW5nIG1ldGhvZCBkZWZpbmVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZygpICE9PSJbb2JqZWN0ICIrIk9iamVjdCIrIl0iKSB7CiAgJEVSUk9SKCcjMjogcmV0dXJuIGEgc3RyaW5nIHZhbHVlIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIHRocmVlIHN0cmluZ3MgIltvYmplY3QgIiwgdGhlIFtbQ2xhc3NdXSBwcm9wZXJ0eSBvZiB0aGlzIG9iamVjdCwgYW5kICJdIicpOwp9CgovL0NIRUNLIzMKaWYgKHt9LnRvU3RyaW5nKCkhPT0iW29iamVjdCAiKyJPYmplY3QiKyJdIikgewogICRFUlJPUignIzM6IHJldHVybiBhIHN0cmluZyB2YWx1ZSBieSBjb25jYXRlbmF0aW5nIHRoZSB0aHJlZSBzdHJpbmdzICJbb2JqZWN0ICIsIHRoZSBbW0NsYXNzXV0gcHJvcGVydHkgb2YgdGhpcyBvYmplY3QsIGFuZCAiXSInKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.4.2_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjJfQTEwIiwKCnBhdGg6ICIxNS4yLjQuMiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9Cgp2YXIgb2JqID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGg7CgpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCA9IGZ1bmN0aW9uKCl7cmV0dXJuICJzaGlmdGVkIjt9OwoKLy9DSEVDSyMyCmlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMjogdGhlIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcgbGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBSZWFkT25seS4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.4.2_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjJfQTExIiwKCnBhdGg6ICIxNS4yLjQuMiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIHRoZSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCBwcm9wZXJ0eSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICghKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuaGFzT3duUHJvcGVydHkoImxlbmd0aCIpKSkgewogICRFUlJPUignIzE6IFRoZSBsZW5ndGggcHJvcGVydHkgb2YgdGhlIHRvU3RyaW5nIG1ldGhvZCBpcyAwJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggIT09IDApIHsKICAkRVJST1IoJyMyOiBUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSB0b1N0cmluZyBtZXRob2QgaXMgMCcpOwp9CgogfQp9KTsKCg==","id":"S15.2.4.2_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjJfQTYiLAoKcGF0aDogIjE1LjIuNC4yLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIHRoZSBwcm90b3R5cGUgcHJvcGVydHkgb2YgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBoYXMgbm90IHByb3RvdHlwZSBwcm9wZXJ0eScrT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5wcm90b3R5cGUpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.4.2_A6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjJfQTciLAoKcGF0aDogIjE1LjIuNC4yLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1wiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgRkFDVE9SWSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7Cgp0cnkgewogIGluc3RhbmNlID0gbmV3IEZBQ1RPUlk7CiAgJEZBSUwoJyMxOiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIGNhblwndCBiZSB1c2VkIGFzIGEgY29uc3RydWN0b3InKTsKfSBjYXRjaCAoZSkgewogICRQUklOVChlKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.4.2_A7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjJfQTgiLAoKcGF0aDogIjE1LjIuNC4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgoKLy8gQ0hFQ0sjMQppZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnbGVuZ3RoJykpIHsKICAkRVJST1IoJyMxOiB0aGUgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCi8vIENIRUNLIzIKZm9yICh2YXIgcCBpbiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKXsKICBpZiAocD09PSJsZW5ndGgiKQogICAgICAgICRFUlJPUignIzI6IHRoZSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udEVudW0nKTsKfQovLwoKIH0KfSk7Cgo=","id":"S15.2.4.2_A8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjJfQTkiLAoKcGF0aDogIjE1LjIuNC4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tuaWcgaWYgZGVsZXRpbmcgb2YgdGhlIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMQppZiAoZGVsZXRlIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoKSB7CiAgJEVSUk9SKCcjMTogVGhlIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RGVsZXRlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzI6IFRoZSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgogfQp9KTsKCg==","id":"S15.2.4.2_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjNfQTEiLAoKcGF0aDogIjE1LjIuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgdGhlIHR5cGUgb2YgT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyBhbmQgdGhlIHJldHVybmVkIHJlc3VsdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0eXBlb2YgT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IHRvTG9jYWxlU3RyaW5nIG1ldGhvZCBkZWZpbmVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZygpICE9PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKCkpIHsKICAkRVJST1IoJyMxOiB0b0xvY2FsZVN0cmluZyBmdW5jdGlvbiByZXR1cm5zIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0b1N0cmluZygpJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoe30udG9Mb2NhbGVTdHJpbmcoKSE9PXt9LnRvU3RyaW5nKCkpIHsKICAkRVJST1IoJyMyOiB0b0xvY2FsZVN0cmluZyBmdW5jdGlvbiByZXR1cm5zIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0b1N0cmluZygpJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.4.3_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjNfQTEwIiwKCnBhdGg6ICIxNS4yLjQuMyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9Cgp2YXIgb2JqID0gT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy5sZW5ndGg7CgpPYmplY3QucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmxlbmd0aCA9IGZ1bmN0aW9uKCl7cmV0dXJuICJzaGlmdGVkIjt9OwoKLy9DSEVDSyMyCmlmIChPYmplY3QucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmxlbmd0aCAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMjogdGhlIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcgbGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBSZWFkT25seS4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.4.3_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjNfQTExIiwKCnBhdGg6ICIxNS4yLjQuMyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIHRoZSBPYmplY3QucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmxlbmd0aCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICghKE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcuaGFzT3duUHJvcGVydHkoImxlbmd0aCIpKSkgewogICRFUlJPUignIzE6IFRoZSBsZW5ndGggcHJvcGVydHkgb2YgdGhlIHRvTG9jYWxlU3RyaW5nIG1ldGhvZCBpcyAwJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy5sZW5ndGggIT09IDApIHsKICAkRVJST1IoJyMyOiBUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSB0b0xvY2FsZVN0cmluZyBtZXRob2QgaXMgMCcpOwp9CgogfQp9KTsKCg==","id":"S15.2.4.3_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjNfQTYiLAoKcGF0aDogIjE1LjIuNC4zLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIHRoZSBwcm90b3R5cGUgcHJvcGVydHkgb2YgT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChPYmplY3QucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyBoYXMgbm90IHByb3RvdHlwZSBwcm9wZXJ0eScrT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy5wcm90b3R5cGUpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.4.3_A6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjNfQTciLAoKcGF0aDogIjE1LjIuNC4zLCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZ1wiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgRkFDVE9SWSA9IE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmc7Cgp0cnkgewogIGluc3RhbmNlID0gbmV3IEZBQ1RPUlk7CiAgJEZBSUwoJyMxOiBPYmplY3QucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nIGNhblwndCBiZSB1c2VkIGFzIGEgY29uc3RydWN0b3InKTsKfSBjYXRjaCAoZSkgewogICRQUklOVChlKTsKCn0KCiB9Cn0pOwoK","id":"S15.2.4.3_A7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjNfQTgiLAoKcGF0aDogIjE1LjIuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgoKLy8gQ0hFQ0sjMQppZiAoT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnbGVuZ3RoJykpIHsKICAkRVJST1IoJyMxOiB0aGUgT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCi8vIENIRUNLIzIKZm9yIChwIGluIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcpewogIGlmIChwPT09Imxlbmd0aCIpCiAgICAgICAgJEVSUk9SKCcjMjogdGhlIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.4.3_A8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjNfQTkiLAoKcGF0aDogIjE1LjIuNC4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tuaWcgaWYgZGVsZXRpbmcgb2YgdGhlIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMQppZiAoZGVsZXRlIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcubGVuZ3RoKSB7CiAgJEVSUk9SKCcjMTogVGhlIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RGVsZXRlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShPYmplY3QucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzI6IFRoZSBPYmplY3QucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgogfQp9KTsKCg==","id":"S15.2.4.3_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTEwIiwKCnBhdGg6ICIxNS4yLjQuNCIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZi5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShPYmplY3QucHJvdG90eXBlLnZhbHVlT2YuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9Cgp2YXIgb2JqID0gT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mLmxlbmd0aDsKCk9iamVjdC5wcm90b3R5cGUudmFsdWVPZi5sZW5ndGggPSBmdW5jdGlvbigpe3JldHVybiAic2hpZnRlZCI7fTsKCi8vQ0hFQ0sjMgppZiAoT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mLmxlbmd0aCAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMjogdGhlIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZiBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5LicpOwp9CgogfQp9KTsKCg==","id":"S15.2.4.4_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTExIiwKCnBhdGg6ICIxNS4yLjQuNCIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIHRoZSBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YubGVuZ3RoIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mLmhhc093blByb3BlcnR5KCJsZW5ndGgiKSkpIHsKICAkRVJST1IoJyMxOiBUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSB0b09iamVjdCBtZXRob2QgaXMgMCcpOwp9CgovL0NIRUNLIzIKaWYgKE9iamVjdC5wcm90b3R5cGUudmFsdWVPZi5sZW5ndGggIT09IDApIHsKICAkRVJST1IoJyMyOiBUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSB0b09iamVjdCBtZXRob2QgaXMgMCcpOwp9CgogfQp9KTsKCg==","id":"S15.2.4.4_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTFfVDEiLAoKcGF0aDogIjE1LjIuNC40IiwKCmRlc2NyaXB0aW9uOiAiXCJ0aGlzXCIgdmFsdWUgaXMgYSBudW1iZXIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAodHlwZW9mIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZiAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IHZhbHVlT2YgbWV0aG9kIGRlZmluZWQnKTsKfQoKdmFyIG9iaj1uZXcgT2JqZWN0KDEuMSk7CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBvYmoudmFsdWVPZiAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzI6IHZhbHVlT2YgbWV0aG9kIGFjY2Vzc2VkJyk7Cn0KCi8vQ0hFQ0sjMwppZiAob2JqLnZhbHVlT2YoKSE9PTEuMSkgewogICRFUlJPUignIzM6IFRoZSB2YWx1ZU9mIG1ldGhvZCByZXR1cm5zIGl0cyB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.2.4.4_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTFfVDIiLAoKcGF0aDogIjE1LjIuNC40IiwKCmRlc2NyaXB0aW9uOiAiXCJ0aGlzXCIgdmFsdWUgaXMgYSBib29sZWFuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHR5cGVvZiBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMxOiB2YWx1ZU9mIG1ldGhvZCBkZWZpbmVkJyk7Cn0KCnZhciBvYmo9bmV3IE9iamVjdCh0cnVlKTsKCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iai52YWx1ZU9mICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMjogdmFsdWVPZiBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMzCmlmIChvYmoudmFsdWVPZigpIT09dHJ1ZSkgewogICRFUlJPUignIzM6IFRoZSB2YWx1ZU9mIG1ldGhvZCByZXR1cm5zIGl0cyB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.2.4.4_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTFfVDMiLAoKcGF0aDogIjE1LjIuNC40IiwKCmRlc2NyaXB0aW9uOiAiXCJ0aGlzXCIgdmFsdWUgaXMgYSBzdHJpbmciLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAodHlwZW9mIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZiAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IHZhbHVlT2YgbWV0aG9kIGRlZmluZWQnKTsKfQoKdmFyIG9iaj1uZXcgT2JqZWN0KCJncmVlbmZpZWxkIik7CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBvYmoudmFsdWVPZiAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzI6IHZhbHVlT2YgbWV0aG9kIGFjY2Vzc2VkJyk7Cn0KCi8vQ0hFQ0sjMwppZiAob2JqLnZhbHVlT2YoKSE9PSJncmVlbmZpZWxkIikgewogICRFUlJPUignIzM6IFRoZSB2YWx1ZU9mIG1ldGhvZCByZXR1cm5zIGl0cyB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.2.4.4_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTFfVDQiLAoKcGF0aDogIjE1LjIuNC40IiwKCmRlc2NyaXB0aW9uOiAiXCJ0aGlzXCIgdmFsdWUgaXMgYW4gb2JqZWN0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHR5cGVvZiBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMxOiB2YWx1ZU9mIG1ldGhvZCBkZWZpbmVkJyk7Cn0KCnZhciBvYmo9bmV3IE9iamVjdDsKCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iai52YWx1ZU9mICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMjogdmFsdWVPZiBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMzCmlmIChvYmoudmFsdWVPZigpIT09b2JqKSB7CiAgJEVSUk9SKCcjMzogVGhlIHZhbHVlT2YgbWV0aG9kIHJldHVybnMgaXRzIHRoaXMgdmFsdWUnKTsKfQoKCiB9Cn0pOwoK","id":"S15.2.4.4_A1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTFfVDUiLAoKcGF0aDogIjE1LjIuNC40IiwKCmRlc2NyaXB0aW9uOiAiXCJ0aGlzXCIgdmFsdWUgaXMgXCJudWxsXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAodHlwZW9mIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZiAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IHZhbHVlT2YgbWV0aG9kIGRlZmluZWQnKTsKfQoKdmFyIG9iaj1uZXcgT2JqZWN0KG51bGwpOwoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqLnZhbHVlT2YgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMyOiB2YWx1ZU9mIG1ldGhvZCBhY2Nlc3NlZCcpOwp9CgovL0NIRUNLIzMKaWYgKG9iai52YWx1ZU9mKCkhPT1vYmopIHsKICAkRVJST1IoJyMzOiBUaGUgdmFsdWVPZiBtZXRob2QgcmV0dXJucyBpdHMgdGhpcyB2YWx1ZScpOwp9CgoKIH0KfSk7Cgo=","id":"S15.2.4.4_A1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTFfVDYiLAoKcGF0aDogIjE1LjIuNC40IiwKCmRlc2NyaXB0aW9uOiAiXCJ0aGlzXCIgdmFsdWUgaXMgXCJ1bmRlZmluZWRcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0eXBlb2YgT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMTogdmFsdWVPZiBtZXRob2QgZGVmaW5lZCcpOwp9Cgp2YXIgb2JqPW5ldyBPYmplY3QodW5kZWZpbmVkKTsKCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iai52YWx1ZU9mICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMjogdmFsdWVPZiBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMzCmlmIChvYmoudmFsdWVPZigpIT09b2JqKSB7CiAgJEVSUk9SKCcjMzogVGhlIHZhbHVlT2YgbWV0aG9kIHJldHVybnMgaXRzIHRoaXMgdmFsdWUnKTsKfQoKCiB9Cn0pOwoK","id":"S15.2.4.4_A1_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTFfVDciLAoKcGF0aDogIjE1LjIuNC40IiwKCmRlc2NyaXB0aW9uOiAiXCJ0aGlzXCIgdmFsdWUgaXMgXCJ2b2lkIDBcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0eXBlb2YgT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMTogdmFsdWVPZiBtZXRob2QgZGVmaW5lZCcpOwp9Cgp2YXIgb2JqPW5ldyBPYmplY3Qodm9pZCAwKTsKCi8vQ0hFQ0sjMgppZiAodHlwZW9mIG9iai52YWx1ZU9mICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMjogdmFsdWVPZiBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMzCmlmIChvYmoudmFsdWVPZigpIT09b2JqKSB7CiAgJEVSUk9SKCcjMzogVGhlIHZhbHVlT2YgbWV0aG9kIHJldHVybnMgaXRzIHRoaXMgdmFsdWUnKTsKfQoKCiB9Cn0pOwoK","id":"S15.2.4.4_A1_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTYiLAoKcGF0aDogIjE1LjIuNC40LCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIHRoZSBwcm90b3R5cGUgcHJvcGVydHkgb2YgT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKE9iamVjdC5wcm90b3R5cGUudmFsdWVPZi5wcm90b3R5cGUgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IE9iamVjdC5wcm90b3R5cGUudmFsdWVPZiBoYXMgbm90IHByb3RvdHlwZSBwcm9wZXJ0eScrT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mLnByb3RvdHlwZSk7Cn0KLy8KCiB9Cn0pOwoK","id":"S15.2.4.4_A6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTciLAoKcGF0aDogIjE1LjIuNC40LCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBGQUNUT1JZID0gT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mOwoKdHJ5IHsKICBpbnN0YW5jZSA9IG5ldyBGQUNUT1JZOwogICRGQUlMKCcjMTogT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mIGNhblwndCBiZSB1c2VkIGFzIGEgY29uc3RydWN0b3InKTsKfSBjYXRjaCAoZSkgewogICRQUklOVChlKTsKCn0KCiB9Cn0pOwoK","id":"S15.2.4.4_A7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTgiLAoKcGF0aDogIjE1LjIuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZi5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMAppZiAoIShPYmplY3QucHJvdG90eXBlLnZhbHVlT2YuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMDogdGhlIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgoKLy8gQ0hFQ0sjMQppZiAoT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdsZW5ndGgnKSkgewogICRFUlJPUignIzE6IHRoZSBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgovLyBDSEVDSyMyCmZvciAocCBpbiBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YpewogIGlmIChwPT09Imxlbmd0aCIpCiAgICAgICAgJEVSUk9SKCcjMjogdGhlIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KLy8KCiB9Cn0pOwoK","id":"S15.2.4.4_A8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjRfQTkiLAoKcGF0aDogIjE1LjIuNC40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tuaWcgaWYgZGVsZXRpbmcgb2YgdGhlIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZi5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMAppZiAoIShPYmplY3QucHJvdG90eXBlLnZhbHVlT2YuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMDogdGhlIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZiBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMQppZiAoZGVsZXRlIE9iamVjdC5wcm90b3R5cGUudmFsdWVPZi5sZW5ndGgpIHsKICAkRVJST1IoJyMxOiBUaGUgT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgovL0NIRUNLIzIKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzI6IFRoZSBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RGVsZXRlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.4.4_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjVfQTEwIiwKCnBhdGg6ICIxNS4yLjQuNSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9Cgp2YXIgb2JqID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5sZW5ndGg7CgpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5Lmxlbmd0aCA9IGZ1bmN0aW9uKCl7cmV0dXJuICJzaGlmdGVkIjt9OwoKLy9DSEVDSyMyCmlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5Lmxlbmd0aCAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMjogdGhlIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkgbGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBSZWFkT25seS4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.4.5_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjVfQTExIiwKCnBhdGg6ICIxNS4yLjQuNSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIHRoZSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5Lmxlbmd0aCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICghKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuaGFzT3duUHJvcGVydHkoImxlbmd0aCIpKSkgewogICRFUlJPUignIzE6IFRoZSBsZW5ndGggcHJvcGVydHkgb2YgdGhlIHRvT2JqZWN0IG1ldGhvZCBpcyAxJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5sZW5ndGggIT09IDEpIHsKICAkRVJST1IoJyMyOiBUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSB0b09iamVjdCBtZXRob2QgaXMgMScpOwp9CgogfQp9KTsKCg==","id":"S15.2.4.5_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjVfQTFfVDEiLAoKcGF0aDogIjE1LjIuNC41IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgdHlwZSBvZiB0aGUgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSBhbmQgdGhlIHJldHVybmVkIHJlc3VsdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0eXBlb2YgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGhhc093blByb3BlcnR5IG1ldGhvZCBpcyBkZWZpbmVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJoYXNPd25Qcm9wZXJ0eSIpKSkgewogICRFUlJPUignIzI6IGhhc093blByb3BlcnR5IG1ldGhvZCB3b3JrcyBwcm9wZXJseScpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.4.5_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjVfQTFfVDIiLAoKcGF0aDogIjE1LjIuNC41IiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgb2YgdGhlIGhhc093blByb3BlcnR5IG1ldGhvZCBpcyBhIGN1c3RvbSBib29sZWFuIHByb3BlcnR5IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHR5cGVvZiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5ICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMTogaGFzT3duUHJvcGVydHkgbWV0aG9kIGlzIGRlZmluZWQnKTsKfQoKdmFyIG9iaiA9IHt0aGVfcHJvcGVydHk6dHJ1ZX07CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBvYmouaGFzT3duUHJvcGVydHkgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMyOiBoYXNPd25Qcm9wZXJ0eSBtZXRob2QgaXMgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMzCmlmIChvYmouaGFzT3duUHJvcGVydHkoImhhc093blByb3BlcnR5IikpIHsKICAkRVJST1IoJyMzOiBoYXNPd25Qcm9wZXJ0eSBtZXRob2Qgd29ya3MgcHJvcGVybHknKTsKfQoKLy9DSEVDSyM0CmlmICghKG9iai5oYXNPd25Qcm9wZXJ0eSgidGhlX3Byb3BlcnR5IikpKSB7CiAgJEVSUk9SKCcjNDogaGFzT3duUHJvcGVydHkgbWV0aG9kIHdvcmtzIHByb3Blcmx5Jyk7Cn0KLy8KCiB9Cn0pOwoK","id":"S15.2.4.5_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjVfQTFfVDMiLAoKcGF0aDogIjE1LjIuNC41IiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgb2YgdGhlIGhhc093blByb3BlcnR5IG1ldGhvZCBpcyBhIGN1c3RvbSBwcm9wZXJ0eSBvZiBhIGZ1bmN0aW9uIG9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIEZBQ1RPUlkgPSBmdW5jdGlvbigpewogICAgdGhpcy5hcHJvcGVydHkgPSAxOwp9OwoKdmFyIGluc3RhbmNlID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5ICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMTogaGFzT3duUHJvcGVydHkgbWV0aG9kIGlzIGRlZmluZWQnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2YgaW5zdGFuY2UuaGFzT3duUHJvcGVydHkgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMyOiBoYXNPd25Qcm9wZXJ0eSBtZXRob2QgaXMgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMzCmlmIChpbnN0YW5jZS5oYXNPd25Qcm9wZXJ0eSgidG9TdHJpbmciKSkgewogICRFUlJPUignIzM6IGhhc093blByb3BlcnR5IG1ldGhvZCB3b3JrcyBwcm9wZXJseScpOwp9CgovL0NIRUNLIzQKaWYgKCEoaW5zdGFuY2UuaGFzT3duUHJvcGVydHkoImFwcm9wZXJ0eSIpKSkgewogICRFUlJPUignIzQ6IGhhc093blByb3BlcnR5IG1ldGhvZCB3b3JrcyBwcm9wZXJseScpOwp9CgoKIH0KfSk7Cgo=","id":"S15.2.4.5_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjVfQTYiLAoKcGF0aDogIjE1LjIuNC41LCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIHRoZSBwcm90b3R5cGUgcHJvcGVydHkgb2YgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSBoYXMgbm90IHByb3RvdHlwZSBwcm9wZXJ0eScrT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5wcm90b3R5cGUpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.4.5_A6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjVfQTciLAoKcGF0aDogIjE1LjIuNC41LCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgRkFDVE9SWSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7Cgp0cnkgewogIGluc3RhbmNlID0gbmV3IEZBQ1RPUlk7CiAgJEZBSUwoJyMxOiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5IGNhblwndCBiZSB1c2VkIGFzIGEgY29uc3RydWN0b3InKTsKfSBjYXRjaCAoZSkgewogICRQUklOVChlKTsKCn0KCiB9Cn0pOwoK","id":"S15.2.4.5_A7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjVfQTgiLAoKcGF0aDogIjE1LjIuNC41IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgoKLy8gQ0hFQ0sjMQppZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnbGVuZ3RoJykpIHsKICAkRVJST1IoJyMxOiB0aGUgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCi8vIENIRUNLIzIKZm9yIChwIGluIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpewogIGlmIChwPT09Imxlbmd0aCIpCiAgICAgICAgJEVSUk9SKCcjMjogdGhlIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.4.5_A8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjVfQTkiLAoKcGF0aDogIjE1LjIuNC41IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZGVsZXRpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMQppZiAoZGVsZXRlIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkubGVuZ3RoKSB7CiAgJEVSUk9SKCcjMTogVGhlIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RGVsZXRlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5Lmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzI6IFRoZSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5Lmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgogfQp9KTsKCg==","id":"S15.2.4.5_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjZfQTEiLAoKcGF0aDogIjE1LjIuNC42IiwKCmRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgdHdvIG9iamVjdHMgd2l0aCB0aGUgc2FtZSBwcm90b3R5cGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGZ1bmN0aW9uIFVTRVJfRkFDVE9SWSggbmFtZSApIHsKICB0aGlzLm5hbWUgPSBuYW1lOwogIHRoaXMuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiBuYW1lO307Cn0KCgpmdW5jdGlvbiBGT1JDRURVU0VSX0ZBQ1RPUlkoIG5hbWUsIGdyYWRlICkgewogICAgdGhpcy5uYW1lID0gbmFtZTsKICB0aGlzLmdyYWRlID0gZ3JhZGU7CiAgdGhpcy5nZXRHcmFkZT1mdW5jdGlvbigpe3JldHVybiBncmFkZTt9Owp9Cgp2YXIgcHJvdG8gPSBuZXcgVVNFUl9GQUNUT1JZKCJub25hbWUiKTsKCkZPUkNFRFVTRVJfRkFDVE9SWS5wcm90b3R5cGUgPSBwcm90bzsKCnZhciBsdWtlID0gbmV3IEZPUkNFRFVTRVJfRkFDVE9SWSgiTHVrZSBTa3l3YWxrZXIiLCAxMik7Ci8vLy8vLwovLyBDSEVDSyMxCmlmKHByb3RvLmlzUHJvdG90eXBlT2YobHVrZSkpewogICRQUklOVCgnIzE6IE5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdHMgaGF2ZSBhbiBpbnRlcm5hbCBwcm9wZXJ0eSBjYWxsZWQgW1tQcm90b3R5cGVdXS4nKTsKfSBlbHNlIHsKICAkRVJST1IoJyMxOiBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3RzIGhhdmUgYW4gaW50ZXJuYWwgcHJvcGVydHkgY2FsbGVkIFtbUHJvdG90eXBlXV0uJyk7Cn0KLy8KLy8vLy8vLy8vCi8vLy8vLwovLyBDSEVDSyMyCmlmKFVTRVJfRkFDVE9SWS5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihsdWtlKSl7CiAgJFBSSU5UKCcjMjogTmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0cyBoYXZlIGFuIGludGVybmFsIHByb3BlcnR5IGNhbGxlZCBbW1Byb3RvdHlwZV1dLicpOwp9IGVsc2UgewogICRFUlJPUignIzI6IG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdHMgaGF2ZSBhbiBpbnRlcm5hbCBwcm9wZXJ0eSBjYWxsZWQgW1tQcm90b3R5cGVdXS4nKTsKfQovLwovLy8vLy8vLy8KLy8vLy8vCi8vIENIRUNLIzMKaWYoTnVtYmVyLmlzUHJvdG90eXBlT2YobHVrZSkpewogICRFUlJPUignIzI6IE5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdHMgaGF2ZSBhbiBpbnRlcm5hbCBwcm9wZXJ0eSBjYWxsZWQgW1tQcm90b3R5cGVdXS4nKTsKfQovLwovLy8vLy8vLy8KCiB9Cn0pOwoK","id":"S15.2.4.6_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjZfQTEwIiwKCnBhdGg6ICIxNS4yLjQuNiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZiBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCnZhciBvYmogPSBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YubGVuZ3RoOwoKT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmxlbmd0aCA9IGZ1bmN0aW9uKCl7cmV0dXJuICJzaGlmdGVkIjt9OwoKLy9DSEVDSyMyCmlmIChPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YubGVuZ3RoICE9PSBvYmopIHsKICAkRVJST1IoJyMyOiB0aGUgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHknKTsKfQoKIH0KfSk7Cgo=","id":"S15.2.4.6_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjZfQTExIiwKCnBhdGg6ICIxNS4yLjQuNiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIHRoZSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5Lmxlbmd0aCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICghKE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5oYXNPd25Qcm9wZXJ0eSgibGVuZ3RoIikpKSB7CiAgJEVSUk9SKCcjMTogdGhlIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZiBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAoT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmxlbmd0aCAhPT0gMSkgewogICRFUlJPUignIzI6IFRoZSBsZW5ndGggcHJvcGVydHkgb2YgdGhlIHRvT2JqZWN0IG1ldGhvZCBpcyAxJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.4.6_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjZfQTYiLAoKcGF0aDogIjE1LjIuNC42LCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIHRoZSBwcm90b3R5cGUgcHJvcGVydHkgb2YgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5wcm90b3R5cGUgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZiBoYXMgbm90IHByb3RvdHlwZSBwcm9wZXJ0eScrT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLnByb3RvdHlwZSk7Cn0KLy8KCiB9Cn0pOwoK","id":"S15.2.4.6_A6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjZfQTciLAoKcGF0aDogIjE1LjIuNC42LCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgbmV3IFwiT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBGQUNUT1JZID0gT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mOwoKdHJ5IHsKICBpbnN0YW5jZSA9IG5ldyBGQUNUT1JZOwogICRGQUlMKCcjMTogT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mIGNhblwndCBiZSB1c2VkIGFzIGEgY29uc3RydWN0b3InKTsKfSBjYXRjaCAoZSkgewogICRQUklOVChlKTsKCn0KCiB9Cn0pOwoK","id":"S15.2.4.6_A7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjZfQTgiLAoKcGF0aDogIjE1LjIuNC42IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tuaWcgaWYgZW51bWVyYXRpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMAppZiAoIShPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMDogdGhlIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZiBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCgovLyBDSEVDSyMxCmlmIChPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSB7CiAgJEVSUk9SKCcjMTogdGhlIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCi8vIENIRUNLIzIKZm9yIChwIGluIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZil7CiAgaWYgKHA9PT0ibGVuZ3RoIikKICAgICAgICAkRVJST1IoJyMyOiB0aGUgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udEVudW0nKTsKfQovLwoKIH0KfSk7Cgo=","id":"S15.2.4.6_A8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjZfQTkiLAoKcGF0aDogIjE1LjIuNC42IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgZGVsZXRpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMAppZiAoIShPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMDogdGhlIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZiBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMQppZiAoZGVsZXRlIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5sZW5ndGgpIHsKICAkRVJST1IoJyMxOiBUaGUgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.4.6_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjdfQTEwIiwKCnBhdGg6ICIxNS4yLjQuNyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCnZhciBvYmogPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmxlbmd0aDsKCk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUubGVuZ3RoID0gZnVuY3Rpb24oKXtyZXR1cm4gInNoaWZ0ZWQiO307CgovL0NIRUNLIzIKaWYgKE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUubGVuZ3RoICE9PSBvYmopIHsKICAkRVJST1IoJyMyOiB0aGUgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.4.7_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjdfQTExIiwKCnBhdGg6ICIxNS4yLjQuNyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIHRoZSB2YWx1ZSBvZiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5Lmxlbmd0aCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICghKE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuaGFzT3duUHJvcGVydHkoImxlbmd0aCIpKSkgewogICRFUlJPUignIzE6IHRoZSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlIGhhcyBsZW5ndGggcHJvcGVydHknKTsKfQoKLy9DSEVDSyMyCmlmIChPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmxlbmd0aCAhPT0gMSkgewogICRFUlJPUignIzI6IFRoZSBsZW5ndGggcHJvcGVydHkgb2YgdGhlIHRvT2JqZWN0IG1ldGhvZCBpcyAxJyk7Cn0KCiB9Cn0pOwoK","id":"S15.2.4.7_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjdfQTFfVDEiLAoKcGF0aDogIjE1LjIuNC43IiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyB0aGUgcHJvcGVydHlJc0VudW1lcmFibGUgbWV0aG9kIGZvciBvYmplY3QgaW4gdGhlIHByb3RvdHlwZSBjaGFpbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0eXBlb2YgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IHByb3BlcnR5SXNFbnVtZXJhYmxlIG1ldGhvZCBpcyBkZWZpbmVkJyk7Cn0KCnZhciBwcm90bz17cm9vdHByb3A6ImF2aXMifTsKCmZ1bmN0aW9uIEFWSVNGQUNUT1JZKG5hbWUpe3RoaXMubmFtZT1uYW1lfTsKCkFWSVNGQUNUT1JZLnByb3RvdHlwZSA9IHByb3RvOwoKdmFyIHNlYWd1bGw9IG5ldyBBVklTRkFDVE9SWSgic2VhZ3VsbCIpOwoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygc2VhZ3VsbC5wcm9wZXJ0eUlzRW51bWVyYWJsZSAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzI6IHByb3BlcnR5SXNFbnVtZXJhYmxlIG1ldGhvZCBpcyBhY2Nlc3NlZCcpOwp9CgovL0NIRUNLIzMKaWYgKCEoc2VhZ3VsbC5wcm9wZXJ0eUlzRW51bWVyYWJsZSgibmFtZSIpKSkgewogICRFUlJPUignIzM6IHByb3BlcnR5SXNFbnVtZXJhYmxlIG1ldGhvZCB3b3JrcyBwcm9wZXJseScpOwp9CgovL0NIRUNLIzQKaWYgKHNlYWd1bGwucHJvcGVydHlJc0VudW1lcmFibGUoInJvb3Rwcm9wIikpIHsKICAkRVJST1IoJyM0OiBwcm9wZXJ0eUlzRW51bWVyYWJsZSBtZXRob2QgZG9lcyBub3QgY29uc2lkZXIgb2JqZWN0cyBpbiB0aGUgcHJvdG90eXBlIGNoYWluJyk7Cn0KLy8KCiB9Cn0pOwoK","id":"S15.2.4.7_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjdfQTJfVDEiLAoKcGF0aDogIjE1LjIuNC43IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgdGhlIHR5cGUgb2YgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSBhbmQgdGhlIHJldHVybmVkIHJlc3VsdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0eXBlb2YgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGhhc093blByb3BlcnR5IG1ldGhvZCBpcyBkZWZpbmVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgicHJvcGVydHlJc0VudW1lcmFibGUiKSkgewogICRFUlJPUignIzI6IGhhc093blByb3BlcnR5IG1ldGhvZCB3b3JrcyBwcm9wZXJseScpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.4.7_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjdfQTJfVDIiLAoKcGF0aDogIjE1LjIuNC43IiwKCmRlc2NyaXB0aW9uOiAiQXJndW1lbnQgb2YgdGhlIHByb3BlcnR5SXNFbnVtZXJhYmxlIG1ldGhvZCBpcyBhIGN1c3RvbSBib29sZWFuIHByb3BlcnR5IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHR5cGVvZiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMTogcHJvcGVydHlJc0VudW1lcmFibGUgbWV0aG9kIGlzIGRlZmluZWQnKTsKfQoKdmFyIG9iaiA9IHt0aGVfcHJvcGVydHk6dHJ1ZX07CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBvYmoucHJvcGVydHlJc0VudW1lcmFibGUgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMyOiBwcm9wZXJ0eUlzRW51bWVyYWJsZSBtZXRob2QgaXMgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMzCmlmICghKG9iai5wcm9wZXJ0eUlzRW51bWVyYWJsZSgidGhlX3Byb3BlcnR5IikpKSB7CiAgJEVSUk9SKCcjMzogcHJvcGVydHlJc0VudW1lcmFibGUgbWV0aG9kIHdvcmtzIHByb3Blcmx5Jyk7Cn0KCi8vQ0hFQ0sjNAp2YXIgYWNjdW09IiI7CmZvcih2YXIgcHJvcCBpbiBvYmopIHsKICBhY2N1bSs9cHJvcDsKfQppZiAoYWNjdW0uaW5kZXhPZigidGhlX3Byb3BlcnR5IikhPT0wKSB7CiAgJEVSUk9SKCcjNDogZW51bWVyYXRpbmcgd29ya3MgcHJvcGVybHknKTsKfQovLwoKIH0KfSk7Cgo=","id":"S15.2.4.7_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjdfQTYiLAoKcGF0aDogIjE1LjIuNC43LCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIHRoZSBwcm90b3R5cGUgcHJvcGVydHkgb2YgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSBoYXMgbm90IHByb3RvdHlwZSBwcm9wZXJ0eScrT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5wcm90b3R5cGUpOwp9Ci8vCgogfQp9KTsKCg==","id":"S15.2.4.7_A6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjdfQTciLAoKcGF0aDogIjE1LjIuNC43LCAxMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgRkFDVE9SWSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7Cgp0cnkgewogIGluc3RhbmNlID0gbmV3IEZBQ1RPUlk7CiAgJEZBSUwoJyMxOiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlIGNhblwndCBiZSB1c2VkIGFzIGEgY29uc3RydWN0b3InKTsKfSBjYXRjaCAoZSkgewogICRQUklOVChlKTsKCn0KCiB9Cn0pOwoK","id":"S15.2.4.7_A7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjdfQTgiLAoKcGF0aDogIjE1LjIuNC43IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCgovLyBDSEVDSyMxCmlmIChPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdsZW5ndGgnKSkgewogICRFUlJPUignIzE6IHRoZSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udEVudW0nKTsKfQoKLy8gQ0hFQ0sjMgpmb3IgKHAgaW4gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSl7CiAgaWYgKHA9PT0ibGVuZ3RoIikKICAgICAgICAkRVJST1IoJyMyOiB0aGUgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KLy8KCiB9Cn0pOwoK","id":"S15.2.4.7_A8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMi40LjdfQTkiLAoKcGF0aDogIjE1LjIuNC43IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZGVsZXRpbmcgdGhlIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSBoYXMgbGVuZ3RoIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMQppZiAoZGVsZXRlIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUubGVuZ3RoKSB7CiAgJEVSUk9SKCcjMTogVGhlIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RGVsZXRlJyk7Cn0KLy8KCiB9Cn0pOwoK","id":"S15.2.4.7_A9"}]}} |