class Rotation;
class CfgSkeletons
{
class Default
{
isDiscrete = 1;
skeletonInherit = "";
skeletonBones[] = {};
};
class Vehicle : Default {};
class Car : Vehicle {};
class Dingo : Car
{
isDiscrete = 1;
skeletonInherit = "Car";
skeletonBones[] =
{
"drivewheel", "",
"wheel_1_1_damper_land","",
"wheel_1_2_damper_land","",
"wheel_1_3_damper_land","",
"wheel_1_4_damper_land","",
"wheel_2_1_damper_land","",
"wheel_2_2_damper_land","",
"wheel_2_3_damper_land","",
"wheel_2_4_damper_land","",
"wheel_1_1_damper","wheel_1_1_damper_land",
"wheel_1_2_damper","wheel_1_2_damper_land",
"wheel_1_3_damper","wheel_1_3_damper_land",
"wheel_1_4_damper","wheel_1_4_damper_land",
"wheel_2_1_damper","wheel_2_1_damper_land",
"wheel_2_2_damper","wheel_2_2_damper_land",
"wheel_2_3_damper","wheel_2_3_damper_land",
"wheel_2_4_damper","wheel_2_4_damper_land",
"wheel_1_1_steering","wheel_1_1_damper",
"wheel_1_2_steering","wheel_1_2_damper",
"wheel_1_3_steering","wheel_1_3_damper",
"wheel_1_4_steering","wheel_1_4_damper",
"wheel_2_1_steering","wheel_2_1_damper",
"wheel_2_2_steering","wheel_2_2_damper",
"wheel_2_3_steering","wheel_2_3_damper",
"wheel_2_4_steering","wheel_2_4_damper",
"wheel_1_1","wheel_1_1_steering",
"wheel_1_2","wheel_1_2_steering",
"wheel_1_3","wheel_1_3_steering",
"wheel_1_4","wheel_1_4_steering",
"wheel_2_1","wheel_2_1_steering",
"wheel_2_2","wheel_2_2_steering",
"wheel_2_3","wheel_2_3_steering",
"wheel_2_4","wheel_2_4_steering",
"wheel_1_1_unhide","wheel_1_1",
"wheel_1_2_unhide","wheel_1_2",
"wheel_1_3_unhide","wheel_1_3",
"wheel_1_4_unhide","wheel_1_4",
"wheel_2_1_unhide","wheel_2_1",
"wheel_2_2_unhide","wheel_2_2",
"wheel_2_3_unhide","wheel_2_3",
"wheel_2_4_unhide","wheel_2_4",
"wheel_1_1_hide","wheel_1_1",
"wheel_1_2_hide","wheel_1_2",
"wheel_1_3_hide","wheel_1_3",
"wheel_1_4_hide","wheel_1_4",
"wheel_2_1_hide","wheel_2_1",
"wheel_2_2_hide","wheel_2_2",
"wheel_2_3_hide","wheel_2_3",
"wheel_2_4_hide","wheel_2_4",
"turret","",
"gun","turret",
"damageHide","",
"damageTurret","turret",
"damageGun","gun",
"ukaz_rychlo","",
"ukaz_rychlo2","",
"ukaz_rpm","",
"indi_speed","",
"indi_rpm","",
"indi_fuel","",
"fuel_1","",
"fuel_01","",
"fuel_2","",
"fuel_3","",
"prop_01","",
"prop_02","",
"prop_2","",
"prop_1","",
"glass1","damageHide",
"glass2","damageHide",
"glass3","damageHide",
"glass4","damageHide",
"reverse_light","",
"daylights","damageHide",
"door1","",
"door2","",
"glass5","damageHide",
};
};
class DingoMG : Dingo
{
isDiscrete = 1;
skeletonInherit = "Dingo";
skeletonBones[] =
{
"bullet001","bullet002",
"bullet002","bullet003",
"bullet003","bullet004",
"bullet004","bullet005",
"bullet005","bullet006",
"bullet006","bullet007",
"bullet007","bullet008",
"bullet008","bullet009",
"bullet009","bullet010",
"bullet010","bullet011",
"bullet011","bullet012",
"bullet012","bullet013",
"bullet013","bullet014",
"bullet014","bullet015",
"bullet015","bullet016",
"bullet016","ammo_belt",
"ammo_belt","gun"
};
};
};
class CfgModels
{
class Default
{
sectionsInherit = "";
sections[] = {};
skeletonName = "";
};
class Vehicle : Default
{
sections[] =
{
"cislo",
"grupa",
"side",
"sektor",
"clan",
"clan_sign",
"podsvit pristroju",
"poskozeni",
"L svetlo",
"P svetlo",
"zasleh"
};
}
class Car : Vehicle
{
sections[] =
{
"brzdove svetlo",
"clan",
"P svetlo",
"L svetlo",
"glass1",
"glass2",
"glass3",
"glass4",
"glass5",
};
class Animations
{
class damageHide
{
type = "hide";
source = "damage";
selection = "damageHide";
hideValue = 1.0;
};
class damageHideVez : damageHide
{
selection = "turret";
};
class damageHideHlaven : damageHide
{
selection = "gun";
};
#define DamageOffset 0.2
class Glass1_destruct
{
type="hide";
selection="glass1";
source="HitGlass1";
minValue = 0;
maxValue = 1;
hidevalue = 0.99999;
};
class Glass2_destruct : Glass1_destruct
{
selection="glass2";
source="HitGlass2";
};
class Glass3_destruct : Glass1_destruct
{
selection="glass3";
source="HitGlass3";
};
class Glass4_destruct : Glass1_destruct
{
selection="glass4";
source="HitGlass4";
};
class Glass5_destruct : Glass1_destruct
{
selection="glass5";
source="HitGlass5";
};
class DrivingWheel : Rotation
{
source="drivingWheel";
selection="drivewheel";
axis="drivewheel_axis";
minValue=-1;
maxValue=1;
angle0=(rad 80);
angle1=(rad -80);
};
class Steering_1_1
{
type="rotationY";
source="drivingWheel";
selection="wheel_1_1_steering";
axis="wheel_1_1_steering_axis";
memory=1;
minValue= -1;
maxValue= 1;
angle0=1.047198;
angle1=-1.047198;
};
class Steering_2_1 : Steering_1_1
{
selection="wheel_2_1_steering";
axis="wheel_2_1_steering_axis";
};
class Wheel_1_1
{
type="rotationX";
source="wheel";
selection="wheel_1_1";
axis="wheel_1_1_axis";
memory=1;
sourceAddress="loop";
minValue=0;
maxValue=1;
angle0=0;
angle1="rad -360";
};
class wheel_2_1 : Wheel_1_1
{
selection="wheel_2_1";
axis="wheel_2_1_axis";
};
class wheel_1_2 : Wheel_1_1
{
selection="wheel_1_2";
axis="wheel_1_2_axis";
};
class wheel_1_3 : Wheel_1_1
{
selection="wheel_1_3";
axis="wheel_1_3_axis";
};
class Wheel_2_2 : Wheel_1_1
{
selection="wheel_2_2";
axis="wheel_2_2_axis";
};
class Wheel_2_3 : Wheel_1_1
{
selection="wheel_2_3";
axis="wheel_2_3_axis";
};
class Wheel_1_4 : Wheel_1_1
{
selection="wheel_1_4";
axis="wheel_1_4_axis";
};
class Wheel_2_4 : Wheel_1_1
{
selection="wheel_2_4";
axis="wheel_2_4_axis";
};
class Wheel_1_1_Damper
{
type="translation";
source="damper";
selection="wheel_1_1_damper_land";
axis="posun wheel_1_1";
animPeriod = 1;
minValue="0";
maxValue="1";
offset0= "0.5";
offset1= "-0.5";
memory=1;
};
class wheel_2_1_Damper : Wheel_1_1_Damper
{
selection="wheel_2_1_damper_land";
};
class wheel_1_2_Damper : Wheel_1_1_Damper
{
selection="wheel_1_2_damper_land";
};
class Wheel_2_2_Damper : Wheel_1_1_Damper
{
selection="wheel_2_2_damper_land";
};
class daylights
{
type="hide";
source="rpm";
selection="daylights";
minValue=-0.8;
maxValue=0.2;
unhidevalue=1;
sourceAddress="clamp";
};
class reverse_light
{
type="Hide";
selection="reverse_light";
sourceAddress="clamp";
source="Gear";
minValue = -1;
maxValue = 0;
hideValue = "0.2";
};
};
};
class Dingo2A2 : Car
{
skeletonName = "Dingo";
sectionsInherit = "Car";
sections[] =
{
"camo1",
"camo2",
"camo3",
"camo4",
"brzdove svetlo",
"clan",
"P svetlo",
"L svetlo",
"glass1",
"glass2",
"glass3",
"glass4",
"glass5",
"cislo",
"grupa",
"side",
"sektor",
"clan",
"clan_sign",
"podsvit pristroju",
"poskozeni",
"L svetlo",
"P svetlo",
"zasleh",
"camonet"
};
class Animations : Animations
{
class damageHide
{
type = "hide";
source = "damage";
selection = "damageHide";
hideValue = 1.0;
};
class damageHideVez : damageHide
{
selection = "turret";
};
class damageHideHlaven : damageHide
{
selection = "gun";
};
class wheel_1_1_destruct
{
type="hide";
selection="wheel_1_1_hide";
source="HitLFWheel";
minValue = 0;
maxValue = 1;
hidevalue = 0.99999;
};
class wheel_1_2_destruct : wheel_1_1_destruct
{
source="HitLBWheel";
selection="wheel_1_2_hide";
};
class wheel_1_3_destruct : wheel_1_1_destruct
{
source="HitLMWheel";
selection="wheel_1_3_hide";
};
class wheel_1_4_destruct : wheel_1_1_destruct
{
source="HitLF2Wheel";
selection="wheel_1_4_hide";
};
class wheel_2_1_destruct : wheel_1_1_destruct
{
source="HitRFWheel";
selection="wheel_2_1_hide";
};
class wheel_2_2_destruct : wheel_1_1_destruct
{
source="HitRBWheel";
selection="wheel_2_2_hide";
};
class wheel_2_3_destruct : wheel_1_1_destruct
{
source="HitRMWheel";
selection="wheel_2_3_hide";
};
class wheel_2_4_destruct : wheel_1_1_destruct
{
source="HitRF2Wheel";
selection="wheel_2_4_hide";
};
class wheel_1_1_destruct_unhide
{
type="hide";
selection="wheel_1_1_unhide";
source="HitLFWheel";
minValue = 0;
maxValue = 1;
hidevalue = 0.00000;
UnHidevalue = 1.00000;
};
class wheel_1_2_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitLBWheel";
selection="wheel_1_2_unhide";
};
class wheel_1_3_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitLMWheel";
selection="wheel_1_3_unhide";
};
class wheel_1_4_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitLF2Wheel";
selection="wheel_1_4_unhide";
};
class wheel_2_1_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitRFWheel";
selection="wheel_2_1_unhide";
};
class wheel_2_2_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitRBWheel";
selection="wheel_2_2_unhide";
};
class wheel_2_3_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitRMWheel";
selection="wheel_2_3_unhide";
};
class wheel_2_4_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitRF2Wheel";
selection="wheel_2_4_unhide";
};
#define DamageOffset 0.2
class wheel_1_1_Damage : wheel_1_1_destruct
{
type = "translation";
axis = "Basic_Damper_Destruct_Axis";
memory = 1;
selection = "wheel_1_1_damper";
source = "HitLFWheel";
minValue = 0.0;
maxValue = 1;
offset0 = 0;
offset1 = DamageOffset;
};
class wheel_1_2_Damage : wheel_1_1_Damage
{
source="HitLBWheel";
selection="wheel_1_2_damper";
};
class wheel_1_3_Damage : wheel_1_1_Damage
{
source="HitLMWheel";
selection="wheel_1_3_damper";
};
class wheel_1_4_Damage : wheel_1_1_Damage
{
source="HitLF2Wheel";
selection="wheel_1_4_damper";
};
class wheel_2_1_Damage : wheel_1_1_Damage
{
source="HitRFWheel";
selection="wheel_2_1_damper";
};
class wheel_2_2_Damage : wheel_1_1_Damage
{
source="HitRBWheel";
selection="wheel_2_2_damper";
};
class wheel_2_3_Damage : wheel_1_1_Damage
{
source="HitRMWheel";
selection="wheel_2_3_damper";
};
class wheel_2_4_Damage : wheel_1_1_Damage
{
source="HitRF2Wheel";
selection="wheel_2_4_damper";
};
class wheel_1_1_Damper_Damage_BackAnim : wheel_1_1_Damage
{
selection="wheel_1_1_damper";
offset1 = -1.2*DamageOffset;
};
class wheel_1_2_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitLBWheel";
selection="wheel_1_2_damper";
};
class wheel_1_3_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitLMWheel";
selection="wheel_1_3_damper";
};
class wheel_1_4_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitLF2Wheel";
selection="wheel_1_4_damper";
};
class wheel_2_1_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitRFWheel";
selection="wheel_2_1_damper";
};
class wheel_2_2_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitRBWheel";
selection="wheel_2_2_damper";
};
class wheel_2_3_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitRMWheel";
selection="wheel_2_3_damper";
};
class wheel_2_4_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitRF2Wheel";
selection="wheel_2_4_damper";
};
class Glass1_destruct
{
type="hide";
selection="glass1";
source="HitGlass1";
minValue = 0;
maxValue = 1;
hidevalue = 0.99999;
};
class Glass2_destruct : Glass1_destruct
{
selection="glass2";
source="HitGlass2";
};
class Glass3_destruct : Glass1_destruct
{
selection="glass3";
source="HitGlass3";
};
class Glass4_destruct : Glass1_destruct
{
selection="glass4";
source="HitGlass4";
};
class Glass5_destruct : Glass1_destruct
{
selection="glass5";
source="HitGlass5";
};
class Wheel_1_1
{
type="rotationX";
source="wheel";
selection="wheel_1_1";
axis="wheel_1_1_axis";
memory=1;
sourceAddress="loop";
minValue=0;
maxValue=1;
angle0=0;
angle1="rad -360";
};
class wheel_2_1 : Wheel_1_1
{
selection="wheel_2_1";
axis="wheel_2_1_axis";
};
class wheel_1_2 : Wheel_1_1
{
selection="wheel_1_2";
axis="wheel_1_2_axis";
};
class wheel_1_3 : Wheel_1_1
{
selection="wheel_1_3";
axis="wheel_1_3_axis";
};
class Wheel_2_2 : Wheel_1_1
{
selection="wheel_2_2";
axis="wheel_2_2_axis";
};
class Wheel_2_3 : Wheel_1_1
{
selection="wheel_2_3";
axis="wheel_2_3_axis";
};
class Wheel_1_4 : Wheel_1_1
{
selection="wheel_1_4";
axis="wheel_1_4_axis";
};
class Wheel_2_4 : Wheel_1_1
{
selection="wheel_2_4";
axis="wheel_2_4_axis";
};
class Wheel_1_1_Damper
{
type="translation";
source="damper";
selection="wheel_1_1_damper_land";
axis="posun wheel_1_1";
animPeriod = 1;
minValue="0";
maxValue="1";
offset0= "0.5";
offset1= "-0.5";
memory=1;
};
class wheel_2_1_Damper : Wheel_1_1_Damper
{
selection="wheel_2_1_damper_land";
};
class wheel_1_2_Damper : Wheel_1_1_Damper
{
selection="wheel_1_2_damper_land";
};
class Wheel_2_2_Damper : Wheel_1_1_Damper
{
selection="wheel_2_2_damper_land";
};
class DrivingWheel
{
type="rotation";
source="drivingWheel";
selection="drivewheel";
axis="drivewheel_axis";
memory=1;
minValue=-1;
maxValue=1;
angle0=(rad 70);
angle1=(rad -70);
};
class Steering_1_1
{
type="rotationY";
source="drivingWheel";
selection="wheel_1_1_steering";
axis="wheel_1_1_steering_axis";
memory=1;
minValue="rad -90";
maxValue="rad +90";
angle0=1.0471981;
angle1=-1.0471981;
};
class Steering_2_1 : Steering_1_1
{
selection="wheel_2_1_steering";
axis="wheel_2_1_steering_axis";
angle0=1.0471981;
angle1=-1.0471981;
};
class IndicatorFuel : Rotation
{
type="rotation";
source="fuel";
selection="indi_fuel";
axis="axis_fuel";
memory=1;
minValue=0.000000;
maxValue=1.000000;
angle0=-0.087266;
angle1=1.570797;
};
// speed from 0 to 40 kmh
class IndicatorSpeed40 : Rotation
{
type = "rotation";
source="speed";
selection="indi_speed";
axis="axis_speed";
memory=1;
minValue=0.000000;
maxValue=11.111;
angle0="rad -36";
angle1="rad +54";
};
// speed from 40 to 80
class IndicatorSpeed80 : Rotation
{
type = "rotation";
source="speed";
selection="indi_speed";
axis="axis_speed";
memory=1;
minValue=11.112;
maxValue=22.222;
angle0=0;
angle1="rad +77";
};
// speed from 80 to 125
class IndicatorSpeed125 : Rotation
{
type = "rotation";
source="speed";
selection="indi_speed";
axis="axis_speed";
memory=1;
minValue=22.223;
maxValue=34.722;
angle0=0;
angle1="rad +82";
};
class IndicatorRPM : Rotation
{
type = "rotation";
source="rpm";
selection="indi_rpm";
axis="axis_rpm";
memory=1;
minValue=0;
maxValue=1;
angle0="rad -206";
angle1="rad 29";
};
class daylights
{
type="hide";
source="rpm";
selection="daylights";
minValue=-0.8;
maxValue=0.2;
unhidevalue=1;
sourceAddress="clamp";
};
class reverse_light
{
type="Hide";
selection="reverse_light";
sourceAddress="clamp";
source="Gear";
minValue = -1;
maxValue = 0;
hideValue = "0.2";
};
class damageHidedoor1 : damageHide
{
selection="door1";
};
class damageHidedoor2 : damageHide
{
selection="door2";
};
class camoNetHide
{
type = "hide";
source = "user";
selection = "camonet";
hideValue = 1.0;
unhideValue = 0.0;
minValue = 0;
maxValue = 1;
};
};
};
class Dingo2A2MG : Dingo2A2
{
skeletonName = "DingoMG";
sectionsInherit = "Dingo2A2";
sections[] =
{
"camo5",
"turret",
"gun",
"gunnerview",
};
class Animations : Animations
{
class MainTurret
{
type="rotationY";
source="mainTurret";
selection="turret";
axis="axis_turret";
animPeriod=0;
minValue="rad -360";
maxValue="rad +360";
angle0="rad -360";
angle1="rad +360";
memory = 1;
};
class MainGun : MainTurret
{
type="rotationX";
source="mainGun";
selection="gun";
axis="axis_gun";
};
class Magazine_hide
{
type = "hide";
source = "reloadMagazine";
sourceAddress = "mirror";
selection = "magazine";
minValue = 0.0;
maxValue = 0.5;
hideValue = 0.56;
};
class ammo_belt_rotation
{
type = "rotationZ";
source = "ReloadAnim";
selection = "ammo_belt";
axis = "ammo_belt_axis";
memory = 1;
sourceAddress = "loop";
minValue = 0.000000;
maxValue = 1.0000;
angle0 = 0.000000;
angle1 = -0.209440;
};
/*BULLET_HIDE(001,16,100)
BULLET_HIDE(002,16,100)
BULLET_HIDE(003,16,100)
BULLET_HIDE(004,16,100)
BULLET_HIDE(005,16,100)
BULLET_HIDE(006,16,100)
BULLET_HIDE(007,16,100)
BULLET_HIDE(008,16,100)
BULLET_HIDE(009,16,100)
BULLET_HIDE(010,16,100)
BULLET_HIDE(011,16,100)
BULLET_HIDE(012,16,100)
BULLET_HIDE(013,16,100)
BULLET_HIDE(014,16,100)
BULLET_HIDE(015,16,100)
BULLET_HIDE(016,16,100)*/
};
};
};
Y2xhc3MgUm90YXRpb247CgpjbGFzcyBDZmdTa2VsZXRvbnMgIAp7ICAKICAgIGNsYXNzIERlZmF1bHQKICAgIHsKICAgICAgICBpc0Rpc2NyZXRlID0gMTsKICAgICAgICBza2VsZXRvbkluaGVyaXQgPSAiIjsKICAgICAgICBza2VsZXRvbkJvbmVzW10gPSB7fTsKICAgIH07CgogICAgY2xhc3MgVmVoaWNsZSA6IERlZmF1bHQge307CgogICAgY2xhc3MgQ2FyIDogVmVoaWNsZSB7fTsKCiAgICBjbGFzcyBEaW5nbyA6IENhciAgCiAgICB7ICAKICAgICAgICBpc0Rpc2NyZXRlID0gMTsgIAogICAgICAgIHNrZWxldG9uSW5oZXJpdCA9ICJDYXIiOyAgCiAgICAgICAgc2tlbGV0b25Cb25lc1tdID0gIAogICAgICAgIHsgCiAgICAgICAgICAgICJkcml2ZXdoZWVsIiwgIiIsICAKCiAgICAgICAgICAgICJ3aGVlbF8xXzFfZGFtcGVyX2xhbmQiLCIiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzJfZGFtcGVyX2xhbmQiLCIiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzNfZGFtcGVyX2xhbmQiLCIiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzRfZGFtcGVyX2xhbmQiLCIiLCAgCgogICAgICAgICAgICAid2hlZWxfMl8xX2RhbXBlcl9sYW5kIiwiIiwgIAogICAgICAgICAgICAid2hlZWxfMl8yX2RhbXBlcl9sYW5kIiwiIiwgIAogICAgICAgICAgICAid2hlZWxfMl8zX2RhbXBlcl9sYW5kIiwiIiwgIAogICAgICAgICAgICAid2hlZWxfMl80X2RhbXBlcl9sYW5kIiwiIiwgIAoKICAgICAgICAgICAgIndoZWVsXzFfMV9kYW1wZXIiLCJ3aGVlbF8xXzFfZGFtcGVyX2xhbmQiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzJfZGFtcGVyIiwid2hlZWxfMV8yX2RhbXBlcl9sYW5kIiwgIAogICAgICAgICAgICAid2hlZWxfMV8zX2RhbXBlciIsIndoZWVsXzFfM19kYW1wZXJfbGFuZCIsICAKICAgICAgICAgICAgIndoZWVsXzFfNF9kYW1wZXIiLCJ3aGVlbF8xXzRfZGFtcGVyX2xhbmQiLCAgCgogICAgICAgICAgICAid2hlZWxfMl8xX2RhbXBlciIsIndoZWVsXzJfMV9kYW1wZXJfbGFuZCIsICAKICAgICAgICAgICAgIndoZWVsXzJfMl9kYW1wZXIiLCJ3aGVlbF8yXzJfZGFtcGVyX2xhbmQiLCAgCiAgICAgICAgICAgICJ3aGVlbF8yXzNfZGFtcGVyIiwid2hlZWxfMl8zX2RhbXBlcl9sYW5kIiwgIAogICAgICAgICAgICAid2hlZWxfMl80X2RhbXBlciIsIndoZWVsXzJfNF9kYW1wZXJfbGFuZCIsICAKCiAgICAgICAgICAgICJ3aGVlbF8xXzFfc3RlZXJpbmciLCJ3aGVlbF8xXzFfZGFtcGVyIiwgIAogICAgICAgICAgICAid2hlZWxfMV8yX3N0ZWVyaW5nIiwid2hlZWxfMV8yX2RhbXBlciIsICAKICAgICAgICAgICAgIndoZWVsXzFfM19zdGVlcmluZyIsIndoZWVsXzFfM19kYW1wZXIiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzRfc3RlZXJpbmciLCJ3aGVlbF8xXzRfZGFtcGVyIiwgIAoKICAgICAgICAgICAgIndoZWVsXzJfMV9zdGVlcmluZyIsIndoZWVsXzJfMV9kYW1wZXIiLAogICAgICAgICAgICAid2hlZWxfMl8yX3N0ZWVyaW5nIiwid2hlZWxfMl8yX2RhbXBlciIsCiAgICAgICAgICAgICJ3aGVlbF8yXzNfc3RlZXJpbmciLCJ3aGVlbF8yXzNfZGFtcGVyIiwKICAgICAgICAgICAgIndoZWVsXzJfNF9zdGVlcmluZyIsIndoZWVsXzJfNF9kYW1wZXIiLAoKICAgICAgICAgICAgIndoZWVsXzFfMSIsIndoZWVsXzFfMV9zdGVlcmluZyIsCiAgICAgICAgICAgICJ3aGVlbF8xXzIiLCJ3aGVlbF8xXzJfc3RlZXJpbmciLAogICAgICAgICAgICAid2hlZWxfMV8zIiwid2hlZWxfMV8zX3N0ZWVyaW5nIiwKICAgICAgICAgICAgIndoZWVsXzFfNCIsIndoZWVsXzFfNF9zdGVlcmluZyIsCgogICAgICAgICAgICAid2hlZWxfMl8xIiwid2hlZWxfMl8xX3N0ZWVyaW5nIiwKICAgICAgICAgICAgIndoZWVsXzJfMiIsIndoZWVsXzJfMl9zdGVlcmluZyIsCiAgICAgICAgICAgICJ3aGVlbF8yXzMiLCJ3aGVlbF8yXzNfc3RlZXJpbmciLAogICAgICAgICAgICAid2hlZWxfMl80Iiwid2hlZWxfMl80X3N0ZWVyaW5nIiwKCiAgICAgICAgICAgICJ3aGVlbF8xXzFfdW5oaWRlIiwid2hlZWxfMV8xIiwgIAogICAgICAgICAgICAid2hlZWxfMV8yX3VuaGlkZSIsIndoZWVsXzFfMiIsICAKICAgICAgICAgICAgIndoZWVsXzFfM191bmhpZGUiLCJ3aGVlbF8xXzMiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzRfdW5oaWRlIiwid2hlZWxfMV80IiwgIAoKICAgICAgICAgICAgIndoZWVsXzJfMV91bmhpZGUiLCJ3aGVlbF8yXzEiLCAgCiAgICAgICAgICAgICJ3aGVlbF8yXzJfdW5oaWRlIiwid2hlZWxfMl8yIiwgIAogICAgICAgICAgICAid2hlZWxfMl8zX3VuaGlkZSIsIndoZWVsXzJfMyIsICAKICAgICAgICAgICAgIndoZWVsXzJfNF91bmhpZGUiLCJ3aGVlbF8yXzQiLCAgCgogICAgICAgICAgICAid2hlZWxfMV8xX2hpZGUiLCJ3aGVlbF8xXzEiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzJfaGlkZSIsIndoZWVsXzFfMiIsICAKICAgICAgICAgICAgIndoZWVsXzFfM19oaWRlIiwid2hlZWxfMV8zIiwgIAogICAgICAgICAgICAid2hlZWxfMV80X2hpZGUiLCJ3aGVlbF8xXzQiLCAgCgogICAgICAgICAgICAid2hlZWxfMl8xX2hpZGUiLCJ3aGVlbF8yXzEiLCAgCiAgICAgICAgICAgICJ3aGVlbF8yXzJfaGlkZSIsIndoZWVsXzJfMiIsICAKICAgICAgICAgICAgIndoZWVsXzJfM19oaWRlIiwid2hlZWxfMl8zIiwgIAogICAgICAgICAgICAid2hlZWxfMl80X2hpZGUiLCJ3aGVlbF8yXzQiLCAgCgogICAgICAgICAgICAidHVycmV0IiwiIiwgIAogICAgICAgICAgICAiZ3VuIiwidHVycmV0IiwgIAoKICAgICAgICAgICAgImRhbWFnZUhpZGUiLCIiLCAgCiAgICAgICAgICAgICJkYW1hZ2VUdXJyZXQiLCJ0dXJyZXQiLCAgCiAgICAgICAgICAgICJkYW1hZ2VHdW4iLCJndW4iLCAgCgogICAgICAgICAgICAidWthel9yeWNobG8iLCIiLCAgCiAgICAgICAgICAgICJ1a2F6X3J5Y2hsbzIiLCIiLCAgCiAgICAgICAgICAgICJ1a2F6X3JwbSIsIiIsICAKICAgICAgICAgICAgImluZGlfc3BlZWQiLCIiLCAgCiAgICAgICAgICAgICJpbmRpX3JwbSIsIiIsICAKICAgICAgICAgICAgImluZGlfZnVlbCIsIiIsICAKICAgICAgICAgICAgImZ1ZWxfMSIsIiIsICAKICAgICAgICAgICAgImZ1ZWxfMDEiLCIiLCAgCiAgICAgICAgICAgICJmdWVsXzIiLCIiLCAgCiAgICAgICAgICAgICJmdWVsXzMiLCIiLCAgCiAgICAgICAgICAgICJwcm9wXzAxIiwiIiwgIAogICAgICAgICAgICAicHJvcF8wMiIsIiIsICAKICAgICAgICAgICAgInByb3BfMiIsIiIsICAKICAgICAgICAgICAgInByb3BfMSIsIiIsICAKICAgICAgICAgICAgImdsYXNzMSIsImRhbWFnZUhpZGUiLCAgCiAgICAgICAgICAgICJnbGFzczIiLCJkYW1hZ2VIaWRlIiwgIAogICAgICAgICAgICAiZ2xhc3MzIiwiZGFtYWdlSGlkZSIsICAKICAgICAgICAgICAgImdsYXNzNCIsImRhbWFnZUhpZGUiLCAgCiAgICAgICAgICAgICJyZXZlcnNlX2xpZ2h0IiwiIiwgIAogICAgICAgICAgICAiZGF5bGlnaHRzIiwiZGFtYWdlSGlkZSIsICAKICAgICAgICAgICAgImRvb3IxIiwiIiwgIAogICAgICAgICAgICAiZG9vcjIiLCIiLCAgCiAgICAgICAgICAgICJnbGFzczUiLCJkYW1hZ2VIaWRlIiwKICAgICAgICB9OyAgCiAgICB9OwoKICAgIGNsYXNzIERpbmdvTUcgOiBEaW5nbwogICAgewogICAgICAgIGlzRGlzY3JldGUgPSAxOwogICAgICAgIHNrZWxldG9uSW5oZXJpdCA9ICJEaW5nbyI7CiAgICAgICAgc2tlbGV0b25Cb25lc1tdID0KICAgICAgICB7CiAgICAgICAgICAgICJidWxsZXQwMDEiLCJidWxsZXQwMDIiLAogICAgICAgICAgICAiYnVsbGV0MDAyIiwiYnVsbGV0MDAzIiwKICAgICAgICAgICAgImJ1bGxldDAwMyIsImJ1bGxldDAwNCIsCiAgICAgICAgICAgICJidWxsZXQwMDQiLCJidWxsZXQwMDUiLAogICAgICAgICAgICAiYnVsbGV0MDA1IiwiYnVsbGV0MDA2IiwKICAgICAgICAgICAgImJ1bGxldDAwNiIsImJ1bGxldDAwNyIsCiAgICAgICAgICAgICJidWxsZXQwMDciLCJidWxsZXQwMDgiLAogICAgICAgICAgICAiYnVsbGV0MDA4IiwiYnVsbGV0MDA5IiwKICAgICAgICAgICAgImJ1bGxldDAwOSIsImJ1bGxldDAxMCIsCiAgICAgICAgICAgICJidWxsZXQwMTAiLCJidWxsZXQwMTEiLAogICAgICAgICAgICAiYnVsbGV0MDExIiwiYnVsbGV0MDEyIiwKICAgICAgICAgICAgImJ1bGxldDAxMiIsImJ1bGxldDAxMyIsCiAgICAgICAgICAgICJidWxsZXQwMTMiLCJidWxsZXQwMTQiLAogICAgICAgICAgICAiYnVsbGV0MDE0IiwiYnVsbGV0MDE1IiwKICAgICAgICAgICAgImJ1bGxldDAxNSIsImJ1bGxldDAxNiIsCiAgICAgICAgICAgICJidWxsZXQwMTYiLCJhbW1vX2JlbHQiLAogICAgICAgICAgICAiYW1tb19iZWx0IiwiZ3VuIgogICAgICAgIH07CiAgICB9Owp9OyAgCgpjbGFzcyBDZmdNb2RlbHMgIAp7IAogICAgY2xhc3MgRGVmYXVsdAogICAgewogICAgICAgIHNlY3Rpb25zSW5oZXJpdCA9ICIiOwogICAgICAgIHNlY3Rpb25zW10gPSB7fTsKICAgICAgICBza2VsZXRvbk5hbWUgPSAiIjsKICAgIH07CgogICAgY2xhc3MgVmVoaWNsZSA6IERlZmF1bHQKICAgIHsKICAgICAgICBzZWN0aW9uc1tdID0KICAgICAgICB7CiAgICAgICAgICAgICJjaXNsbyIsCiAgICAgICAgICAgICJncnVwYSIsCiAgICAgICAgICAgICJzaWRlIiwKICAgICAgICAgICAgInNla3RvciIsCiAgICAgICAgICAgICJjbGFuIiwKICAgICAgICAgICAgImNsYW5fc2lnbiIsCiAgICAgICAgICAgICJwb2Rzdml0IHByaXN0cm9qdSIsCiAgICAgICAgICAgICJwb3Nrb3plbmkiLAogICAgICAgICAgICAiTCBzdmV0bG8iLAogICAgICAgICAgICAiUCBzdmV0bG8iLAogICAgICAgICAgICAiemFzbGVoIgogICAgICAgIH07CiAgICB9CgogICAgY2xhc3MgQ2FyIDogVmVoaWNsZQogICAgewogICAgICAgIHNlY3Rpb25zW10gPQogICAgICAgIHsKICAgICAgICAgICAgImJyemRvdmUgc3ZldGxvIiwKICAgICAgICAgICAgImNsYW4iLAogICAgICAgICAgICAiUCBzdmV0bG8iLAogICAgICAgICAgICAiTCBzdmV0bG8iLAogICAgICAgICAgICAiZ2xhc3MxIiwKICAgICAgICAgICAgImdsYXNzMiIsCiAgICAgICAgICAgICJnbGFzczMiLAogICAgICAgICAgICAiZ2xhc3M0IiwKICAgICAgICAgICAgImdsYXNzNSIsCiAgICAgICAgfTsKICAgICAgICAKICAgICAgICBjbGFzcyBBbmltYXRpb25zCiAgICAgICAgewogICAgICAgICAgICBjbGFzcyBkYW1hZ2VIaWRlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHR5cGUgPSAiaGlkZSI7CiAgICAgICAgICAgICAgICBzb3VyY2UgPSAiZGFtYWdlIjsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9ICJkYW1hZ2VIaWRlIjsKICAgICAgICAgICAgICAgIGhpZGVWYWx1ZSA9IDEuMDsKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIGNsYXNzIGRhbWFnZUhpZGVWZXogOiBkYW1hZ2VIaWRlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9ICJ0dXJyZXQiOwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgY2xhc3MgZGFtYWdlSGlkZUhsYXZlbiA6IGRhbWFnZUhpZGUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gImd1biI7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICAjZGVmaW5lIERhbWFnZU9mZnNldCAwLjIKCiAgICAgICAgICAgIGNsYXNzIEdsYXNzMV9kZXN0cnVjdAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0eXBlPSJoaWRlIjsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZ2xhc3MxIjsKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0R2xhc3MxIjsKICAgICAgICAgICAgICAgIG1pblZhbHVlID0gMDsgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IDE7IAogICAgICAgICAgICAgICAgaGlkZXZhbHVlID0gMC45OTk5OTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2xhc3MgR2xhc3MyX2Rlc3RydWN0IDogR2xhc3MxX2Rlc3RydWN0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZ2xhc3MyIjsKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0R2xhc3MyIjsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2xhc3MgR2xhc3MzX2Rlc3RydWN0IDogR2xhc3MxX2Rlc3RydWN0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZ2xhc3MzIjsKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0R2xhc3MzIjsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2xhc3MgR2xhc3M0X2Rlc3RydWN0IDogR2xhc3MxX2Rlc3RydWN0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZ2xhc3M0IjsKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0R2xhc3M0IjsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2xhc3MgR2xhc3M1X2Rlc3RydWN0IDogR2xhc3MxX2Rlc3RydWN0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZ2xhc3M1IjsKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0R2xhc3M1IjsKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIGNsYXNzIERyaXZpbmdXaGVlbCA6IFJvdGF0aW9uCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNvdXJjZT0iZHJpdmluZ1doZWVsIjsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZHJpdmV3aGVlbCI7CiAgICAgICAgICAgICAgICBheGlzPSJkcml2ZXdoZWVsX2F4aXMiOwogICAgICAgICAgICAgICAgbWluVmFsdWU9LTE7CiAgICAgICAgICAgICAgICBtYXhWYWx1ZT0xOwogICAgICAgICAgICAgICAgYW5nbGUwPShyYWQgODApOwogICAgICAgICAgICAgICAgYW5nbGUxPShyYWQgLTgwKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2xhc3MgU3RlZXJpbmdfMV8xCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHR5cGU9InJvdGF0aW9uWSI7CiAgICAgICAgICAgICAgICBzb3VyY2U9ImRyaXZpbmdXaGVlbCI7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMV9zdGVlcmluZyI7CiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8xXzFfc3RlZXJpbmdfYXhpcyI7CiAgICAgICAgICAgICAgICBtZW1vcnk9MTsKICAgICAgICAgICAgICAgIG1pblZhbHVlPSAtMTsKICAgICAgICAgICAgICAgIG1heFZhbHVlPSAxOwogICAgICAgICAgICAgICAgYW5nbGUwPTEuMDQ3MTk4OwogICAgICAgICAgICAgICAgYW5nbGUxPS0xLjA0NzE5ODsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2xhc3MgU3RlZXJpbmdfMl8xIDogU3RlZXJpbmdfMV8xCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8xX3N0ZWVyaW5nIjsKICAgICAgICAgICAgICAgIGF4aXM9IndoZWVsXzJfMV9zdGVlcmluZ19heGlzIjsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2xhc3MgV2hlZWxfMV8xCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHR5cGU9InJvdGF0aW9uWCI7CiAgICAgICAgICAgICAgICBzb3VyY2U9IndoZWVsIjsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV8xIjsKICAgICAgICAgICAgICAgIGF4aXM9IndoZWVsXzFfMV9heGlzIjsKICAgICAgICAgICAgICAgIG1lbW9yeT0xOwogICAgICAgICAgICAgICAgc291cmNlQWRkcmVzcz0ibG9vcCI7CiAgICAgICAgICAgICAgICBtaW5WYWx1ZT0wOwogICAgICAgICAgICAgICAgbWF4VmFsdWU9MTsKICAgICAgICAgICAgICAgIGFuZ2xlMD0wOwogICAgICAgICAgICAgICAgYW5nbGUxPSJyYWQgLTM2MCI7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfMSA6IFdoZWVsXzFfMQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMSI7CiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8yXzFfYXhpcyI7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMiA6IFdoZWVsXzFfMQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMiI7CiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8xXzJfYXhpcyI7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMyA6IFdoZWVsXzFfMQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMyI7CiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8xXzNfYXhpcyI7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNsYXNzIFdoZWVsXzJfMiA6IFdoZWVsXzFfMQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMiI7CiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8yXzJfYXhpcyI7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNsYXNzIFdoZWVsXzJfMyA6IFdoZWVsXzFfMQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMyI7CiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8yXzNfYXhpcyI7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNsYXNzIFdoZWVsXzFfNCA6IFdoZWVsXzFfMQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfNCI7CiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8xXzRfYXhpcyI7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNsYXNzIFdoZWVsXzJfNCA6IFdoZWVsXzFfMQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfNCI7CiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8yXzRfYXhpcyI7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNsYXNzIFdoZWVsXzFfMV9EYW1wZXIKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdHlwZT0idHJhbnNsYXRpb24iOwogICAgICAgICAgICAgICAgc291cmNlPSJkYW1wZXIiOwogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzFfZGFtcGVyX2xhbmQiOwogICAgICAgICAgICAgICAgYXhpcz0icG9zdW4gd2hlZWxfMV8xIjsKICAgICAgICAgICAgICAgIGFuaW1QZXJpb2QgPSAxOwogICAgICAgICAgICAgICAgbWluVmFsdWU9IjAiOwogICAgICAgICAgICAgICAgbWF4VmFsdWU9IjEiOwogICAgICAgICAgICAgICAgb2Zmc2V0MD0gIjAuNSI7CiAgICAgICAgICAgICAgICBvZmZzZXQxPSAiLTAuNSI7CiAgICAgICAgICAgICAgICBtZW1vcnk9MTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8xX0RhbXBlciA6IFdoZWVsXzFfMV9EYW1wZXIKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzFfZGFtcGVyX2xhbmQiOwogICAgICAgICAgICB9OwogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzJfRGFtcGVyIDogV2hlZWxfMV8xX0RhbXBlcgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMl9kYW1wZXJfbGFuZCI7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNsYXNzIFdoZWVsXzJfMl9EYW1wZXIgOiBXaGVlbF8xXzFfRGFtcGVyCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8yX2RhbXBlcl9sYW5kIjsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2xhc3MgZGF5bGlnaHRzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHR5cGU9ImhpZGUiOwogICAgICAgICAgICAgICAgc291cmNlPSJycG0iOwogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJkYXlsaWdodHMiOwogICAgICAgICAgICAgICAgbWluVmFsdWU9LTAuODsKICAgICAgICAgICAgICAgIG1heFZhbHVlPTAuMjsKICAgICAgICAgICAgICAgIHVuaGlkZXZhbHVlPTE7CiAgICAgICAgICAgICAgICBzb3VyY2VBZGRyZXNzPSJjbGFtcCI7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIAogICAgICAgICAgICBjbGFzcyByZXZlcnNlX2xpZ2h0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHR5cGU9IkhpZGUiOwogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJyZXZlcnNlX2xpZ2h0IjsKICAgICAgICAgICAgICAgIHNvdXJjZUFkZHJlc3M9ImNsYW1wIjsKICAgICAgICAgICAgICAgIHNvdXJjZT0iR2VhciI7CiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IC0xOwogICAgICAgICAgICAgICAgbWF4VmFsdWUgPSAwOwogICAgICAgICAgICAgICAgaGlkZVZhbHVlID0gIjAuMiI7ICAKICAgICAgICAgICAgfTsKICAgICAgICB9OwogICAgfTsKCiAgICBjbGFzcyBEaW5nbzJBMiA6IENhciAgCiAgICB7ICAKICAgICAgICBza2VsZXRvbk5hbWUgPSAiRGluZ28iOwogICAgICAgIHNlY3Rpb25zSW5oZXJpdCA9ICJDYXIiOwogICAgICAgIHNlY3Rpb25zW10gPQogICAgICAgIHsKICAgICAgICAgICAgImNhbW8xIiwKICAgICAgICAgICAgImNhbW8yIiwKICAgICAgICAgICAgImNhbW8zIiwKICAgICAgICAgICAgImNhbW80IiwKICAgICAgICAgICAgImJyemRvdmUgc3ZldGxvIiwKICAgICAgICAgICAgImNsYW4iLAogICAgICAgICAgICAiUCBzdmV0bG8iLAogICAgICAgICAgICAiTCBzdmV0bG8iLAogICAgICAgICAgICAiZ2xhc3MxIiwKICAgICAgICAgICAgImdsYXNzMiIsCiAgICAgICAgICAgICJnbGFzczMiLAogICAgICAgICAgICAiZ2xhc3M0IiwKICAgICAgICAgICAgImdsYXNzNSIsCiAgICAgICAgICAgICJjaXNsbyIsCiAgICAgICAgICAgICJncnVwYSIsCiAgICAgICAgICAgICJzaWRlIiwKICAgICAgICAgICAgInNla3RvciIsCiAgICAgICAgICAgICJjbGFuIiwKICAgICAgICAgICAgImNsYW5fc2lnbiIsCiAgICAgICAgICAgICJwb2Rzdml0IHByaXN0cm9qdSIsCiAgICAgICAgICAgICJwb3Nrb3plbmkiLAogICAgICAgICAgICAiTCBzdmV0bG8iLAogICAgICAgICAgICAiUCBzdmV0bG8iLAogICAgICAgICAgICAiemFzbGVoIiwKICAgICAgICAgICAgImNhbW9uZXQiCiAgICAgICAgfTsgIAoKICAgICAgICBjbGFzcyBBbmltYXRpb25zIDogQW5pbWF0aW9ucwogICAgICAgIHsgIAogICAgICAgICAgICBjbGFzcyBkYW1hZ2VIaWRlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICB0eXBlID0gImhpZGUiOyAgCiAgICAgICAgICAgICAgICBzb3VyY2UgPSAiZGFtYWdlIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gImRhbWFnZUhpZGUiOyAgCiAgICAgICAgICAgICAgICBoaWRlVmFsdWUgPSAxLjA7ICAKICAgICAgICAgICAgfTsgIAoKICAgICAgICAgICAgY2xhc3MgZGFtYWdlSGlkZVZleiA6IGRhbWFnZUhpZGUgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9ICJ0dXJyZXQiOyAgCiAgICAgICAgICAgIH07ICAKCiAgICAgICAgICAgIGNsYXNzIGRhbWFnZUhpZGVIbGF2ZW4gOiBkYW1hZ2VIaWRlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb24gPSAiZ3VuIjsgIAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV8xX2Rlc3RydWN0ICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICB0eXBlPSJoaWRlIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzFfaGlkZSI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0TEZXaGVlbCI7ICAKICAgICAgICAgICAgICAgIG1pblZhbHVlID0gMDsKICAgICAgICAgICAgICAgIG1heFZhbHVlID0gMTsKICAgICAgICAgICAgICAgIGhpZGV2YWx1ZSA9IDAuOTk5OTk7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzJfZGVzdHJ1Y3QgOiB3aGVlbF8xXzFfZGVzdHJ1Y3QgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0TEJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV8yX2hpZGUiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV8zX2Rlc3RydWN0IDogd2hlZWxfMV8xX2Rlc3RydWN0ICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdExNV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfM19oaWRlIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfNF9kZXN0cnVjdCA6IHdoZWVsXzFfMV9kZXN0cnVjdCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRMRjJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV80X2hpZGUiOyAgCiAgICAgICAgICAgIH07ICAKCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfMV9kZXN0cnVjdCA6IHdoZWVsXzFfMV9kZXN0cnVjdCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRSRldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzFfaGlkZSI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzJfZGVzdHJ1Y3QgOiB3aGVlbF8xXzFfZGVzdHJ1Y3QgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0UkJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8yX2hpZGUiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8zX2Rlc3RydWN0IDogd2hlZWxfMV8xX2Rlc3RydWN0ICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdFJNV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfM19oaWRlIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfNF9kZXN0cnVjdCA6IHdoZWVsXzFfMV9kZXN0cnVjdCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRSRjJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl80X2hpZGUiOyAgCiAgICAgICAgICAgIH07ICAKCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMV9kZXN0cnVjdF91bmhpZGUgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHR5cGU9ImhpZGUiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMV91bmhpZGUiOyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdExGV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IDA7ICAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IDE7ICAgCiAgICAgICAgICAgICAgICBoaWRldmFsdWUgPSAwLjAwMDAwOyAgCiAgICAgICAgICAgICAgICBVbkhpZGV2YWx1ZSA9IDEuMDAwMDA7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzJfZGVzdHJ1Y3RfdW5oaWRlIDogd2hlZWxfMV8xX2Rlc3RydWN0X3VuaGlkZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRMQldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzJfdW5oaWRlIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfM19kZXN0cnVjdF91bmhpZGUgOiB3aGVlbF8xXzFfZGVzdHJ1Y3RfdW5oaWRlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdExNV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfM191bmhpZGUiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV80X2Rlc3RydWN0X3VuaGlkZSA6IHdoZWVsXzFfMV9kZXN0cnVjdF91bmhpZGUgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0TEYyV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfNF91bmhpZGUiOyAgCiAgICAgICAgICAgIH07ICAKCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfMV9kZXN0cnVjdF91bmhpZGUgOiB3aGVlbF8xXzFfZGVzdHJ1Y3RfdW5oaWRlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdFJGV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMV91bmhpZGUiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8yX2Rlc3RydWN0X3VuaGlkZSA6IHdoZWVsXzFfMV9kZXN0cnVjdF91bmhpZGUgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0UkJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8yX3VuaGlkZSI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzNfZGVzdHJ1Y3RfdW5oaWRlIDogd2hlZWxfMV8xX2Rlc3RydWN0X3VuaGlkZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRSTVdoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzNfdW5oaWRlIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfNF9kZXN0cnVjdF91bmhpZGUgOiB3aGVlbF8xXzFfZGVzdHJ1Y3RfdW5oaWRlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdFJGMldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzRfdW5oaWRlIjsgIAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgI2RlZmluZSBEYW1hZ2VPZmZzZXQgMC4yICAKCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMV9EYW1hZ2UgOiB3aGVlbF8xXzFfZGVzdHJ1Y3QgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHR5cGUgPSAidHJhbnNsYXRpb24iOyAgCiAgICAgICAgICAgICAgICBheGlzID0gIkJhc2ljX0RhbXBlcl9EZXN0cnVjdF9BeGlzIjsgIAogICAgICAgICAgICAgICAgbWVtb3J5ID0gMTsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gIndoZWVsXzFfMV9kYW1wZXIiOyAgCiAgICAgICAgICAgICAgICBzb3VyY2UgPSAiSGl0TEZXaGVlbCI7ICAKICAgICAgICAgICAgICAgIG1pblZhbHVlID0gMC4wOyAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IDE7ICAKICAgICAgICAgICAgICAgIG9mZnNldDAgPSAwOyAgCiAgICAgICAgICAgICAgICBvZmZzZXQxID0gRGFtYWdlT2Zmc2V0OyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV8yX0RhbWFnZSA6IHdoZWVsXzFfMV9EYW1hZ2UgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0TEJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV8yX2RhbXBlciI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzNfRGFtYWdlIDogd2hlZWxfMV8xX0RhbWFnZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRMTVdoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzNfZGFtcGVyIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfNF9EYW1hZ2UgOiB3aGVlbF8xXzFfRGFtYWdlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdExGMldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzRfZGFtcGVyIjsgIAogICAgICAgICAgICB9OyAgCgogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzFfRGFtYWdlIDogd2hlZWxfMV8xX0RhbWFnZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRSRldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzFfZGFtcGVyIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfMl9EYW1hZ2UgOiB3aGVlbF8xXzFfRGFtYWdlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdFJCV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMl9kYW1wZXIiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8zX0RhbWFnZSA6IHdoZWVsXzFfMV9EYW1hZ2UgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0Uk1XaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8zX2RhbXBlciI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzRfRGFtYWdlIDogd2hlZWxfMV8xX0RhbWFnZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRSRjJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl80X2RhbXBlciI7ICAKICAgICAgICAgICAgfTsgIAoKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV8xX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gOiB3aGVlbF8xXzFfRGFtYWdlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMV9kYW1wZXIiOyAgCiAgICAgICAgICAgICAgICBvZmZzZXQxID0gLTEuMipEYW1hZ2VPZmZzZXQ7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzJfRGFtcGVyX0RhbWFnZV9CYWNrQW5pbSA6IHdoZWVsXzFfMV9EYW1wZXJfRGFtYWdlX0JhY2tBbmltICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdExCV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMl9kYW1wZXIiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV8zX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gOiB3aGVlbF8xXzFfRGFtcGVyX0RhbWFnZV9CYWNrQW5pbSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRMTVdoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzNfZGFtcGVyIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfNF9EYW1wZXJfRGFtYWdlX0JhY2tBbmltIDogd2hlZWxfMV8xX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0TEYyV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfNF9kYW1wZXIiOyAgCiAgICAgICAgICAgIH07ICAKCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfMV9EYW1wZXJfRGFtYWdlX0JhY2tBbmltIDogd2hlZWxfMV8xX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0UkZXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8xX2RhbXBlciI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzJfRGFtcGVyX0RhbWFnZV9CYWNrQW5pbSA6IHdoZWVsXzFfMV9EYW1wZXJfRGFtYWdlX0JhY2tBbmltICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdFJCV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMl9kYW1wZXIiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8zX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gOiB3aGVlbF8xXzFfRGFtcGVyX0RhbWFnZV9CYWNrQW5pbSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRSTVdoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzNfZGFtcGVyIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfNF9EYW1wZXJfRGFtYWdlX0JhY2tBbmltIDogd2hlZWxfMV8xX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0UkYyV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfNF9kYW1wZXIiOyAgCiAgICAgICAgICAgIH07ICAKCiAgICAgICAgICAgIGNsYXNzIEdsYXNzMV9kZXN0cnVjdCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0iaGlkZSI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZ2xhc3MxIjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRHbGFzczEiOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IDA7ICAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IDE7ICAgCiAgICAgICAgICAgICAgICBoaWRldmFsdWUgPSAwLjk5OTk5OyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgR2xhc3MyX2Rlc3RydWN0IDogR2xhc3MxX2Rlc3RydWN0ICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImdsYXNzMiI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0R2xhc3MyIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIEdsYXNzM19kZXN0cnVjdCA6IEdsYXNzMV9kZXN0cnVjdCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJnbGFzczMiOyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdEdsYXNzMyI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyBHbGFzczRfZGVzdHJ1Y3QgOiBHbGFzczFfZGVzdHJ1Y3QgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZ2xhc3M0IjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRHbGFzczQiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgR2xhc3M1X2Rlc3RydWN0IDogR2xhc3MxX2Rlc3RydWN0ICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImdsYXNzNSI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0R2xhc3M1IjsgIAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgY2xhc3MgV2hlZWxfMV8xICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICB0eXBlPSJyb3RhdGlvblgiOyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IndoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzEiOyAgCiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8xXzFfYXhpcyI7ICAKICAgICAgICAgICAgICAgIG1lbW9yeT0xOyAgCiAgICAgICAgICAgICAgICBzb3VyY2VBZGRyZXNzPSJsb29wIjsgIAogICAgICAgICAgICAgICAgbWluVmFsdWU9MDsgIAogICAgICAgICAgICAgICAgbWF4VmFsdWU9MTsgIAogICAgICAgICAgICAgICAgYW5nbGUwPTA7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMT0icmFkIC0zNjAiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8xIDogV2hlZWxfMV8xICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMSI7ICAKICAgICAgICAgICAgICAgIGF4aXM9IndoZWVsXzJfMV9heGlzIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMiA6IFdoZWVsXzFfMSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzIiOyAgCiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8xXzJfYXhpcyI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzMgOiBXaGVlbF8xXzEgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV8zIjsgIAogICAgICAgICAgICAgICAgYXhpcz0id2hlZWxfMV8zX2F4aXMiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgV2hlZWxfMl8yIDogV2hlZWxfMV8xICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMiI7ICAKICAgICAgICAgICAgICAgIGF4aXM9IndoZWVsXzJfMl9heGlzIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIFdoZWVsXzJfMyA6IFdoZWVsXzFfMSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzMiOyAgCiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8yXzNfYXhpcyI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyBXaGVlbF8xXzQgOiBXaGVlbF8xXzEgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV80IjsgIAogICAgICAgICAgICAgICAgYXhpcz0id2hlZWxfMV80X2F4aXMiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgV2hlZWxfMl80IDogV2hlZWxfMV8xICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfNCI7ICAKICAgICAgICAgICAgICAgIGF4aXM9IndoZWVsXzJfNF9heGlzIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIFdoZWVsXzFfMV9EYW1wZXIgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHR5cGU9InRyYW5zbGF0aW9uIjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJkYW1wZXIiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMV9kYW1wZXJfbGFuZCI7ICAKICAgICAgICAgICAgICAgIGF4aXM9InBvc3VuIHdoZWVsXzFfMSI7ICAKICAgICAgICAgICAgICAgIGFuaW1QZXJpb2QgPSAxOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZT0iMCI7ICAKICAgICAgICAgICAgICAgIG1heFZhbHVlPSIxIjsgIAogICAgICAgICAgICAgICAgb2Zmc2V0MD0gIjAuNSI7ICAKICAgICAgICAgICAgICAgIG9mZnNldDE9ICItMC41IjsgIAogICAgICAgICAgICAgICAgbWVtb3J5PTE7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzFfRGFtcGVyIDogV2hlZWxfMV8xX0RhbXBlciAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzFfZGFtcGVyX2xhbmQiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV8yX0RhbXBlciA6IFdoZWVsXzFfMV9EYW1wZXIgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV8yX2RhbXBlcl9sYW5kIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIFdoZWVsXzJfMl9EYW1wZXIgOiBXaGVlbF8xXzFfRGFtcGVyICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMl9kYW1wZXJfbGFuZCI7ICAKICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAKICAgICAgICAgICAgY2xhc3MgRHJpdmluZ1doZWVsIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHR5cGU9InJvdGF0aW9uIjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJkcml2aW5nV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImRyaXZld2hlZWwiOyAgCiAgICAgICAgICAgICAgICBheGlzPSJkcml2ZXdoZWVsX2F4aXMiOyAgCiAgICAgICAgICAgICAgICBtZW1vcnk9MTsgIAogICAgICAgICAgICAgICAgbWluVmFsdWU9LTE7ICAKICAgICAgICAgICAgICAgIG1heFZhbHVlPTE7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMD0ocmFkIDcwKTsgIAogICAgICAgICAgICAgICAgYW5nbGUxPShyYWQgLTcwKTsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIFN0ZWVyaW5nXzFfMSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0icm90YXRpb25ZIjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJkcml2aW5nV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMV9zdGVlcmluZyI7ICAKICAgICAgICAgICAgICAgIGF4aXM9IndoZWVsXzFfMV9zdGVlcmluZ19heGlzIjsgIAogICAgICAgICAgICAgICAgbWVtb3J5PTE7ICAKICAgICAgICAgICAgICAgIG1pblZhbHVlPSJyYWQgLTkwIjsgIAogICAgICAgICAgICAgICAgbWF4VmFsdWU9InJhZCArOTAiOyAgCiAgICAgICAgICAgICAgICBhbmdsZTA9MS4wNDcxOTgxOyAgCiAgICAgICAgICAgICAgICBhbmdsZTE9LTEuMDQ3MTk4MTsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIFN0ZWVyaW5nXzJfMSA6IFN0ZWVyaW5nXzFfMSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzFfc3RlZXJpbmciOyAgCiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8yXzFfc3RlZXJpbmdfYXhpcyI7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMD0xLjA0NzE5ODE7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMT0tMS4wNDcxOTgxOyAgCiAgICAgICAgICAgIH07CgogICAgICAgICAgICBjbGFzcyBJbmRpY2F0b3JGdWVsIDogUm90YXRpb24KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdHlwZT0icm90YXRpb24iOwogICAgICAgICAgICAgICAgc291cmNlPSJmdWVsIjsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iaW5kaV9mdWVsIjsKICAgICAgICAgICAgICAgIGF4aXM9ImF4aXNfZnVlbCI7CiAgICAgICAgICAgICAgICBtZW1vcnk9MTsKICAgICAgICAgICAgICAgIG1pblZhbHVlPTAuMDAwMDAwOwogICAgICAgICAgICAgICAgbWF4VmFsdWU9MS4wMDAwMDA7CiAgICAgICAgICAgICAgICBhbmdsZTA9LTAuMDg3MjY2OwogICAgICAgICAgICAgICAgYW5nbGUxPTEuNTcwNzk3OwogICAgICAgICAgICB9OwogICAgICAgICAgICAvLyBzcGVlZCBmcm9tIDAgdG8gNDAga21oCiAgICAgICAgICAgIGNsYXNzIEluZGljYXRvclNwZWVkNDAgIDogUm90YXRpb24KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdHlwZSA9ICJyb3RhdGlvbiI7CiAgICAgICAgICAgICAgICBzb3VyY2U9InNwZWVkIjsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iaW5kaV9zcGVlZCI7CiAgICAgICAgICAgICAgICBheGlzPSJheGlzX3NwZWVkIjsKICAgICAgICAgICAgICAgIG1lbW9yeT0xOwogICAgICAgICAgICAgICAgbWluVmFsdWU9MC4wMDAwMDA7CiAgICAgICAgICAgICAgICBtYXhWYWx1ZT0xMS4xMTE7CiAgICAgICAgICAgICAgICBhbmdsZTA9InJhZCAtMzYiOwogICAgICAgICAgICAgICAgYW5nbGUxPSJyYWQgKzU0IjsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgLy8gc3BlZWQgZnJvbSA0MCB0byA4MAogICAgICAgICAgICBjbGFzcyBJbmRpY2F0b3JTcGVlZDgwIDogUm90YXRpb24KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdHlwZSA9ICJyb3RhdGlvbiI7CiAgICAgICAgICAgICAgICBzb3VyY2U9InNwZWVkIjsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iaW5kaV9zcGVlZCI7CiAgICAgICAgICAgICAgICBheGlzPSJheGlzX3NwZWVkIjsKICAgICAgICAgICAgICAgIG1lbW9yeT0xOwogICAgICAgICAgICAgICAgbWluVmFsdWU9MTEuMTEyOwogICAgICAgICAgICAgICAgbWF4VmFsdWU9MjIuMjIyOwogICAgICAgICAgICAgICAgYW5nbGUwPTA7CiAgICAgICAgICAgICAgICBhbmdsZTE9InJhZCArNzciOwogICAgICAgICAgICB9OwogICAgICAgICAgICAvLyBzcGVlZCBmcm9tIDgwIHRvIDEyNQogICAgICAgICAgICBjbGFzcyBJbmRpY2F0b3JTcGVlZDEyNSA6IFJvdGF0aW9uCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHR5cGUgPSAicm90YXRpb24iOwogICAgICAgICAgICAgICAgc291cmNlPSJzcGVlZCI7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImluZGlfc3BlZWQiOwogICAgICAgICAgICAgICAgYXhpcz0iYXhpc19zcGVlZCI7CiAgICAgICAgICAgICAgICBtZW1vcnk9MTsKICAgICAgICAgICAgICAgIG1pblZhbHVlPTIyLjIyMzsKICAgICAgICAgICAgICAgIG1heFZhbHVlPTM0LjcyMjsKICAgICAgICAgICAgICAgIGFuZ2xlMD0wOwogICAgICAgICAgICAgICAgYW5nbGUxPSJyYWQgKzgyIjsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2xhc3MgSW5kaWNhdG9yUlBNIDogUm90YXRpb24KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdHlwZSA9ICJyb3RhdGlvbiI7CiAgICAgICAgICAgICAgICBzb3VyY2U9InJwbSI7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImluZGlfcnBtIjsKICAgICAgICAgICAgICAgIGF4aXM9ImF4aXNfcnBtIjsKICAgICAgICAgICAgICAgIG1lbW9yeT0xOwogICAgICAgICAgICAgICAgbWluVmFsdWU9MDsKICAgICAgICAgICAgICAgIG1heFZhbHVlPTE7CiAgICAgICAgICAgICAgICBhbmdsZTA9InJhZCAtMjA2IjsKICAgICAgICAgICAgICAgIGFuZ2xlMT0icmFkIDI5IjsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAKICAgICAgICAgICAgY2xhc3MgZGF5bGlnaHRzICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICB0eXBlPSJoaWRlIjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJycG0iOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImRheWxpZ2h0cyI7ICAKICAgICAgICAgICAgICAgIG1pblZhbHVlPS0wLjg7ICAKICAgICAgICAgICAgICAgIG1heFZhbHVlPTAuMjsgIAogICAgICAgICAgICAgICAgdW5oaWRldmFsdWU9MTsgIAogICAgICAgICAgICAgICAgc291cmNlQWRkcmVzcz0iY2xhbXAiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgY2xhc3MgcmV2ZXJzZV9saWdodCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0iSGlkZSI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0icmV2ZXJzZV9saWdodCI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZUFkZHJlc3M9ImNsYW1wIjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJHZWFyIjsgIAogICAgICAgICAgICAgICAgbWluVmFsdWUgPSAtMTsgIAogICAgICAgICAgICAgICAgbWF4VmFsdWUgPSAwOyAgCiAgICAgICAgICAgICAgICBoaWRlVmFsdWUgPSAiMC4yIjsgICAgICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICAgIAogICAgICAgICAgICBjbGFzcyBkYW1hZ2VIaWRlZG9vcjEgOiBkYW1hZ2VIaWRlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImRvb3IxIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIGRhbWFnZUhpZGVkb29yMiA6IGRhbWFnZUhpZGUgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZG9vcjIiOyAgCiAgICAgICAgICAgIH07CgogICAgICAgICAgICBjbGFzcyBjYW1vTmV0SGlkZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0eXBlID0gImhpZGUiOwogICAgICAgICAgICAgICAgc291cmNlID0gInVzZXIiOwogICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gImNhbW9uZXQiOwogICAgICAgICAgICAgICAgaGlkZVZhbHVlID0gMS4wOwogICAgICAgICAgICAgICAgdW5oaWRlVmFsdWUgPSAwLjA7CiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IDA7ICAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IDE7ICAKICAgICAgICAgICAgfTsKICAgICAgICB9OyAgCiAgICB9OwoKICAgIGNsYXNzIERpbmdvMkEyTUcgOiBEaW5nbzJBMgogICAgewogICAgICAgIHNrZWxldG9uTmFtZSA9ICJEaW5nb01HIjsKICAgICAgICBzZWN0aW9uc0luaGVyaXQgPSAiRGluZ28yQTIiOwogICAgICAgIHNlY3Rpb25zW10gPQogICAgICAgIHsKICAgICAgICAgICAgImNhbW81IiwKICAgICAgICAgICAgInR1cnJldCIsCiAgICAgICAgICAgICJndW4iLAogICAgICAgICAgICAiZ3VubmVydmlldyIsCiAgICAgICAgfTsgIAoKICAgICAgICBjbGFzcyBBbmltYXRpb25zIDogQW5pbWF0aW9ucwogICAgICAgIHsKICAgICAgICAgICAgY2xhc3MgTWFpblR1cnJldAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0eXBlPSJyb3RhdGlvblkiOwogICAgICAgICAgICAgICAgc291cmNlPSJtYWluVHVycmV0IjsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0idHVycmV0IjsKICAgICAgICAgICAgICAgIGF4aXM9ImF4aXNfdHVycmV0IjsKICAgICAgICAgICAgICAgIGFuaW1QZXJpb2Q9MDsKICAgICAgICAgICAgICAgIG1pblZhbHVlPSJyYWQgLTM2MCI7CiAgICAgICAgICAgICAgICBtYXhWYWx1ZT0icmFkICszNjAiOwogICAgICAgICAgICAgICAgYW5nbGUwPSJyYWQgLTM2MCI7CiAgICAgICAgICAgICAgICBhbmdsZTE9InJhZCArMzYwIjsKICAgICAgICAgICAgICAgIG1lbW9yeSA9IDE7ICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgY2xhc3MgTWFpbkd1biA6IE1haW5UdXJyZXQKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdHlwZT0icm90YXRpb25YIjsKICAgICAgICAgICAgICAgIHNvdXJjZT0ibWFpbkd1biI7CiAgICAgICAgICAgICAgICBzZWxlY3Rpb249Imd1biI7CiAgICAgICAgICAgICAgICBheGlzPSJheGlzX2d1biI7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBjbGFzcyBNYWdhemluZV9oaWRlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHR5cGUgPSAiaGlkZSI7CiAgICAgICAgICAgICAgICBzb3VyY2UgPSAicmVsb2FkTWFnYXppbmUiOwogICAgICAgICAgICAgICAgc291cmNlQWRkcmVzcyA9ICJtaXJyb3IiOwogICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gIm1hZ2F6aW5lIjsKICAgICAgICAgICAgICAgIG1pblZhbHVlID0gMC4wOwogICAgICAgICAgICAgICAgbWF4VmFsdWUgPSAwLjU7CiAgICAgICAgICAgICAgICBoaWRlVmFsdWUgPSAwLjU2OwogICAgICAgICAgICB9OwogICAgICAgICAgICBjbGFzcyBhbW1vX2JlbHRfcm90YXRpb24KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdHlwZSA9ICJyb3RhdGlvbloiOwogICAgICAgICAgICAgICAgc291cmNlID0gIlJlbG9hZEFuaW0iOwogICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gImFtbW9fYmVsdCI7CiAgICAgICAgICAgICAgICBheGlzID0gImFtbW9fYmVsdF9heGlzIjsKICAgICAgICAgICAgICAgIG1lbW9yeSA9IDE7CiAgICAgICAgICAgICAgICBzb3VyY2VBZGRyZXNzID0gImxvb3AiOwogICAgICAgICAgICAgICAgbWluVmFsdWUgPSAwLjAwMDAwMDsKICAgICAgICAgICAgICAgIG1heFZhbHVlID0gMS4wMDAwOwogICAgICAgICAgICAgICAgYW5nbGUwID0gMC4wMDAwMDA7CiAgICAgICAgICAgICAgICBhbmdsZTEgPSAtMC4yMDk0NDA7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICAvKkJVTExFVF9ISURFKDAwMSwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAwMiwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAwMywxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAwNCwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAwNSwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAwNiwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAwNywxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAwOCwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAwOSwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAxMCwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAxMSwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAxMiwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAxMywxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAxNCwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAxNSwxNiwxMDApCiAgICAgICAgICAgIEJVTExFVF9ISURFKDAxNiwxNiwxMDApKi8KICAgICAgICB9OwogICAgfTsKfTsKICAgIA==