{"configuration":{},"description":"Generated weather processing review workspace","documentation":{},"id":14,"lastModifiedAgent":"structurizr-onpremises/dsl-editor/fa3ca58a-e3ba-46b1-b1c2-327706509ce7","lastModifiedDate":"2026-04-29T14:11:09Z","lastModifiedUser":"meandair","model":{"people":[{"description":"Consumes weather layers and datasets exposed by airserver.","id":"1","location":"Unspecified","name":"Customer","properties":{"structurizr.dsl.identifier":"customer"},"relationships":[{"description":"Requests weather products from","destinationId":"10","id":"59","sourceId":"1","tags":"Relationship"},{"description":"Requests weather products from","destinationId":"9","id":"60","linkedRelationshipId":"59","sourceId":"1"}],"tags":"Element,Person"}],"softwareSystems":[{"description":"DWD source datasets and satellite products.","documentation":{},"id":"2","location":"Unspecified","name":"DWD","properties":{"structurizr.dsl.identifier":"dwd"},"relationships":[{"description":"Provides ICON-EU-CloudCover-PRES (REGION.short_name); sis (nat) to","destinationId":"44","id":"78","sourceId":"2","tags":"Relationship"},{"description":"Provides ICON-EU-CloudCover-PRES (REGION.short_name); sis (nat) to","destinationId":"9","id":"79","linkedRelationshipId":"78","sourceId":"2"},{"description":"Provides ICON-EU-CloudCover-PRES (REGION.short_name) to","destinationId":"51","id":"139","sourceId":"2","tags":"Relationship"},{"description":"Provides sis (nat) to","destinationId":"54","id":"142","sourceId":"2","tags":"Relationship"}],"tags":"Element,Software System"},{"description":"NOAA Global Forecast System source datasets.","documentation":{},"id":"3","location":"Unspecified","name":"GFS","properties":{"structurizr.dsl.identifier":"gfs"},"relationships":[{"description":"Provides 25 datasets (GLOBAL) to","destinationId":"11","id":"61","sourceId":"3","tags":"Relationship"},{"description":"Provides 25 datasets (GLOBAL) to","destinationId":"9","id":"62","linkedRelationshipId":"61","sourceId":"3"},{"description":"Provides AIR_TEMPERATURE_PRES, ALTITUDE_PRES, CONVECTIVE_AVAILABLE_POTENTIAL_ENERGY_SFC, REFLECTIVITY_ATM, RELATIVE_HUMIDITY_PRES, VERTICAL_AIR_VELOCITY_PRES, WIND_U_PRES, WIND_V_PRES (GLOBAL) to","destinationId":"19","id":"64","sourceId":"3","tags":"Relationship"},{"description":"Provides CLOUD_COVER_PRES, CLOUD_WATER_ATM, PRECIPITATION_RATE_SFC, WIND_U_3658M_AMSL, WIND_V_3658M_AMSL (GLOBAL) to","destinationId":"28","id":"73","sourceId":"3","tags":"Relationship"},{"description":"Provides AIR_PRESSURE_SFC, AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL, SURFACE_AMSL, VISIBILITY_SFC (GLB) to","destinationId":"40","id":"77","sourceId":"3","tags":"Relationship"},{"description":"Provides CLOUD_CEILING_AMSL, CLOUD_COVER_PRES, SURFACE_AMSL, WIND_GUST_10M_AGL, WIND_U_10M_AGL, WIND_V_10M_AGL (GLB); 16 datasets (REGION.short_name) to","destinationId":"44","id":"80","sourceId":"3","tags":"Relationship"},{"description":"Provides ALTITUDE_SFC, CLOUD_CEILING_AMSL, CLOUD_COVER_PRES (GLOBAL) to","destinationId":"12","id":"87","sourceId":"3","tags":"Relationship"},{"description":"Provides CONVECTIVE_PRECIPITATION_RATE_SFC, PRECIPITATION_RATE_SFC (GLOBAL) to","destinationId":"13","id":"89","sourceId":"3","tags":"Relationship"},{"description":"Provides AIR_PRESSURE_SFC, ALTITUDE_SFC (GLOBAL) to","destinationId":"14","id":"91","sourceId":"3","tags":"Relationship"},{"description":"Provides AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL (GLOBAL) to","destinationId":"15","id":"93","sourceId":"3","tags":"Relationship"},{"description":"Provides VISIBILITY_SFC (GLOBAL) to","destinationId":"16","id":"95","sourceId":"3","tags":"Relationship"},{"description":"Provides 14 datasets (GLOBAL) to","destinationId":"17","id":"97","sourceId":"3","tags":"Relationship"},{"description":"Provides WIND_GUST_10M_AGL, WIND_U_10M_AGL, WIND_U_80M_AGL, WIND_U_PRES, WIND_V_10M_AGL, WIND_V_80M_AGL, WIND_V_PRES (GLOBAL) to","destinationId":"18","id":"99","sourceId":"3","tags":"Relationship"},{"description":"Provides AIR_TEMPERATURE_PRES, RELATIVE_HUMIDITY_PRES (GLOBAL) to","destinationId":"21","id":"103","sourceId":"3","tags":"Relationship"},{"description":"Provides CONVECTIVE_AVAILABLE_POTENTIAL_ENERGY_SFC, REFLECTIVITY_ATM (GLOBAL) to","destinationId":"22","id":"106","sourceId":"3","tags":"Relationship"},{"description":"Provides AIR_TEMPERATURE_PRES, ALTITUDE_PRES, VERTICAL_AIR_VELOCITY_PRES, WIND_U_PRES, WIND_V_PRES (GLOBAL) to","destinationId":"23","id":"108","sourceId":"3","tags":"Relationship"},{"description":"Provides CLOUD_COVER_PRES, CLOUD_WATER_ATM, PRECIPITATION_RATE_SFC, WIND_U_3658M_AMSL, WIND_V_3658M_AMSL (GLOBAL) to","destinationId":"30","id":"117","sourceId":"3","tags":"Relationship"},{"description":"Provides AIR_PRESSURE_SFC, SURFACE_AMSL (GLB) to","destinationId":"41","id":"120","sourceId":"3","tags":"Relationship"},{"description":"Provides AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL (GLB) to","destinationId":"42","id":"121","sourceId":"3","tags":"Relationship"},{"description":"Provides VISIBILITY_SFC (GLB) to","destinationId":"43","id":"122","sourceId":"3","tags":"Relationship"},{"description":"Provides AIR_PRESSURE_QNH (REGION.short_name) to","destinationId":"45","id":"123","sourceId":"3","tags":"Relationship"},{"description":"Provides AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL (REGION.short_name) to","destinationId":"46","id":"125","sourceId":"3","tags":"Relationship"},{"description":"Provides CLOUD_CEILING_AMSL, CLOUD_COVER_PRES, SURFACE_AMSL (GLB) to","destinationId":"49","id":"134","sourceId":"3","tags":"Relationship"},{"description":"Provides 9 datasets (REGION.short_name) to","destinationId":"50","id":"137","sourceId":"3","tags":"Relationship"},{"description":"Provides CLOUD_COVER_PRES (REGION.short_name) to","destinationId":"51","id":"140","sourceId":"3","tags":"Relationship"},{"description":"Provides WIND_U_3658M_AMSL, WIND_V_3658M_AMSL (REGION.short_name) to","destinationId":"54","id":"143","sourceId":"3","tags":"Relationship"},{"description":"Provides WIND_U_3658M_AMSL, WIND_V_3658M_AMSL (REGION.short_name) to","destinationId":"55","id":"146","sourceId":"3","tags":"Relationship"},{"description":"Provides VISIBILITY_SFC (REGION.short_name) to","destinationId":"56","id":"148","sourceId":"3","tags":"Relationship"},{"description":"Provides WIND_GUST_10M_AGL, WIND_U_10M_AGL, WIND_V_10M_AGL (GLB) to","destinationId":"57","id":"150","sourceId":"3","tags":"Relationship"},{"description":"Provides WIND_GUST_10M_AGL, wind-10m-agl (REGION.short_name) to","destinationId":"58","id":"151","sourceId":"3","tags":"Relationship"}],"tags":"Element,Software System"},{"description":"Graphical Turbulence Guidance source datasets.","documentation":{},"id":"4","location":"Unspecified","name":"GTG","properties":{"structurizr.dsl.identifier":"gtg"},"relationships":[{"description":"Provides TURBULENCE_AMSL (NORTH_AMERICA_2) to","destinationId":"19","id":"65","sourceId":"4","tags":"Relationship"},{"description":"Provides TURBULENCE_AMSL (NORTH_AMERICA_2) to","destinationId":"9","id":"66","linkedRelationshipId":"65","sourceId":"4"},{"description":"Provides TURBULENCE_AMSL (NORTH_AMERICA_2) to","destinationId":"24","id":"111","sourceId":"4","tags":"Relationship"}],"tags":"Element,Software System"},{"description":"DWD ICON-D2 source datasets.","documentation":{},"id":"5","location":"Unspecified","name":"ICON-D2","properties":{"structurizr.dsl.identifier":"icond2"},"relationships":[{"description":"Provides DIFFUSE_HORIZONTAL_IRRADIANCE_SFC, DIRECT_HORIZONTAL_IRRADIANCE_SFC, WIND_U_80M_AGL, WIND_V_80M_AGL (EUROPE_2) to","destinationId":"25","id":"70","sourceId":"5","tags":"Relationship"},{"description":"Provides DIFFUSE_HORIZONTAL_IRRADIANCE_SFC, DIRECT_HORIZONTAL_IRRADIANCE_SFC, WIND_U_80M_AGL, WIND_V_80M_AGL (EUROPE_2) to","destinationId":"9","id":"71","linkedRelationshipId":"70","sourceId":"5"},{"description":"Provides DIFFUSE_HORIZONTAL_IRRADIANCE_SFC, DIRECT_HORIZONTAL_IRRADIANCE_SFC (EUROPE_2) to","destinationId":"26","id":"113","sourceId":"5","tags":"Relationship"},{"description":"Provides WIND_U_80M_AGL, WIND_V_80M_AGL (EUROPE_2) to","destinationId":"27","id":"115","sourceId":"5","tags":"Relationship"}],"tags":"Element,Software System"},{"description":"KNMI source datasets and NWC/GEO fallback products.","documentation":{},"id":"6","location":"Unspecified","name":"KNMI","properties":{"structurizr.dsl.identifier":"knmi"},"relationships":[{"description":"Provides msg-cpp (nat) to","destinationId":"44","id":"81","sourceId":"6","tags":"Relationship"},{"description":"Provides msg-cpp (nat) to","destinationId":"9","id":"82","linkedRelationshipId":"81","sourceId":"6"},{"description":"Provides msg-cpp (nat) to","destinationId":"54","id":"144","sourceId":"6","tags":"Relationship"}],"tags":"Element,Software System"},{"description":"Satellite-derived NWC/GEO product source.","documentation":{},"id":"7","location":"Unspecified","name":"NWC/GEO","properties":{"structurizr.dsl.identifier":"nwcgeo"},"relationships":[{"description":"Provides NwcGeo-CMA, NwcGeo-CMIC, NwcGeo-CRR, NwcGeo-CT, NwcGeo-CTTH, NwcGeo-PC, NwcGeo-RDT (NAT) to","destinationId":"31","id":"75","sourceId":"7","tags":"Relationship"},{"description":"Provides NwcGeo-CMA, NwcGeo-CMIC, NwcGeo-CRR, NwcGeo-CT, NwcGeo-CTTH, NwcGeo-PC, NwcGeo-RDT (NAT) to","destinationId":"9","id":"76","linkedRelationshipId":"75","sourceId":"7"},{"description":"Provides NwcGeo-CMA, NwcGeo-CMIC, NwcGeo-CRR, NwcGeo-CT, NwcGeo-CTTH, NwcGeo-PC, NwcGeo-RDT (NAT) to","destinationId":"35","id":"119","sourceId":"7","tags":"Relationship"}],"tags":"Element,Software System"},{"description":"World Area Forecast System source datasets.","documentation":{},"id":"8","location":"Unspecified","name":"WAFS","properties":{"structurizr.dsl.identifier":"wafs"},"relationships":[{"description":"Provides ICING_SEVERITY_PRES, TURBULENCE_PRES (GLOBAL) to","destinationId":"19","id":"67","sourceId":"8","tags":"Relationship"},{"description":"Provides ICING_SEVERITY_PRES, TURBULENCE_PRES (GLOBAL) to","destinationId":"9","id":"68","linkedRelationshipId":"67","sourceId":"8"},{"description":"Provides ICING_SEVERITY_PRES (GLOBAL) to","destinationId":"20","id":"101","sourceId":"8","tags":"Relationship"},{"description":"Provides TURBULENCE_PRES (GLOBAL) to","destinationId":"23","id":"109","sourceId":"8","tags":"Relationship"}],"tags":"Element,Software System"},{"containers":[{"description":"Serves processed weather layers and datasets to downstream clients.","documentation":{},"id":"10","name":"airserver","properties":{"structurizr.dsl.identifier":"weathersystem.airserver"},"tags":"Element,Container","technology":"Actix Web / publishing API"},{"components":[{"description":"Generated from cloud-glb (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: GFS (GLOBAL): ALTITUDE_SFC, CLOUD_CEILING_AMSL, CLOUD_COVER_PRES; MEANDAIR_NWP (GLOBAL): CLOUD_COVER_ATM. Outputs: MEANDAIR_NWP (GLOBAL): CLOUD_CEILING_AGL, CLOUD_COVER_ATM, CLOUD_TOP_AMSL, CLOUD_TOP_RELIEF.","documentation":{},"id":"12","name":"Cloud GLB","properties":{"structurizr.dsl.identifier":"weathersystem.nwpglobalproducts.cloudglb"},"relationships":[{"description":"Publishes CLOUD_CEILING_AGL, CLOUD_COVER_ATM, CLOUD_TOP_AMSL, CLOUD_TOP_RELIEF (GLOBAL) to","destinationId":"10","id":"88","sourceId":"12","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from precipitation-glb (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: GFS (GLOBAL): CONVECTIVE_PRECIPITATION_RATE_SFC, PRECIPITATION_RATE_SFC; MEANDAIR_NWP (GLOBAL): PRECIPITATION_RATE_SFC. Outputs: MEANDAIR_NWP (GLOBAL): CONVECTIVE_PRECIPITATION_RATE_SFC, PRECIPITATION_PROBABILITY_SFC, PRECIPITATION_RATE_SFC.","documentation":{},"id":"13","name":"Precipitation GLB","properties":{"structurizr.dsl.identifier":"weathersystem.nwpglobalproducts.precipitationglb"},"relationships":[{"description":"Publishes CONVECTIVE_PRECIPITATION_RATE_SFC, PRECIPITATION_PROBABILITY_SFC, PRECIPITATION_RATE_SFC (GLOBAL) to","destinationId":"10","id":"90","sourceId":"13","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from pressure-glb (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: GFS (GLOBAL): AIR_PRESSURE_SFC, ALTITUDE_SFC; MEANDAIR_NWP (GLOBAL): AIR_PRESSURE_QNH. Outputs: MEANDAIR_NWP (GLOBAL): AIR_PRESSURE_QNH.","documentation":{},"id":"14","name":"Pressure GLB","properties":{"structurizr.dsl.identifier":"weathersystem.nwpglobalproducts.pressureglb"},"relationships":[{"description":"Publishes AIR_PRESSURE_QNH (GLOBAL) to","destinationId":"10","id":"92","sourceId":"14","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from temperature-glb (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: GFS (GLOBAL): AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL; MEANDAIR_NWP (GLOBAL): AIR_TEMPERATURE_2M_AGL. Outputs: MEANDAIR_NWP (GLOBAL): AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL.","documentation":{},"id":"15","name":"Temperature GLB","properties":{"structurizr.dsl.identifier":"weathersystem.nwpglobalproducts.temperatureglb"},"relationships":[{"description":"Publishes AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL (GLOBAL) to","destinationId":"10","id":"94","sourceId":"15","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from visibility-glb (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: GFS (GLOBAL): VISIBILITY_SFC; MEANDAIR_NWP (GLOBAL): VISIBILITY_SFC. Outputs: MEANDAIR_NWP (GLOBAL): VISIBILITY_SFC.","documentation":{},"id":"16","name":"Visibility GLB","properties":{"structurizr.dsl.identifier":"weathersystem.nwpglobalproducts.visibilityglb"},"relationships":[{"description":"Publishes VISIBILITY_SFC (GLOBAL) to","destinationId":"10","id":"96","sourceId":"16","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from weather-type-glb (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: GFS (GLOBAL): 14 datasets; MEANDAIR_NWP (GLOBAL): WEATHER_TYPE_SFC. Outputs: MEANDAIR_NWP (GLOBAL): WEATHER_TYPE_SFC.","documentation":{},"id":"17","name":"Weather Type GLB","properties":{"structurizr.dsl.identifier":"weathersystem.nwpglobalproducts.weathertypeglb"},"relationships":[{"description":"Publishes WEATHER_TYPE_SFC (GLOBAL) to","destinationId":"10","id":"98","sourceId":"17","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from wind-glb (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: GFS (GLOBAL): 7 datasets; MEANDAIR_NWP (GLOBAL): WIND_10M_AGL. Outputs: MEANDAIR_NWP (GLOBAL): WIND_10M_AGL, WIND_80M_AGL, WIND_FL, WIND_GUST_10M_AGL.","documentation":{},"id":"18","name":"Wind GLB","properties":{"structurizr.dsl.identifier":"weathersystem.nwpglobalproducts.windglb"},"relationships":[{"description":"Publishes WIND_10M_AGL, WIND_80M_AGL, WIND_FL, WIND_GUST_10M_AGL (GLOBAL) to","destinationId":"10","id":"100","sourceId":"18","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"}],"description":"Logical review group for derived global NWP field products. This is a documentation split, not a separate deployable.","documentation":{},"id":"11","name":"NWP Global Products","properties":{"structurizr.dsl.identifier":"weathersystem.nwpglobalproducts"},"relationships":[{"description":"Publishes 16 datasets (GLOBAL) to","destinationId":"10","id":"63","sourceId":"11","tags":"Relationship"},{"description":"Provides CLOUD_TOP_AMSL (GLOBAL) to","destinationId":"19","id":"84","sourceId":"11","tags":"Relationship"},{"description":"Provides CLOUD_TOP_AMSL (GLOBAL) to","destinationId":"22","id":"105","sourceId":"11","tags":"Relationship"}],"tags":"Element,Container","technology":"Logical review group (Argo Workflows + Python)"},{"components":[{"description":"Generated from icing-glb (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: MEANDAIR_NWP (GLOBAL): ICING_SEVERITY_FL; WAFS (GLOBAL): ICING_SEVERITY_PRES. Outputs: MEANDAIR_NWP (GLOBAL): ICING_SEVERITY_ATM, ICING_SEVERITY_FL.","documentation":{},"id":"20","name":"Icing GLB","properties":{"structurizr.dsl.identifier":"weathersystem.nwphazards.icingglb"},"relationships":[{"description":"Publishes ICING_SEVERITY_ATM, ICING_SEVERITY_FL (GLOBAL) to","destinationId":"10","id":"102","sourceId":"20","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from k-index-glb (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: GFS (GLOBAL): AIR_TEMPERATURE_PRES, RELATIVE_HUMIDITY_PRES; MEANDAIR_NWP (GLOBAL): K_INDEX. Outputs: MEANDAIR_NWP (GLOBAL): K_INDEX.","documentation":{},"id":"21","name":"K Index GLB","properties":{"structurizr.dsl.identifier":"weathersystem.nwphazards.kindexglb"},"relationships":[{"description":"Publishes K_INDEX (GLOBAL) to","destinationId":"10","id":"104","sourceId":"21","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from thunderstorm-glb (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: GFS (GLOBAL): CONVECTIVE_AVAILABLE_POTENTIAL_ENERGY_SFC, REFLECTIVITY_ATM; MEANDAIR_NWP (GLOBAL): CLOUD_TOP_AMSL, THUNDERSTORM_SEVERITY_ATM. Outputs: MEANDAIR_NWP (GLOBAL): THUNDERSTORM_SEVERITY_ATM.","documentation":{},"id":"22","name":"Thunderstorm GLB","properties":{"structurizr.dsl.identifier":"weathersystem.nwphazards.thunderstormglb"},"relationships":[{"description":"Publishes THUNDERSTORM_SEVERITY_ATM (GLOBAL) to","destinationId":"10","id":"107","sourceId":"22","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from turbulence-glb (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: GFS (GLOBAL): 5 datasets; MEANDAIR_NWP (GLOBAL): TURBULENCE_FL; WAFS (GLOBAL): TURBULENCE_PRES. Outputs: MEANDAIR_NWP (GLOBAL): TURBULENCE_ATM, TURBULENCE_FL.","documentation":{},"id":"23","name":"Turbulence GLB","properties":{"structurizr.dsl.identifier":"weathersystem.nwphazards.turbulenceglb"},"relationships":[{"description":"Publishes TURBULENCE_ATM, TURBULENCE_FL (GLOBAL) to","destinationId":"10","id":"110","sourceId":"23","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from turbulence-na2 (Argo WorkflowTemplate). Schedule: */10 * * * *. Inputs: GTG (NORTH_AMERICA_2): TURBULENCE_AMSL; MEANDAIR_NWP (NORTH_AMERICA_2): TURBULENCE_FL. Outputs: MEANDAIR_NWP (NORTH_AMERICA_2): TURBULENCE_ATM, TURBULENCE_FL.","documentation":{},"id":"24","name":"Turbulence Na2","properties":{"structurizr.dsl.identifier":"weathersystem.nwphazards.turbulencena2"},"relationships":[{"description":"Publishes TURBULENCE_ATM, TURBULENCE_FL (NORTH_AMERICA_2) to","destinationId":"10","id":"112","sourceId":"24","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"}],"description":"Logical review group for hazard and instability products. This is a documentation split, not a separate deployable.","documentation":{},"id":"19","name":"NWP Hazards","properties":{"structurizr.dsl.identifier":"weathersystem.nwphazards"},"relationships":[{"description":"Publishes ICING_SEVERITY_ATM, ICING_SEVERITY_FL, K_INDEX, THUNDERSTORM_SEVERITY_ATM, TURBULENCE_ATM, TURBULENCE_FL (GLOBAL); TURBULENCE_ATM, TURBULENCE_FL (NORTH_AMERICA_2) to","destinationId":"10","id":"69","sourceId":"19","tags":"Relationship"}],"tags":"Element,Container","technology":"Logical review group (Argo Workflows + Python)"},{"components":[{"description":"Generated from irradiance-eu2 (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: ICON_D2 (EUROPE_2): DIFFUSE_HORIZONTAL_IRRADIANCE_SFC, DIRECT_HORIZONTAL_IRRADIANCE_SFC; MEANDAIR_NWP (EUROPE_2): GLOBAL_HORIZONTAL_IRRADIANCE_SFC. Outputs: MEANDAIR_NWP (EUROPE_2): GLOBAL_HORIZONTAL_IRRADIANCE_SFC.","documentation":{},"id":"26","name":"Irradiance Eu2","properties":{"structurizr.dsl.identifier":"weathersystem.nwpregionalproducts.irradianceeu2"},"relationships":[{"description":"Publishes GLOBAL_HORIZONTAL_IRRADIANCE_SFC (EUROPE_2) to","destinationId":"10","id":"114","sourceId":"26","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from wind-eu2 (Argo WorkflowTemplate). Schedule: */15 * * * *. Inputs: ICON_D2 (EUROPE_2): WIND_U_80M_AGL, WIND_V_80M_AGL; MEANDAIR_NWP (EUROPE_2): WIND_80M_AGL. Outputs: MEANDAIR_NWP (EUROPE_2): WIND_80M_AGL.","documentation":{},"id":"27","name":"Wind Eu2","properties":{"structurizr.dsl.identifier":"weathersystem.nwpregionalproducts.windeu2"},"relationships":[{"description":"Publishes WIND_80M_AGL (EUROPE_2) to","destinationId":"10","id":"116","sourceId":"27","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"}],"description":"Logical review group for regional NWP-derived products. This is a documentation split, not a separate deployable.","documentation":{},"id":"25","name":"NWP Regional Products","properties":{"structurizr.dsl.identifier":"weathersystem.nwpregionalproducts"},"relationships":[{"description":"Publishes GLOBAL_HORIZONTAL_IRRADIANCE_SFC, WIND_80M_AGL (EUROPE_2) to","destinationId":"10","id":"72","sourceId":"25","tags":"Relationship"}],"tags":"Element,Container","technology":"Logical review group (Argo Workflows + Python)"},{"components":[{"description":"Generated from cleanup (Argo WorkflowTemplate). Schedule: */15 * * * *.","documentation":{},"id":"29","name":"Cleanup","properties":{"structurizr.dsl.identifier":"weathersystem.nwcnowcast.cleanup"},"tags":"Element,Component","technology":"Argo WorkflowTemplate"},{"description":"Generated from irradiance (Argo WorkflowTemplate). Schedule: */5 * * * *. Inputs: GFS (GLOBAL): 5 datasets; MEANDAIR_NWC: GLOBAL_HORIZONTAL_IRRADIANCE_SFC. Outputs: MEANDAIR_NWC: GLOBAL_HORIZONTAL_IRRADIANCE_SFC.","documentation":{},"id":"30","name":"Irradiance","properties":{"structurizr.dsl.identifier":"weathersystem.nwcnowcast.irradiance"},"relationships":[{"description":"Publishes GLOBAL_HORIZONTAL_IRRADIANCE_SFC to","destinationId":"10","id":"118","sourceId":"30","tags":"Relationship"}],"tags":"Element,Component","technology":"Argo WorkflowTemplate"}],"description":"Logical review group for current Argo-driven nowcast processing.","documentation":{},"id":"28","name":"NWC Nowcast","properties":{"structurizr.dsl.identifier":"weathersystem.nwcnowcast"},"relationships":[{"description":"Publishes GLOBAL_HORIZONTAL_IRRADIANCE_SFC to","destinationId":"10","id":"74","sourceId":"28","tags":"Relationship"}],"tags":"Element,Container","technology":"Logical review group (Argo Workflows + Python)"},{"components":[{"description":"Legacy Airflow DAG. Group: auxiliary. Schedule: SCHEDULE_SPEC. Inventoried task functions: 0.","documentation":{},"id":"32","name":"Download GFS","properties":{"structurizr.dsl.identifier":"weathersystem.wxauxiliary.downloadgfs"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: auxiliary. Schedule: SCHEDULE_SPEC. Inventoried task functions: 0.","documentation":{},"id":"33","name":"Download Icon Eu","properties":{"structurizr.dsl.identifier":"weathersystem.wxauxiliary.downloadiconeu"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: auxiliary. Schedule: SCHEDULE_SPEC. Inventoried task functions: 2.","documentation":{},"id":"34","name":"Download Metar","properties":{"structurizr.dsl.identifier":"weathersystem.wxauxiliary.downloadmetar"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: auxiliary. Schedule: SCHEDULE_SPEC. Inventoried task functions: 0. Inputs: NWCGEO (NAT): 7 datasets. Outputs: KNMI (REGION.short_name): 11 datasets; MNDR (REGION.short_name): 11 datasets.","documentation":{},"id":"35","name":"Download NWC/GEO","properties":{"structurizr.dsl.identifier":"weathersystem.wxauxiliary.downloadnwcgeo"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: auxiliary. Schedule: SCHEDULE_SPEC. Inventoried task functions: 2.","documentation":{},"id":"36","name":"Download Synop","properties":{"structurizr.dsl.identifier":"weathersystem.wxauxiliary.downloadsynop"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: auxiliary. Schedule: SCHEDULE_SPEC. Inventoried task functions: 2.","documentation":{},"id":"37","name":"Download Taf","properties":{"structurizr.dsl.identifier":"weathersystem.wxauxiliary.downloadtaf"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: auxiliary. Schedule: 0/15 * * * *. Inventoried task functions: 7.","documentation":{},"id":"38","name":"Maintenance","properties":{"structurizr.dsl.identifier":"weathersystem.wxauxiliary.maintenance"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: auxiliary. Schedule: 0/15 * * * *. Inventoried task functions: 2.","documentation":{},"id":"39","name":"Prepare GFS","properties":{"structurizr.dsl.identifier":"weathersystem.wxauxiliary.preparegfs"},"tags":"Element,Component","technology":"Apache Airflow DAG"}],"description":"Logical review group for legacy Airflow ingestion and maintenance DAGs.","documentation":{},"id":"31","name":"WX Auxiliary","properties":{"structurizr.dsl.identifier":"weathersystem.wxauxiliary"},"relationships":[{"description":"Provides 9 datasets (REGION.short_name); 9 datasets (REGION.short_name) to","destinationId":"44","id":"85","sourceId":"31","tags":"Relationship"},{"description":"Provides NwcGeo-CMA, NwcGeo-CRR, NwcGeo-CT, NwcGeo-CTTH, NwcGeo-CTTH-AMSL, NwcGeo-CTTH-Temperature, NwcGeo-Illumination, NwcGeo-PC (REGION.short_name); NwcGeo-CMA, NwcGeo-CRR, NwcGeo-CT, NwcGeo-CTTH, NwcGeo-CTTH-AMSL, NwcGeo-CTTH-Temperature, NwcGeo-Illumination, NwcGeo-PC (REGION.short_name) to","destinationId":"50","id":"135","sourceId":"31","tags":"Relationship"},{"description":"Provides NwcGeo-CT (REGION.short_name); NwcGeo-CT (REGION.short_name) to","destinationId":"54","id":"141","sourceId":"31","tags":"Relationship"},{"description":"Provides NwcGeo-RDT (REGION.short_name); NwcGeo-RDT (REGION.short_name) to","destinationId":"55","id":"145","sourceId":"31","tags":"Relationship"}],"tags":"Element,Container","technology":"Logical review group (Apache Airflow)"},{"components":[{"description":"Legacy Airflow DAG. Group: global. Schedule: 0/15 * * * *. Inventoried task functions: 2. Inputs: GFS (GLB): AIR_PRESSURE_SFC, SURFACE_AMSL; MEANDAIR (REGION.short_name): AIR_PRESSURE_QNH. Outputs: MEANDAIR (REGION.short_name): AIR_PRESSURE_QNH.","documentation":{},"id":"41","name":"Air Pressure QNH GLB","properties":{"structurizr.dsl.identifier":"weathersystem.wxglobal.airpressureqnhglb"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: global. Schedule: 0/15 * * * *. Inventoried task functions: 3. Inputs: GFS (GLB): AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL; MEANDAIR (REGION.short_name): AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL. Outputs: MEANDAIR (REGION.short_name): AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL.","documentation":{},"id":"42","name":"Temperature 2m AGL GLB","properties":{"structurizr.dsl.identifier":"weathersystem.wxglobal.temperature2maglglb"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: global. Schedule: 0/15 * * * *. Inventoried task functions: 2. Inputs: GFS (GLB): VISIBILITY_SFC; MEANDAIR (REGION.short_name): VISIBILITY_SFC. Outputs: MEANDAIR (REGION.short_name): VISIBILITY_SFC.","documentation":{},"id":"43","name":"Visibility GLB","properties":{"structurizr.dsl.identifier":"weathersystem.wxglobal.visibilityglb"},"tags":"Element,Component","technology":"Apache Airflow DAG"}],"description":"Logical review group for legacy Airflow global weather products.","documentation":{},"id":"40","name":"WX Global","properties":{"structurizr.dsl.identifier":"weathersystem.wxglobal"},"relationships":[{"description":"Provides AIR_PRESSURE_QNH, AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL, VISIBILITY_SFC (REGION.short_name) to","destinationId":"44","id":"86","sourceId":"40","tags":"Relationship"},{"description":"Provides AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL (REGION.short_name) to","destinationId":"47","id":"128","sourceId":"40","tags":"Relationship"}],"tags":"Element,Container","technology":"Logical review group (Apache Airflow)"},{"components":[{"description":"Legacy Airflow DAG. Group: regional. Schedule: SCHEDULE_SPEC. Inventoried task functions: 4. Inputs: GFS (REGION.short_name): AIR_PRESSURE_QNH. Outputs: MNDR (REGION.short_name): AirPressure-QNH.","documentation":{},"id":"45","name":"Air Pressure QNH","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.airpressureqnh"},"relationships":[{"description":"Publishes AirPressure-QNH (REGION.short_name) to","destinationId":"10","id":"124","sourceId":"45","tags":"Relationship"}],"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: SCHEDULE_SPEC. Inventoried task functions: 5. Inputs: GFS (REGION.short_name): AIR_TEMPERATURE_2M_AGL, DEW_POINT_TEMPERATURE_2M_AGL.","documentation":{},"id":"46","name":"Air Temperature 2m AGL","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.airtemperature2magl"},"relationships":[{"description":"Publishes layer to","destinationId":"10","id":"126","sourceId":"46","tags":"Relationship"}],"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: 0/15 * * * * (GLB), 0/5 * * * * (non-GLB). Inventoried task functions: 10. Inputs: MEANDAIR (REGION.short_name): 8 datasets. Outputs: MNDR (REGION.short_name): 7 datasets.","documentation":{},"id":"47","name":"Airports","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.airports"},"relationships":[{"description":"Publishes AirportElevation, AirportHasLongTaf, AirportIcaoCode, AirportKeyValue, AirportLatLon, AirportLayer, MetarLayer (REGION.short_name) to","destinationId":"10","id":"130","sourceId":"47","tags":"Relationship"}],"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: 0/5 * * * *. Inventoried task functions: 14. Inputs: MNDR (REGION.short_name): 5 datasets. Outputs: MNDR (REGION.short_name): CloudCeiling-AGL, CloudCeiling-AMSL, CloudLowestTop-AMSL.","documentation":{},"id":"48","name":"Cloud","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.cloud"},"relationships":[{"description":"Publishes CloudCeiling-AGL, CloudLowestTop-AMSL (REGION.short_name) to","destinationId":"10","id":"133","sourceId":"48","tags":"Relationship"}],"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: 0/15 * * * *. Inventoried task functions: 3. Inputs: GFS (GLB): CLOUD_CEILING_AMSL, CLOUD_COVER_PRES, SURFACE_AMSL; MEANDAIR (REGION.short_name): CLOUD_CEILING_AGL, CLOUD_COVER_ATM. Outputs: MEANDAIR (REGION.short_name): CLOUD_CEILING_AGL, CLOUD_COVER_ATM.","documentation":{},"id":"49","name":"Clouds","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.clouds"},"relationships":[{"description":"Provides CLOUD_CEILING_AGL, CLOUD_COVER_ATM (REGION.short_name) to","destinationId":"47","id":"127","sourceId":"49","tags":"Relationship"}],"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: SCHEDULE_SPEC. Inventoried task functions: 22. Inputs: GFS (REGION.short_name): 9 datasets; KNMI (REGION.short_name): 8 datasets; MNDR (REGION.short_name): 9 datasets. Outputs: MNDR (REGION.short_name): CloudTop-AMSL.","documentation":{},"id":"50","name":"Nowcast","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.nowcast"},"relationships":[{"description":"Provides CloudTop-AMSL (REGION.short_name) to","destinationId":"48","id":"132","sourceId":"50","tags":"Relationship"},{"description":"Publishes CloudTop-AMSL (REGION.short_name) to","destinationId":"10","id":"138","sourceId":"50","tags":"Relationship"}],"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: 0/15 * * * *. Inventoried task functions: 12. Inputs: DWD (REGION.short_name): ICON-EU-CloudCover-PRES; GFS (REGION.short_name): CLOUD_COVER_PRES; MNDR (REGION.short_name): NWP-CloudLowestTop-AMSL. Outputs: MNDR (REGION.short_name): NWP-CloudCeiling-AMSL, NWP-CloudCover, NWP-CloudLowestTop-AMSL.","documentation":{},"id":"51","name":"NWP Cloud","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.nwpcloud"},"relationships":[{"description":"Provides NWP-CloudCeiling-AMSL, NWP-CloudCover, NWP-CloudLowestTop-AMSL (REGION.short_name) to","destinationId":"48","id":"131","sourceId":"51","tags":"Relationship"},{"description":"Provides NWP-CloudCover (REGION.short_name) to","destinationId":"50","id":"136","sourceId":"51","tags":"Relationship"}],"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: 0/15 * * * *. Inventoried task functions: 13.","documentation":{},"id":"52","name":"Process GFS","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.processgfs"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: 0/15 * * * *. Inventoried task functions: 3.","documentation":{},"id":"53","name":"Process Icon Eu","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.processiconeu"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: SCHEDULE_SPEC. Inventoried task functions: 3. Inputs: DWD (nat): sis; GFS (REGION.short_name): WIND_U_3658M_AMSL, WIND_V_3658M_AMSL; KNMI (nat): msg-cpp; KNMI (REGION.short_name): NwcGeo-CT; MNDR (REGION.short_name): NwcGeo-CT. Outputs: MEANDAIR (REGION.short_name): GLOBAL_HORIZONTAL_IRRADIANCE_SFC.","documentation":{},"id":"54","name":"Radiation","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.radiation"},"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: SCHEDULE_SPEC. Inventoried task functions: 5. Inputs: GFS (REGION.short_name): WIND_U_3658M_AMSL, WIND_V_3658M_AMSL; KNMI (REGION.short_name): NwcGeo-RDT; MNDR (REGION.short_name): NwcGeo-RDT. Outputs: MNDR (REGION.short_name): Thunderstorm, Thunderstorm-FL.","documentation":{},"id":"55","name":"Rdt","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.rdt"},"relationships":[{"description":"Publishes Thunderstorm, Thunderstorm-FL (REGION.short_name) to","destinationId":"10","id":"147","sourceId":"55","tags":"Relationship"}],"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: SCHEDULE_SPEC. Inventoried task functions: 5. Inputs: GFS (REGION.short_name): VISIBILITY_SFC. Outputs: MNDR (REGION.short_name): Visibility-SFC.","documentation":{},"id":"56","name":"Surface Visibility","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.surfacevisibility"},"relationships":[{"description":"Publishes Visibility-SFC (REGION.short_name) to","destinationId":"10","id":"149","sourceId":"56","tags":"Relationship"}],"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: 0/15 * * * *. Inventoried task functions: 3. Inputs: GFS (GLB): WIND_GUST_10M_AGL, WIND_U_10M_AGL, WIND_V_10M_AGL; MEANDAIR (REGION.short_name): WIND_GUST_10M_AGL, wind-10m-agl. Outputs: MEANDAIR (REGION.short_name): WIND_GUST_10M_AGL.","documentation":{},"id":"57","name":"Wind","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.wind"},"relationships":[{"description":"Provides WIND_GUST_10M_AGL (REGION.short_name) to","destinationId":"47","id":"129","sourceId":"57","tags":"Relationship"}],"tags":"Element,Component","technology":"Apache Airflow DAG"},{"description":"Legacy Airflow DAG. Group: regional. Schedule: SCHEDULE_SPEC. Inventoried task functions: 10. Inputs: GFS (REGION.short_name): WIND_GUST_10M_AGL, wind-10m-agl. Outputs: MNDR (REGION.short_name): Wind-10m-AGL, Wind-80m-AGL, WindGust-10m-AGL.","documentation":{},"id":"58","name":"Wind AGL","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional.windagl"},"relationships":[{"description":"Publishes Wind-10m-AGL, Wind-80m-AGL, WindGust-10m-AGL (REGION.short_name) to","destinationId":"10","id":"152","sourceId":"58","tags":"Relationship"}],"tags":"Element,Component","technology":"Apache Airflow DAG"}],"description":"Logical review group for legacy Airflow regional weather products.","documentation":{},"id":"44","name":"WX Regional","properties":{"structurizr.dsl.identifier":"weathersystem.wxregional"},"relationships":[{"description":"Publishes 17 datasets (REGION.short_name) to","destinationId":"10","id":"83","sourceId":"44","tags":"Relationship"}],"tags":"Element,Container","technology":"Logical review group (Apache Airflow)"}],"description":"Generated review workspace from repository-derived weather pipeline inventory.","documentation":{},"id":"9","location":"Unspecified","name":"Weather Processing System (Generated)","properties":{"structurizr.dsl.identifier":"weathersystem"},"tags":"Element,Software System"}]},"name":"weather-generated-review","properties":{"structurizr.dsl":"d29ya3NwYWNlICJ3ZWF0aGVyLWdlbmVyYXRlZC1yZXZpZXciICJHZW5lcmF0ZWQgd2VhdGhlciBwcm9jZXNzaW5nIHJldmlldyB3b3Jrc3BhY2UiIHsKCiAgICAhaWRlbnRpZmllcnMgaGllcmFyY2hpY2FsCgogICAgbW9kZWwgewogICAgICAgIGN1c3RvbWVyID0gcGVyc29uICJDdXN0b21lciIgIkNvbnN1bWVzIHdlYXRoZXIgbGF5ZXJzIGFuZCBkYXRhc2V0cyBleHBvc2VkIGJ5IGFpcnNlcnZlci4iCgogICAgICAgIGR3ZCA9IHNvZnR3YXJlU3lzdGVtICJEV0QiICJEV0Qgc291cmNlIGRhdGFzZXRzIGFuZCBzYXRlbGxpdGUgcHJvZHVjdHMuIgogICAgICAgIGdmcyA9IHNvZnR3YXJlU3lzdGVtICJHRlMiICJOT0FBIEdsb2JhbCBGb3JlY2FzdCBTeXN0ZW0gc291cmNlIGRhdGFzZXRzLiIKICAgICAgICBndGcgPSBzb2Z0d2FyZVN5c3RlbSAiR1RHIiAiR3JhcGhpY2FsIFR1cmJ1bGVuY2UgR3VpZGFuY2Ugc291cmNlIGRhdGFzZXRzLiIKICAgICAgICBpY29uRDIgPSBzb2Z0d2FyZVN5c3RlbSAiSUNPTi1EMiIgIkRXRCBJQ09OLUQyIHNvdXJjZSBkYXRhc2V0cy4iCiAgICAgICAga25taSA9IHNvZnR3YXJlU3lzdGVtICJLTk1JIiAiS05NSSBzb3VyY2UgZGF0YXNldHMgYW5kIE5XQy9HRU8gZmFsbGJhY2sgcHJvZHVjdHMuIgogICAgICAgIG53Y2dlbyA9IHNvZnR3YXJlU3lzdGVtICJOV0MvR0VPIiAiU2F0ZWxsaXRlLWRlcml2ZWQgTldDL0dFTyBwcm9kdWN0IHNvdXJjZS4iCiAgICAgICAgd2FmcyA9IHNvZnR3YXJlU3lzdGVtICJXQUZTIiAiV29ybGQgQXJlYSBGb3JlY2FzdCBTeXN0ZW0gc291cmNlIGRhdGFzZXRzLiIKCiAgICAgICAgd2VhdGhlclN5c3RlbSA9IHNvZnR3YXJlU3lzdGVtICJXZWF0aGVyIFByb2Nlc3NpbmcgU3lzdGVtIChHZW5lcmF0ZWQpIiAiR2VuZXJhdGVkIHJldmlldyB3b3Jrc3BhY2UgZnJvbSByZXBvc2l0b3J5LWRlcml2ZWQgd2VhdGhlciBwaXBlbGluZSBpbnZlbnRvcnkuIiB7CiAgICAgICAgICAgIGFpcnNlcnZlciA9IGNvbnRhaW5lciAiYWlyc2VydmVyIiAiU2VydmVzIHByb2Nlc3NlZCB3ZWF0aGVyIGxheWVycyBhbmQgZGF0YXNldHMgdG8gZG93bnN0cmVhbSBjbGllbnRzLiIgIkFjdGl4IFdlYiAvIHB1Ymxpc2hpbmcgQVBJIgoKICAgICAgICAgICAgbndwR2xvYmFsUHJvZHVjdHMgPSBjb250YWluZXIgIk5XUCBHbG9iYWwgUHJvZHVjdHMiICJMb2dpY2FsIHJldmlldyBncm91cCBmb3IgZGVyaXZlZCBnbG9iYWwgTldQIGZpZWxkIHByb2R1Y3RzLiBUaGlzIGlzIGEgZG9jdW1lbnRhdGlvbiBzcGxpdCwgbm90IGEgc2VwYXJhdGUgZGVwbG95YWJsZS4iICJMb2dpY2FsIHJldmlldyBncm91cCAoQXJnbyBXb3JrZmxvd3MgKyBQeXRob24pIiB7CiAgICAgICAgICAgICAgICBjbG91ZEdsYiA9IGNvbXBvbmVudCAiQ2xvdWQgR0xCIiAiR2VuZXJhdGVkIGZyb20gY2xvdWQtZ2xiIChBcmdvIFdvcmtmbG93VGVtcGxhdGUpLiBTY2hlZHVsZTogKi8xNSAqICogKiAqLiBJbnB1dHM6IEdGUyAoR0xPQkFMKTogQUxUSVRVREVfU0ZDLCBDTE9VRF9DRUlMSU5HX0FNU0wsIENMT1VEX0NPVkVSX1BSRVM7IE1FQU5EQUlSX05XUCAoR0xPQkFMKTogQ0xPVURfQ09WRVJfQVRNLiBPdXRwdXRzOiBNRUFOREFJUl9OV1AgKEdMT0JBTCk6IENMT1VEX0NFSUxJTkdfQUdMLCBDTE9VRF9DT1ZFUl9BVE0sIENMT1VEX1RPUF9BTVNMLCBDTE9VRF9UT1BfUkVMSUVGLiIgIkFyZ28gV29ya2Zsb3dUZW1wbGF0ZSIKICAgICAgICAgICAgICAgIHByZWNpcGl0YXRpb25HbGIgPSBjb21wb25lbnQgIlByZWNpcGl0YXRpb24gR0xCIiAiR2VuZXJhdGVkIGZyb20gcHJlY2lwaXRhdGlvbi1nbGIgKEFyZ28gV29ya2Zsb3dUZW1wbGF0ZSkuIFNjaGVkdWxlOiAqLzE1ICogKiAqICouIElucHV0czogR0ZTIChHTE9CQUwpOiBDT05WRUNUSVZFX1BSRUNJUElUQVRJT05fUkFURV9TRkMsIFBSRUNJUElUQVRJT05fUkFURV9TRkM7IE1FQU5EQUlSX05XUCAoR0xPQkFMKTogUFJFQ0lQSVRBVElPTl9SQVRFX1NGQy4gT3V0cHV0czogTUVBTkRBSVJfTldQIChHTE9CQUwpOiBDT05WRUNUSVZFX1BSRUNJUElUQVRJT05fUkFURV9TRkMsIFBSRUNJUElUQVRJT05fUFJPQkFCSUxJVFlfU0ZDLCBQUkVDSVBJVEFUSU9OX1JBVEVfU0ZDLiIgIkFyZ28gV29ya2Zsb3dUZW1wbGF0ZSIKICAgICAgICAgICAgICAgIHByZXNzdXJlR2xiID0gY29tcG9uZW50ICJQcmVzc3VyZSBHTEIiICJHZW5lcmF0ZWQgZnJvbSBwcmVzc3VyZS1nbGIgKEFyZ28gV29ya2Zsb3dUZW1wbGF0ZSkuIFNjaGVkdWxlOiAqLzE1ICogKiAqICouIElucHV0czogR0ZTIChHTE9CQUwpOiBBSVJfUFJFU1NVUkVfU0ZDLCBBTFRJVFVERV9TRkM7IE1FQU5EQUlSX05XUCAoR0xPQkFMKTogQUlSX1BSRVNTVVJFX1FOSC4gT3V0cHV0czogTUVBTkRBSVJfTldQIChHTE9CQUwpOiBBSVJfUFJFU1NVUkVfUU5ILiIgIkFyZ28gV29ya2Zsb3dUZW1wbGF0ZSIKICAgICAgICAgICAgICAgIHRlbXBlcmF0dXJlR2xiID0gY29tcG9uZW50ICJUZW1wZXJhdHVyZSBHTEIiICJHZW5lcmF0ZWQgZnJvbSB0ZW1wZXJhdHVyZS1nbGIgKEFyZ28gV29ya2Zsb3dUZW1wbGF0ZSkuIFNjaGVkdWxlOiAqLzE1ICogKiAqICouIElucHV0czogR0ZTIChHTE9CQUwpOiBBSVJfVEVNUEVSQVRVUkVfMk1fQUdMLCBERVdfUE9JTlRfVEVNUEVSQVRVUkVfMk1fQUdMOyBNRUFOREFJUl9OV1AgKEdMT0JBTCk6IEFJUl9URU1QRVJBVFVSRV8yTV9BR0wuIE91dHB1dHM6IE1FQU5EQUlSX05XUCAoR0xPQkFMKTogQUlSX1RFTVBFUkFUVVJFXzJNX0FHTCwgREVXX1BPSU5UX1RFTVBFUkFUVVJFXzJNX0FHTC4iICJBcmdvIFdvcmtmbG93VGVtcGxhdGUiCiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5R2xiID0gY29tcG9uZW50ICJWaXNpYmlsaXR5IEdMQiIgIkdlbmVyYXRlZCBmcm9tIHZpc2liaWxpdHktZ2xiIChBcmdvIFdvcmtmbG93VGVtcGxhdGUpLiBTY2hlZHVsZTogKi8xNSAqICogKiAqLiBJbnB1dHM6IEdGUyAoR0xPQkFMKTogVklTSUJJTElUWV9TRkM7IE1FQU5EQUlSX05XUCAoR0xPQkFMKTogVklTSUJJTElUWV9TRkMuIE91dHB1dHM6IE1FQU5EQUlSX05XUCAoR0xPQkFMKTogVklTSUJJTElUWV9TRkMuIiAiQXJnbyBXb3JrZmxvd1RlbXBsYXRlIgogICAgICAgICAgICAgICAgd2VhdGhlclR5cGVHbGIgPSBjb21wb25lbnQgIldlYXRoZXIgVHlwZSBHTEIiICJHZW5lcmF0ZWQgZnJvbSB3ZWF0aGVyLXR5cGUtZ2xiIChBcmdvIFdvcmtmbG93VGVtcGxhdGUpLiBTY2hlZHVsZTogKi8xNSAqICogKiAqLiBJbnB1dHM6IEdGUyAoR0xPQkFMKTogMTQgZGF0YXNldHM7IE1FQU5EQUlSX05XUCAoR0xPQkFMKTogV0VBVEhFUl9UWVBFX1NGQy4gT3V0cHV0czogTUVBTkRBSVJfTldQIChHTE9CQUwpOiBXRUFUSEVSX1RZUEVfU0ZDLiIgIkFyZ28gV29ya2Zsb3dUZW1wbGF0ZSIKICAgICAgICAgICAgICAgIHdpbmRHbGIgPSBjb21wb25lbnQgIldpbmQgR0xCIiAiR2VuZXJhdGVkIGZyb20gd2luZC1nbGIgKEFyZ28gV29ya2Zsb3dUZW1wbGF0ZSkuIFNjaGVkdWxlOiAqLzE1ICogKiAqICouIElucHV0czogR0ZTIChHTE9CQUwpOiA3IGRhdGFzZXRzOyBNRUFOREFJUl9OV1AgKEdMT0JBTCk6IFdJTkRfMTBNX0FHTC4gT3V0cHV0czogTUVBTkRBSVJfTldQIChHTE9CQUwpOiBXSU5EXzEwTV9BR0wsIFdJTkRfODBNX0FHTCwgV0lORF9GTCwgV0lORF9HVVNUXzEwTV9BR0wuIiAiQXJnbyBXb3JrZmxvd1RlbXBsYXRlIgogICAgICAgICAgICB9CgogICAgICAgICAgICBud3BIYXphcmRzID0gY29udGFpbmVyICJOV1AgSGF6YXJkcyIgIkxvZ2ljYWwgcmV2aWV3IGdyb3VwIGZvciBoYXphcmQgYW5kIGluc3RhYmlsaXR5IHByb2R1Y3RzLiBUaGlzIGlzIGEgZG9jdW1lbnRhdGlvbiBzcGxpdCwgbm90IGEgc2VwYXJhdGUgZGVwbG95YWJsZS4iICJMb2dpY2FsIHJldmlldyBncm91cCAoQXJnbyBXb3JrZmxvd3MgKyBQeXRob24pIiB7CiAgICAgICAgICAgICAgICBpY2luZ0dsYiA9IGNvbXBvbmVudCAiSWNpbmcgR0xCIiAiR2VuZXJhdGVkIGZyb20gaWNpbmctZ2xiIChBcmdvIFdvcmtmbG93VGVtcGxhdGUpLiBTY2hlZHVsZTogKi8xNSAqICogKiAqLiBJbnB1dHM6IE1FQU5EQUlSX05XUCAoR0xPQkFMKTogSUNJTkdfU0VWRVJJVFlfRkw7IFdBRlMgKEdMT0JBTCk6IElDSU5HX1NFVkVSSVRZX1BSRVMuIE91dHB1dHM6IE1FQU5EQUlSX05XUCAoR0xPQkFMKTogSUNJTkdfU0VWRVJJVFlfQVRNLCBJQ0lOR19TRVZFUklUWV9GTC4iICJBcmdvIFdvcmtmbG93VGVtcGxhdGUiCiAgICAgICAgICAgICAgICBrSW5kZXhHbGIgPSBjb21wb25lbnQgIksgSW5kZXggR0xCIiAiR2VuZXJhdGVkIGZyb20gay1pbmRleC1nbGIgKEFyZ28gV29ya2Zsb3dUZW1wbGF0ZSkuIFNjaGVkdWxlOiAqLzE1ICogKiAqICouIElucHV0czogR0ZTIChHTE9CQUwpOiBBSVJfVEVNUEVSQVRVUkVfUFJFUywgUkVMQVRJVkVfSFVNSURJVFlfUFJFUzsgTUVBTkRBSVJfTldQIChHTE9CQUwpOiBLX0lOREVYLiBPdXRwdXRzOiBNRUFOREFJUl9OV1AgKEdMT0JBTCk6IEtfSU5ERVguIiAiQXJnbyBXb3JrZmxvd1RlbXBsYXRlIgogICAgICAgICAgICAgICAgdGh1bmRlcnN0b3JtR2xiID0gY29tcG9uZW50ICJUaHVuZGVyc3Rvcm0gR0xCIiAiR2VuZXJhdGVkIGZyb20gdGh1bmRlcnN0b3JtLWdsYiAoQXJnbyBXb3JrZmxvd1RlbXBsYXRlKS4gU2NoZWR1bGU6ICovMTUgKiAqICogKi4gSW5wdXRzOiBHRlMgKEdMT0JBTCk6IENPTlZFQ1RJVkVfQVZBSUxBQkxFX1BPVEVOVElBTF9FTkVSR1lfU0ZDLCBSRUZMRUNUSVZJVFlfQVRNOyBNRUFOREFJUl9OV1AgKEdMT0JBTCk6IENMT1VEX1RPUF9BTVNMLCBUSFVOREVSU1RPUk1fU0VWRVJJVFlfQVRNLiBPdXRwdXRzOiBNRUFOREFJUl9OV1AgKEdMT0JBTCk6IFRIVU5ERVJTVE9STV9TRVZFUklUWV9BVE0uIiAiQXJnbyBXb3JrZmxvd1RlbXBsYXRlIgogICAgICAgICAgICAgICAgdHVyYnVsZW5jZUdsYiA9IGNvbXBvbmVudCAiVHVyYnVsZW5jZSBHTEIiICJHZW5lcmF0ZWQgZnJvbSB0dXJidWxlbmNlLWdsYiAoQXJnbyBXb3JrZmxvd1RlbXBsYXRlKS4gU2NoZWR1bGU6ICovMTUgKiAqICogKi4gSW5wdXRzOiBHRlMgKEdMT0JBTCk6IDUgZGF0YXNldHM7IE1FQU5EQUlSX05XUCAoR0xPQkFMKTogVFVSQlVMRU5DRV9GTDsgV0FGUyAoR0xPQkFMKTogVFVSQlVMRU5DRV9QUkVTLiBPdXRwdXRzOiBNRUFOREFJUl9OV1AgKEdMT0JBTCk6IFRVUkJVTEVOQ0VfQVRNLCBUVVJCVUxFTkNFX0ZMLiIgIkFyZ28gV29ya2Zsb3dUZW1wbGF0ZSIKICAgICAgICAgICAgICAgIHR1cmJ1bGVuY2VOYTIgPSBjb21wb25lbnQgIlR1cmJ1bGVuY2UgTmEyIiAiR2VuZXJhdGVkIGZyb20gdHVyYnVsZW5jZS1uYTIgKEFyZ28gV29ya2Zsb3dUZW1wbGF0ZSkuIFNjaGVkdWxlOiAqLzEwICogKiAqICouIElucHV0czogR1RHIChOT1JUSF9BTUVSSUNBXzIpOiBUVVJCVUxFTkNFX0FNU0w7IE1FQU5EQUlSX05XUCAoTk9SVEhfQU1FUklDQV8yKTogVFVSQlVMRU5DRV9GTC4gT3V0cHV0czogTUVBTkRBSVJfTldQIChOT1JUSF9BTUVSSUNBXzIpOiBUVVJCVUxFTkNFX0FUTSwgVFVSQlVMRU5DRV9GTC4iICJBcmdvIFdvcmtmbG93VGVtcGxhdGUiCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG53cFJlZ2lvbmFsUHJvZHVjdHMgPSBjb250YWluZXIgIk5XUCBSZWdpb25hbCBQcm9kdWN0cyIgIkxvZ2ljYWwgcmV2aWV3IGdyb3VwIGZvciByZWdpb25hbCBOV1AtZGVyaXZlZCBwcm9kdWN0cy4gVGhpcyBpcyBhIGRvY3VtZW50YXRpb24gc3BsaXQsIG5vdCBhIHNlcGFyYXRlIGRlcGxveWFibGUuIiAiTG9naWNhbCByZXZpZXcgZ3JvdXAgKEFyZ28gV29ya2Zsb3dzICsgUHl0aG9uKSIgewogICAgICAgICAgICAgICAgaXJyYWRpYW5jZUV1MiA9IGNvbXBvbmVudCAiSXJyYWRpYW5jZSBFdTIiICJHZW5lcmF0ZWQgZnJvbSBpcnJhZGlhbmNlLWV1MiAoQXJnbyBXb3JrZmxvd1RlbXBsYXRlKS4gU2NoZWR1bGU6ICovMTUgKiAqICogKi4gSW5wdXRzOiBJQ09OX0QyIChFVVJPUEVfMik6IERJRkZVU0VfSE9SSVpPTlRBTF9JUlJBRElBTkNFX1NGQywgRElSRUNUX0hPUklaT05UQUxfSVJSQURJQU5DRV9TRkM7IE1FQU5EQUlSX05XUCAoRVVST1BFXzIpOiBHTE9CQUxfSE9SSVpPTlRBTF9JUlJBRElBTkNFX1NGQy4gT3V0cHV0czogTUVBTkRBSVJfTldQIChFVVJPUEVfMik6IEdMT0JBTF9IT1JJWk9OVEFMX0lSUkFESUFOQ0VfU0ZDLiIgIkFyZ28gV29ya2Zsb3dUZW1wbGF0ZSIKICAgICAgICAgICAgICAgIHdpbmRFdTIgPSBjb21wb25lbnQgIldpbmQgRXUyIiAiR2VuZXJhdGVkIGZyb20gd2luZC1ldTIgKEFyZ28gV29ya2Zsb3dUZW1wbGF0ZSkuIFNjaGVkdWxlOiAqLzE1ICogKiAqICouIElucHV0czogSUNPTl9EMiAoRVVST1BFXzIpOiBXSU5EX1VfODBNX0FHTCwgV0lORF9WXzgwTV9BR0w7IE1FQU5EQUlSX05XUCAoRVVST1BFXzIpOiBXSU5EXzgwTV9BR0wuIE91dHB1dHM6IE1FQU5EQUlSX05XUCAoRVVST1BFXzIpOiBXSU5EXzgwTV9BR0wuIiAiQXJnbyBXb3JrZmxvd1RlbXBsYXRlIgogICAgICAgICAgICB9CgogICAgICAgICAgICBud2NOb3djYXN0ID0gY29udGFpbmVyICJOV0MgTm93Y2FzdCIgIkxvZ2ljYWwgcmV2aWV3IGdyb3VwIGZvciBjdXJyZW50IEFyZ28tZHJpdmVuIG5vd2Nhc3QgcHJvY2Vzc2luZy4iICJMb2dpY2FsIHJldmlldyBncm91cCAoQXJnbyBXb3JrZmxvd3MgKyBQeXRob24pIiB7CiAgICAgICAgICAgICAgICBjbGVhbnVwID0gY29tcG9uZW50ICJDbGVhbnVwIiAiR2VuZXJhdGVkIGZyb20gY2xlYW51cCAoQXJnbyBXb3JrZmxvd1RlbXBsYXRlKS4gU2NoZWR1bGU6ICovMTUgKiAqICogKi4iICJBcmdvIFdvcmtmbG93VGVtcGxhdGUiCiAgICAgICAgICAgICAgICBpcnJhZGlhbmNlID0gY29tcG9uZW50ICJJcnJhZGlhbmNlIiAiR2VuZXJhdGVkIGZyb20gaXJyYWRpYW5jZSAoQXJnbyBXb3JrZmxvd1RlbXBsYXRlKS4gU2NoZWR1bGU6ICovNSAqICogKiAqLiBJbnB1dHM6IEdGUyAoR0xPQkFMKTogNSBkYXRhc2V0czsgTUVBTkRBSVJfTldDOiBHTE9CQUxfSE9SSVpPTlRBTF9JUlJBRElBTkNFX1NGQy4gT3V0cHV0czogTUVBTkRBSVJfTldDOiBHTE9CQUxfSE9SSVpPTlRBTF9JUlJBRElBTkNFX1NGQy4iICJBcmdvIFdvcmtmbG93VGVtcGxhdGUiCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHd4QXV4aWxpYXJ5ID0gY29udGFpbmVyICJXWCBBdXhpbGlhcnkiICJMb2dpY2FsIHJldmlldyBncm91cCBmb3IgbGVnYWN5IEFpcmZsb3cgaW5nZXN0aW9uIGFuZCBtYWludGVuYW5jZSBEQUdzLiIgIkxvZ2ljYWwgcmV2aWV3IGdyb3VwIChBcGFjaGUgQWlyZmxvdykiIHsKICAgICAgICAgICAgICAgIGRvd25sb2FkR2ZzID0gY29tcG9uZW50ICJEb3dubG9hZCBHRlMiICJMZWdhY3kgQWlyZmxvdyBEQUcuIEdyb3VwOiBhdXhpbGlhcnkuIFNjaGVkdWxlOiBTQ0hFRFVMRV9TUEVDLiBJbnZlbnRvcmllZCB0YXNrIGZ1bmN0aW9uczogMC4iICJBcGFjaGUgQWlyZmxvdyBEQUciCiAgICAgICAgICAgICAgICBkb3dubG9hZEljb25FdSA9IGNvbXBvbmVudCAiRG93bmxvYWQgSWNvbiBFdSIgIkxlZ2FjeSBBaXJmbG93IERBRy4gR3JvdXA6IGF1eGlsaWFyeS4gU2NoZWR1bGU6IFNDSEVEVUxFX1NQRUMuIEludmVudG9yaWVkIHRhc2sgZnVuY3Rpb25zOiAwLiIgIkFwYWNoZSBBaXJmbG93IERBRyIKICAgICAgICAgICAgICAgIGRvd25sb2FkTWV0YXIgPSBjb21wb25lbnQgIkRvd25sb2FkIE1ldGFyIiAiTGVnYWN5IEFpcmZsb3cgREFHLiBHcm91cDogYXV4aWxpYXJ5LiBTY2hlZHVsZTogU0NIRURVTEVfU1BFQy4gSW52ZW50b3JpZWQgdGFzayBmdW5jdGlvbnM6IDIuIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICAgICAgZG93bmxvYWROd2NnZW8gPSBjb21wb25lbnQgIkRvd25sb2FkIE5XQy9HRU8iICJMZWdhY3kgQWlyZmxvdyBEQUcuIEdyb3VwOiBhdXhpbGlhcnkuIFNjaGVkdWxlOiBTQ0hFRFVMRV9TUEVDLiBJbnZlbnRvcmllZCB0YXNrIGZ1bmN0aW9uczogMC4gSW5wdXRzOiBOV0NHRU8gKE5BVCk6IDcgZGF0YXNldHMuIE91dHB1dHM6IEtOTUkgKFJFR0lPTi5zaG9ydF9uYW1lKTogMTEgZGF0YXNldHM7IE1ORFIgKFJFR0lPTi5zaG9ydF9uYW1lKTogMTEgZGF0YXNldHMuIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICAgICAgZG93bmxvYWRTeW5vcCA9IGNvbXBvbmVudCAiRG93bmxvYWQgU3lub3AiICJMZWdhY3kgQWlyZmxvdyBEQUcuIEdyb3VwOiBhdXhpbGlhcnkuIFNjaGVkdWxlOiBTQ0hFRFVMRV9TUEVDLiBJbnZlbnRvcmllZCB0YXNrIGZ1bmN0aW9uczogMi4iICJBcGFjaGUgQWlyZmxvdyBEQUciCiAgICAgICAgICAgICAgICBkb3dubG9hZFRhZiA9IGNvbXBvbmVudCAiRG93bmxvYWQgVGFmIiAiTGVnYWN5IEFpcmZsb3cgREFHLiBHcm91cDogYXV4aWxpYXJ5LiBTY2hlZHVsZTogU0NIRURVTEVfU1BFQy4gSW52ZW50b3JpZWQgdGFzayBmdW5jdGlvbnM6IDIuIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICAgICAgbWFpbnRlbmFuY2UgPSBjb21wb25lbnQgIk1haW50ZW5hbmNlIiAiTGVnYWN5IEFpcmZsb3cgREFHLiBHcm91cDogYXV4aWxpYXJ5LiBTY2hlZHVsZTogMC8xNSAqICogKiAqLiBJbnZlbnRvcmllZCB0YXNrIGZ1bmN0aW9uczogNy4iICJBcGFjaGUgQWlyZmxvdyBEQUciCiAgICAgICAgICAgICAgICBwcmVwYXJlR2ZzID0gY29tcG9uZW50ICJQcmVwYXJlIEdGUyIgIkxlZ2FjeSBBaXJmbG93IERBRy4gR3JvdXA6IGF1eGlsaWFyeS4gU2NoZWR1bGU6IDAvMTUgKiAqICogKi4gSW52ZW50b3JpZWQgdGFzayBmdW5jdGlvbnM6IDIuIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICB9CgogICAgICAgICAgICB3eEdsb2JhbCA9IGNvbnRhaW5lciAiV1ggR2xvYmFsIiAiTG9naWNhbCByZXZpZXcgZ3JvdXAgZm9yIGxlZ2FjeSBBaXJmbG93IGdsb2JhbCB3ZWF0aGVyIHByb2R1Y3RzLiIgIkxvZ2ljYWwgcmV2aWV3IGdyb3VwIChBcGFjaGUgQWlyZmxvdykiIHsKICAgICAgICAgICAgICAgIGFpclByZXNzdXJlUW5oR2xiID0gY29tcG9uZW50ICJBaXIgUHJlc3N1cmUgUU5IIEdMQiIgIkxlZ2FjeSBBaXJmbG93IERBRy4gR3JvdXA6IGdsb2JhbC4gU2NoZWR1bGU6IDAvMTUgKiAqICogKi4gSW52ZW50b3JpZWQgdGFzayBmdW5jdGlvbnM6IDIuIElucHV0czogR0ZTIChHTEIpOiBBSVJfUFJFU1NVUkVfU0ZDLCBTVVJGQUNFX0FNU0w7IE1FQU5EQUlSIChSRUdJT04uc2hvcnRfbmFtZSk6IEFJUl9QUkVTU1VSRV9RTkguIE91dHB1dHM6IE1FQU5EQUlSIChSRUdJT04uc2hvcnRfbmFtZSk6IEFJUl9QUkVTU1VSRV9RTkguIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICAgICAgdGVtcGVyYXR1cmUybUFnbEdsYiA9IGNvbXBvbmVudCAiVGVtcGVyYXR1cmUgMm0gQUdMIEdMQiIgIkxlZ2FjeSBBaXJmbG93IERBRy4gR3JvdXA6IGdsb2JhbC4gU2NoZWR1bGU6IDAvMTUgKiAqICogKi4gSW52ZW50b3JpZWQgdGFzayBmdW5jdGlvbnM6IDMuIElucHV0czogR0ZTIChHTEIpOiBBSVJfVEVNUEVSQVRVUkVfMk1fQUdMLCBERVdfUE9JTlRfVEVNUEVSQVRVUkVfMk1fQUdMOyBNRUFOREFJUiAoUkVHSU9OLnNob3J0X25hbWUpOiBBSVJfVEVNUEVSQVRVUkVfMk1fQUdMLCBERVdfUE9JTlRfVEVNUEVSQVRVUkVfMk1fQUdMLiBPdXRwdXRzOiBNRUFOREFJUiAoUkVHSU9OLnNob3J0X25hbWUpOiBBSVJfVEVNUEVSQVRVUkVfMk1fQUdMLCBERVdfUE9JTlRfVEVNUEVSQVRVUkVfMk1fQUdMLiIgIkFwYWNoZSBBaXJmbG93IERBRyIKICAgICAgICAgICAgICAgIHZpc2liaWxpdHlHbGIgPSBjb21wb25lbnQgIlZpc2liaWxpdHkgR0xCIiAiTGVnYWN5IEFpcmZsb3cgREFHLiBHcm91cDogZ2xvYmFsLiBTY2hlZHVsZTogMC8xNSAqICogKiAqLiBJbnZlbnRvcmllZCB0YXNrIGZ1bmN0aW9uczogMi4gSW5wdXRzOiBHRlMgKEdMQik6IFZJU0lCSUxJVFlfU0ZDOyBNRUFOREFJUiAoUkVHSU9OLnNob3J0X25hbWUpOiBWSVNJQklMSVRZX1NGQy4gT3V0cHV0czogTUVBTkRBSVIgKFJFR0lPTi5zaG9ydF9uYW1lKTogVklTSUJJTElUWV9TRkMuIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICB9CgogICAgICAgICAgICB3eFJlZ2lvbmFsID0gY29udGFpbmVyICJXWCBSZWdpb25hbCIgIkxvZ2ljYWwgcmV2aWV3IGdyb3VwIGZvciBsZWdhY3kgQWlyZmxvdyByZWdpb25hbCB3ZWF0aGVyIHByb2R1Y3RzLiIgIkxvZ2ljYWwgcmV2aWV3IGdyb3VwIChBcGFjaGUgQWlyZmxvdykiIHsKICAgICAgICAgICAgICAgIGFpclByZXNzdXJlUW5oID0gY29tcG9uZW50ICJBaXIgUHJlc3N1cmUgUU5IIiAiTGVnYWN5IEFpcmZsb3cgREFHLiBHcm91cDogcmVnaW9uYWwuIFNjaGVkdWxlOiBTQ0hFRFVMRV9TUEVDLiBJbnZlbnRvcmllZCB0YXNrIGZ1bmN0aW9uczogNC4gSW5wdXRzOiBHRlMgKFJFR0lPTi5zaG9ydF9uYW1lKTogQUlSX1BSRVNTVVJFX1FOSC4gT3V0cHV0czogTU5EUiAoUkVHSU9OLnNob3J0X25hbWUpOiBBaXJQcmVzc3VyZS1RTkguIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICAgICAgYWlyVGVtcGVyYXR1cmUybUFnbCA9IGNvbXBvbmVudCAiQWlyIFRlbXBlcmF0dXJlIDJtIEFHTCIgIkxlZ2FjeSBBaXJmbG93IERBRy4gR3JvdXA6IHJlZ2lvbmFsLiBTY2hlZHVsZTogU0NIRURVTEVfU1BFQy4gSW52ZW50b3JpZWQgdGFzayBmdW5jdGlvbnM6IDUuIElucHV0czogR0ZTIChSRUdJT04uc2hvcnRfbmFtZSk6IEFJUl9URU1QRVJBVFVSRV8yTV9BR0wsIERFV19QT0lOVF9URU1QRVJBVFVSRV8yTV9BR0wuIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICAgICAgYWlycG9ydHMgPSBjb21wb25lbnQgIkFpcnBvcnRzIiAiTGVnYWN5IEFpcmZsb3cgREFHLiBHcm91cDogcmVnaW9uYWwuIFNjaGVkdWxlOiAwLzE1ICogKiAqICogKEdMQiksIDAvNSAqICogKiAqIChub24tR0xCKS4gSW52ZW50b3JpZWQgdGFzayBmdW5jdGlvbnM6IDEwLiBJbnB1dHM6IE1FQU5EQUlSIChSRUdJT04uc2hvcnRfbmFtZSk6IDggZGF0YXNldHMuIE91dHB1dHM6IE1ORFIgKFJFR0lPTi5zaG9ydF9uYW1lKTogNyBkYXRhc2V0cy4iICJBcGFjaGUgQWlyZmxvdyBEQUciCiAgICAgICAgICAgICAgICBjbG91ZCA9IGNvbXBvbmVudCAiQ2xvdWQiICJMZWdhY3kgQWlyZmxvdyBEQUcuIEdyb3VwOiByZWdpb25hbC4gU2NoZWR1bGU6IDAvNSAqICogKiAqLiBJbnZlbnRvcmllZCB0YXNrIGZ1bmN0aW9uczogMTQuIElucHV0czogTU5EUiAoUkVHSU9OLnNob3J0X25hbWUpOiA1IGRhdGFzZXRzLiBPdXRwdXRzOiBNTkRSIChSRUdJT04uc2hvcnRfbmFtZSk6IENsb3VkQ2VpbGluZy1BR0wsIENsb3VkQ2VpbGluZy1BTVNMLCBDbG91ZExvd2VzdFRvcC1BTVNMLiIgIkFwYWNoZSBBaXJmbG93IERBRyIKICAgICAgICAgICAgICAgIGNsb3VkcyA9IGNvbXBvbmVudCAiQ2xvdWRzIiAiTGVnYWN5IEFpcmZsb3cgREFHLiBHcm91cDogcmVnaW9uYWwuIFNjaGVkdWxlOiAwLzE1ICogKiAqICouIEludmVudG9yaWVkIHRhc2sgZnVuY3Rpb25zOiAzLiBJbnB1dHM6IEdGUyAoR0xCKTogQ0xPVURfQ0VJTElOR19BTVNMLCBDTE9VRF9DT1ZFUl9QUkVTLCBTVVJGQUNFX0FNU0w7IE1FQU5EQUlSIChSRUdJT04uc2hvcnRfbmFtZSk6IENMT1VEX0NFSUxJTkdfQUdMLCBDTE9VRF9DT1ZFUl9BVE0uIE91dHB1dHM6IE1FQU5EQUlSIChSRUdJT04uc2hvcnRfbmFtZSk6IENMT1VEX0NFSUxJTkdfQUdMLCBDTE9VRF9DT1ZFUl9BVE0uIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICAgICAgbm93Y2FzdCA9IGNvbXBvbmVudCAiTm93Y2FzdCIgIkxlZ2FjeSBBaXJmbG93IERBRy4gR3JvdXA6IHJlZ2lvbmFsLiBTY2hlZHVsZTogU0NIRURVTEVfU1BFQy4gSW52ZW50b3JpZWQgdGFzayBmdW5jdGlvbnM6IDIyLiBJbnB1dHM6IEdGUyAoUkVHSU9OLnNob3J0X25hbWUpOiA5IGRhdGFzZXRzOyBLTk1JIChSRUdJT04uc2hvcnRfbmFtZSk6IDggZGF0YXNldHM7IE1ORFIgKFJFR0lPTi5zaG9ydF9uYW1lKTogOSBkYXRhc2V0cy4gT3V0cHV0czogTU5EUiAoUkVHSU9OLnNob3J0X25hbWUpOiBDbG91ZFRvcC1BTVNMLiIgIkFwYWNoZSBBaXJmbG93IERBRyIKICAgICAgICAgICAgICAgIG53cENsb3VkID0gY29tcG9uZW50ICJOV1AgQ2xvdWQiICJMZWdhY3kgQWlyZmxvdyBEQUcuIEdyb3VwOiByZWdpb25hbC4gU2NoZWR1bGU6IDAvMTUgKiAqICogKi4gSW52ZW50b3JpZWQgdGFzayBmdW5jdGlvbnM6IDEyLiBJbnB1dHM6IERXRCAoUkVHSU9OLnNob3J0X25hbWUpOiBJQ09OLUVVLUNsb3VkQ292ZXItUFJFUzsgR0ZTIChSRUdJT04uc2hvcnRfbmFtZSk6IENMT1VEX0NPVkVSX1BSRVM7IE1ORFIgKFJFR0lPTi5zaG9ydF9uYW1lKTogTldQLUNsb3VkTG93ZXN0VG9wLUFNU0wuIE91dHB1dHM6IE1ORFIgKFJFR0lPTi5zaG9ydF9uYW1lKTogTldQLUNsb3VkQ2VpbGluZy1BTVNMLCBOV1AtQ2xvdWRDb3ZlciwgTldQLUNsb3VkTG93ZXN0VG9wLUFNU0wuIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICAgICAgcHJvY2Vzc0dmcyA9IGNvbXBvbmVudCAiUHJvY2VzcyBHRlMiICJMZWdhY3kgQWlyZmxvdyBEQUcuIEdyb3VwOiByZWdpb25hbC4gU2NoZWR1bGU6IDAvMTUgKiAqICogKi4gSW52ZW50b3JpZWQgdGFzayBmdW5jdGlvbnM6IDEzLiIgIkFwYWNoZSBBaXJmbG93IERBRyIKICAgICAgICAgICAgICAgIHByb2Nlc3NJY29uRXUgPSBjb21wb25lbnQgIlByb2Nlc3MgSWNvbiBFdSIgIkxlZ2FjeSBBaXJmbG93IERBRy4gR3JvdXA6IHJlZ2lvbmFsLiBTY2hlZHVsZTogMC8xNSAqICogKiAqLiBJbnZlbnRvcmllZCB0YXNrIGZ1bmN0aW9uczogMy4iICJBcGFjaGUgQWlyZmxvdyBEQUciCiAgICAgICAgICAgICAgICByYWRpYXRpb24gPSBjb21wb25lbnQgIlJhZGlhdGlvbiIgIkxlZ2FjeSBBaXJmbG93IERBRy4gR3JvdXA6IHJlZ2lvbmFsLiBTY2hlZHVsZTogU0NIRURVTEVfU1BFQy4gSW52ZW50b3JpZWQgdGFzayBmdW5jdGlvbnM6IDMuIElucHV0czogRFdEIChuYXQpOiBzaXM7IEdGUyAoUkVHSU9OLnNob3J0X25hbWUpOiBXSU5EX1VfMzY1OE1fQU1TTCwgV0lORF9WXzM2NThNX0FNU0w7IEtOTUkgKG5hdCk6IG1zZy1jcHA7IEtOTUkgKFJFR0lPTi5zaG9ydF9uYW1lKTogTndjR2VvLUNUOyBNTkRSIChSRUdJT04uc2hvcnRfbmFtZSk6IE53Y0dlby1DVC4gT3V0cHV0czogTUVBTkRBSVIgKFJFR0lPTi5zaG9ydF9uYW1lKTogR0xPQkFMX0hPUklaT05UQUxfSVJSQURJQU5DRV9TRkMuIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICAgICAgcmR0ID0gY29tcG9uZW50ICJSZHQiICJMZWdhY3kgQWlyZmxvdyBEQUcuIEdyb3VwOiByZWdpb25hbC4gU2NoZWR1bGU6IFNDSEVEVUxFX1NQRUMuIEludmVudG9yaWVkIHRhc2sgZnVuY3Rpb25zOiA1LiBJbnB1dHM6IEdGUyAoUkVHSU9OLnNob3J0X25hbWUpOiBXSU5EX1VfMzY1OE1fQU1TTCwgV0lORF9WXzM2NThNX0FNU0w7IEtOTUkgKFJFR0lPTi5zaG9ydF9uYW1lKTogTndjR2VvLVJEVDsgTU5EUiAoUkVHSU9OLnNob3J0X25hbWUpOiBOd2NHZW8tUkRULiBPdXRwdXRzOiBNTkRSIChSRUdJT04uc2hvcnRfbmFtZSk6IFRodW5kZXJzdG9ybSwgVGh1bmRlcnN0b3JtLUZMLiIgIkFwYWNoZSBBaXJmbG93IERBRyIKICAgICAgICAgICAgICAgIHN1cmZhY2VWaXNpYmlsaXR5ID0gY29tcG9uZW50ICJTdXJmYWNlIFZpc2liaWxpdHkiICJMZWdhY3kgQWlyZmxvdyBEQUcuIEdyb3VwOiByZWdpb25hbC4gU2NoZWR1bGU6IFNDSEVEVUxFX1NQRUMuIEludmVudG9yaWVkIHRhc2sgZnVuY3Rpb25zOiA1LiBJbnB1dHM6IEdGUyAoUkVHSU9OLnNob3J0X25hbWUpOiBWSVNJQklMSVRZX1NGQy4gT3V0cHV0czogTU5EUiAoUkVHSU9OLnNob3J0X25hbWUpOiBWaXNpYmlsaXR5LVNGQy4iICJBcGFjaGUgQWlyZmxvdyBEQUciCiAgICAgICAgICAgICAgICB3aW5kID0gY29tcG9uZW50ICJXaW5kIiAiTGVnYWN5IEFpcmZsb3cgREFHLiBHcm91cDogcmVnaW9uYWwuIFNjaGVkdWxlOiAwLzE1ICogKiAqICouIEludmVudG9yaWVkIHRhc2sgZnVuY3Rpb25zOiAzLiBJbnB1dHM6IEdGUyAoR0xCKTogV0lORF9HVVNUXzEwTV9BR0wsIFdJTkRfVV8xME1fQUdMLCBXSU5EX1ZfMTBNX0FHTDsgTUVBTkRBSVIgKFJFR0lPTi5zaG9ydF9uYW1lKTogV0lORF9HVVNUXzEwTV9BR0wsIHdpbmQtMTBtLWFnbC4gT3V0cHV0czogTUVBTkRBSVIgKFJFR0lPTi5zaG9ydF9uYW1lKTogV0lORF9HVVNUXzEwTV9BR0wuIiAiQXBhY2hlIEFpcmZsb3cgREFHIgogICAgICAgICAgICAgICAgd2luZEFnbCA9IGNvbXBvbmVudCAiV2luZCBBR0wiICJMZWdhY3kgQWlyZmxvdyBEQUcuIEdyb3VwOiByZWdpb25hbC4gU2NoZWR1bGU6IFNDSEVEVUxFX1NQRUMuIEludmVudG9yaWVkIHRhc2sgZnVuY3Rpb25zOiAxMC4gSW5wdXRzOiBHRlMgKFJFR0lPTi5zaG9ydF9uYW1lKTogV0lORF9HVVNUXzEwTV9BR0wsIHdpbmQtMTBtLWFnbC4gT3V0cHV0czogTU5EUiAoUkVHSU9OLnNob3J0X25hbWUpOiBXaW5kLTEwbS1BR0wsIFdpbmQtODBtLUFHTCwgV2luZEd1c3QtMTBtLUFHTC4iICJBcGFjaGUgQWlyZmxvdyBEQUciCiAgICAgICAgICAgIH0KCiAgICAgICAgfQoKICAgICAgICBjdXN0b21lciAtPiB3ZWF0aGVyU3lzdGVtLmFpcnNlcnZlciAiUmVxdWVzdHMgd2VhdGhlciBwcm9kdWN0cyBmcm9tIgoKICAgICAgICBnZnMgLT4gd2VhdGhlclN5c3RlbS5ud3BHbG9iYWxQcm9kdWN0cyAiUHJvdmlkZXMgMjUgZGF0YXNldHMgKEdMT0JBTCkgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS5ud3BHbG9iYWxQcm9kdWN0cyAtPiB3ZWF0aGVyU3lzdGVtLmFpcnNlcnZlciAiUHVibGlzaGVzIDE2IGRhdGFzZXRzIChHTE9CQUwpIHRvIgoKICAgICAgICBnZnMgLT4gd2VhdGhlclN5c3RlbS5ud3BIYXphcmRzICJQcm92aWRlcyBBSVJfVEVNUEVSQVRVUkVfUFJFUywgQUxUSVRVREVfUFJFUywgQ09OVkVDVElWRV9BVkFJTEFCTEVfUE9URU5USUFMX0VORVJHWV9TRkMsIFJFRkxFQ1RJVklUWV9BVE0sIFJFTEFUSVZFX0hVTUlESVRZX1BSRVMsIFZFUlRJQ0FMX0FJUl9WRUxPQ0lUWV9QUkVTLCBXSU5EX1VfUFJFUywgV0lORF9WX1BSRVMgKEdMT0JBTCkgdG8iCiAgICAgICAgZ3RnIC0+IHdlYXRoZXJTeXN0ZW0ubndwSGF6YXJkcyAiUHJvdmlkZXMgVFVSQlVMRU5DRV9BTVNMIChOT1JUSF9BTUVSSUNBXzIpIHRvIgogICAgICAgIHdhZnMgLT4gd2VhdGhlclN5c3RlbS5ud3BIYXphcmRzICJQcm92aWRlcyBJQ0lOR19TRVZFUklUWV9QUkVTLCBUVVJCVUxFTkNFX1BSRVMgKEdMT0JBTCkgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS5ud3BIYXphcmRzIC0+IHdlYXRoZXJTeXN0ZW0uYWlyc2VydmVyICJQdWJsaXNoZXMgSUNJTkdfU0VWRVJJVFlfQVRNLCBJQ0lOR19TRVZFUklUWV9GTCwgS19JTkRFWCwgVEhVTkRFUlNUT1JNX1NFVkVSSVRZX0FUTSwgVFVSQlVMRU5DRV9BVE0sIFRVUkJVTEVOQ0VfRkwgKEdMT0JBTCk7IFRVUkJVTEVOQ0VfQVRNLCBUVVJCVUxFTkNFX0ZMIChOT1JUSF9BTUVSSUNBXzIpIHRvIgoKICAgICAgICBpY29uRDIgLT4gd2VhdGhlclN5c3RlbS5ud3BSZWdpb25hbFByb2R1Y3RzICJQcm92aWRlcyBESUZGVVNFX0hPUklaT05UQUxfSVJSQURJQU5DRV9TRkMsIERJUkVDVF9IT1JJWk9OVEFMX0lSUkFESUFOQ0VfU0ZDLCBXSU5EX1VfODBNX0FHTCwgV0lORF9WXzgwTV9BR0wgKEVVUk9QRV8yKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLm53cFJlZ2lvbmFsUHJvZHVjdHMgLT4gd2VhdGhlclN5c3RlbS5haXJzZXJ2ZXIgIlB1Ymxpc2hlcyBHTE9CQUxfSE9SSVpPTlRBTF9JUlJBRElBTkNFX1NGQywgV0lORF84ME1fQUdMIChFVVJPUEVfMikgdG8iCgogICAgICAgIGdmcyAtPiB3ZWF0aGVyU3lzdGVtLm53Y05vd2Nhc3QgIlByb3ZpZGVzIENMT1VEX0NPVkVSX1BSRVMsIENMT1VEX1dBVEVSX0FUTSwgUFJFQ0lQSVRBVElPTl9SQVRFX1NGQywgV0lORF9VXzM2NThNX0FNU0wsIFdJTkRfVl8zNjU4TV9BTVNMIChHTE9CQUwpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ubndjTm93Y2FzdCAtPiB3ZWF0aGVyU3lzdGVtLmFpcnNlcnZlciAiUHVibGlzaGVzIEdMT0JBTF9IT1JJWk9OVEFMX0lSUkFESUFOQ0VfU0ZDIHRvIgoKICAgICAgICBud2NnZW8gLT4gd2VhdGhlclN5c3RlbS53eEF1eGlsaWFyeSAiUHJvdmlkZXMgTndjR2VvLUNNQSwgTndjR2VvLUNNSUMsIE53Y0dlby1DUlIsIE53Y0dlby1DVCwgTndjR2VvLUNUVEgsIE53Y0dlby1QQywgTndjR2VvLVJEVCAoTkFUKSB0byIKCiAgICAgICAgZ2ZzIC0+IHdlYXRoZXJTeXN0ZW0ud3hHbG9iYWwgIlByb3ZpZGVzIEFJUl9QUkVTU1VSRV9TRkMsIEFJUl9URU1QRVJBVFVSRV8yTV9BR0wsIERFV19QT0lOVF9URU1QRVJBVFVSRV8yTV9BR0wsIFNVUkZBQ0VfQU1TTCwgVklTSUJJTElUWV9TRkMgKEdMQikgdG8iCgogICAgICAgIGR3ZCAtPiB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwgIlByb3ZpZGVzIElDT04tRVUtQ2xvdWRDb3Zlci1QUkVTIChSRUdJT04uc2hvcnRfbmFtZSk7IHNpcyAobmF0KSB0byIKICAgICAgICBnZnMgLT4gd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsICJQcm92aWRlcyBDTE9VRF9DRUlMSU5HX0FNU0wsIENMT1VEX0NPVkVSX1BSRVMsIFNVUkZBQ0VfQU1TTCwgV0lORF9HVVNUXzEwTV9BR0wsIFdJTkRfVV8xME1fQUdMLCBXSU5EX1ZfMTBNX0FHTCAoR0xCKTsgMTYgZGF0YXNldHMgKFJFR0lPTi5zaG9ydF9uYW1lKSB0byIKICAgICAgICBrbm1pIC0+IHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbCAiUHJvdmlkZXMgbXNnLWNwcCAobmF0KSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwgLT4gd2VhdGhlclN5c3RlbS5haXJzZXJ2ZXIgIlB1Ymxpc2hlcyAxNyBkYXRhc2V0cyAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgoKICAgICAgICB3ZWF0aGVyU3lzdGVtLm53cEdsb2JhbFByb2R1Y3RzIC0+IHdlYXRoZXJTeXN0ZW0ubndwSGF6YXJkcyAiUHJvdmlkZXMgQ0xPVURfVE9QX0FNU0wgKEdMT0JBTCkgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS53eEF1eGlsaWFyeSAtPiB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwgIlByb3ZpZGVzIDkgZGF0YXNldHMgKFJFR0lPTi5zaG9ydF9uYW1lKTsgOSBkYXRhc2V0cyAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ud3hHbG9iYWwgLT4gd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsICJQcm92aWRlcyBBSVJfUFJFU1NVUkVfUU5ILCBBSVJfVEVNUEVSQVRVUkVfMk1fQUdMLCBERVdfUE9JTlRfVEVNUEVSQVRVUkVfMk1fQUdMLCBWSVNJQklMSVRZX1NGQyAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgoKICAgICAgICBnZnMgLT4gd2VhdGhlclN5c3RlbS5ud3BHbG9iYWxQcm9kdWN0cy5jbG91ZEdsYiAiUHJvdmlkZXMgQUxUSVRVREVfU0ZDLCBDTE9VRF9DRUlMSU5HX0FNU0wsIENMT1VEX0NPVkVSX1BSRVMgKEdMT0JBTCkgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS5ud3BHbG9iYWxQcm9kdWN0cy5jbG91ZEdsYiAtPiB3ZWF0aGVyU3lzdGVtLmFpcnNlcnZlciAiUHVibGlzaGVzIENMT1VEX0NFSUxJTkdfQUdMLCBDTE9VRF9DT1ZFUl9BVE0sIENMT1VEX1RPUF9BTVNMLCBDTE9VRF9UT1BfUkVMSUVGIChHTE9CQUwpIHRvIgogICAgICAgIGdmcyAtPiB3ZWF0aGVyU3lzdGVtLm53cEdsb2JhbFByb2R1Y3RzLnByZWNpcGl0YXRpb25HbGIgIlByb3ZpZGVzIENPTlZFQ1RJVkVfUFJFQ0lQSVRBVElPTl9SQVRFX1NGQywgUFJFQ0lQSVRBVElPTl9SQVRFX1NGQyAoR0xPQkFMKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLm53cEdsb2JhbFByb2R1Y3RzLnByZWNpcGl0YXRpb25HbGIgLT4gd2VhdGhlclN5c3RlbS5haXJzZXJ2ZXIgIlB1Ymxpc2hlcyBDT05WRUNUSVZFX1BSRUNJUElUQVRJT05fUkFURV9TRkMsIFBSRUNJUElUQVRJT05fUFJPQkFCSUxJVFlfU0ZDLCBQUkVDSVBJVEFUSU9OX1JBVEVfU0ZDIChHTE9CQUwpIHRvIgogICAgICAgIGdmcyAtPiB3ZWF0aGVyU3lzdGVtLm53cEdsb2JhbFByb2R1Y3RzLnByZXNzdXJlR2xiICJQcm92aWRlcyBBSVJfUFJFU1NVUkVfU0ZDLCBBTFRJVFVERV9TRkMgKEdMT0JBTCkgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS5ud3BHbG9iYWxQcm9kdWN0cy5wcmVzc3VyZUdsYiAtPiB3ZWF0aGVyU3lzdGVtLmFpcnNlcnZlciAiUHVibGlzaGVzIEFJUl9QUkVTU1VSRV9RTkggKEdMT0JBTCkgdG8iCiAgICAgICAgZ2ZzIC0+IHdlYXRoZXJTeXN0ZW0ubndwR2xvYmFsUHJvZHVjdHMudGVtcGVyYXR1cmVHbGIgIlByb3ZpZGVzIEFJUl9URU1QRVJBVFVSRV8yTV9BR0wsIERFV19QT0lOVF9URU1QRVJBVFVSRV8yTV9BR0wgKEdMT0JBTCkgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS5ud3BHbG9iYWxQcm9kdWN0cy50ZW1wZXJhdHVyZUdsYiAtPiB3ZWF0aGVyU3lzdGVtLmFpcnNlcnZlciAiUHVibGlzaGVzIEFJUl9URU1QRVJBVFVSRV8yTV9BR0wsIERFV19QT0lOVF9URU1QRVJBVFVSRV8yTV9BR0wgKEdMT0JBTCkgdG8iCiAgICAgICAgZ2ZzIC0+IHdlYXRoZXJTeXN0ZW0ubndwR2xvYmFsUHJvZHVjdHMudmlzaWJpbGl0eUdsYiAiUHJvdmlkZXMgVklTSUJJTElUWV9TRkMgKEdMT0JBTCkgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS5ud3BHbG9iYWxQcm9kdWN0cy52aXNpYmlsaXR5R2xiIC0+IHdlYXRoZXJTeXN0ZW0uYWlyc2VydmVyICJQdWJsaXNoZXMgVklTSUJJTElUWV9TRkMgKEdMT0JBTCkgdG8iCiAgICAgICAgZ2ZzIC0+IHdlYXRoZXJTeXN0ZW0ubndwR2xvYmFsUHJvZHVjdHMud2VhdGhlclR5cGVHbGIgIlByb3ZpZGVzIDE0IGRhdGFzZXRzIChHTE9CQUwpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ubndwR2xvYmFsUHJvZHVjdHMud2VhdGhlclR5cGVHbGIgLT4gd2VhdGhlclN5c3RlbS5haXJzZXJ2ZXIgIlB1Ymxpc2hlcyBXRUFUSEVSX1RZUEVfU0ZDIChHTE9CQUwpIHRvIgogICAgICAgIGdmcyAtPiB3ZWF0aGVyU3lzdGVtLm53cEdsb2JhbFByb2R1Y3RzLndpbmRHbGIgIlByb3ZpZGVzIFdJTkRfR1VTVF8xME1fQUdMLCBXSU5EX1VfMTBNX0FHTCwgV0lORF9VXzgwTV9BR0wsIFdJTkRfVV9QUkVTLCBXSU5EX1ZfMTBNX0FHTCwgV0lORF9WXzgwTV9BR0wsIFdJTkRfVl9QUkVTIChHTE9CQUwpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ubndwR2xvYmFsUHJvZHVjdHMud2luZEdsYiAtPiB3ZWF0aGVyU3lzdGVtLmFpcnNlcnZlciAiUHVibGlzaGVzIFdJTkRfMTBNX0FHTCwgV0lORF84ME1fQUdMLCBXSU5EX0ZMLCBXSU5EX0dVU1RfMTBNX0FHTCAoR0xPQkFMKSB0byIKICAgICAgICB3YWZzIC0+IHdlYXRoZXJTeXN0ZW0ubndwSGF6YXJkcy5pY2luZ0dsYiAiUHJvdmlkZXMgSUNJTkdfU0VWRVJJVFlfUFJFUyAoR0xPQkFMKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLm53cEhhemFyZHMuaWNpbmdHbGIgLT4gd2VhdGhlclN5c3RlbS5haXJzZXJ2ZXIgIlB1Ymxpc2hlcyBJQ0lOR19TRVZFUklUWV9BVE0sIElDSU5HX1NFVkVSSVRZX0ZMIChHTE9CQUwpIHRvIgogICAgICAgIGdmcyAtPiB3ZWF0aGVyU3lzdGVtLm53cEhhemFyZHMua0luZGV4R2xiICJQcm92aWRlcyBBSVJfVEVNUEVSQVRVUkVfUFJFUywgUkVMQVRJVkVfSFVNSURJVFlfUFJFUyAoR0xPQkFMKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLm53cEhhemFyZHMua0luZGV4R2xiIC0+IHdlYXRoZXJTeXN0ZW0uYWlyc2VydmVyICJQdWJsaXNoZXMgS19JTkRFWCAoR0xPQkFMKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLm53cEdsb2JhbFByb2R1Y3RzIC0+IHdlYXRoZXJTeXN0ZW0ubndwSGF6YXJkcy50aHVuZGVyc3Rvcm1HbGIgIlByb3ZpZGVzIENMT1VEX1RPUF9BTVNMIChHTE9CQUwpIHRvIgogICAgICAgIGdmcyAtPiB3ZWF0aGVyU3lzdGVtLm53cEhhemFyZHMudGh1bmRlcnN0b3JtR2xiICJQcm92aWRlcyBDT05WRUNUSVZFX0FWQUlMQUJMRV9QT1RFTlRJQUxfRU5FUkdZX1NGQywgUkVGTEVDVElWSVRZX0FUTSAoR0xPQkFMKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLm53cEhhemFyZHMudGh1bmRlcnN0b3JtR2xiIC0+IHdlYXRoZXJTeXN0ZW0uYWlyc2VydmVyICJQdWJsaXNoZXMgVEhVTkRFUlNUT1JNX1NFVkVSSVRZX0FUTSAoR0xPQkFMKSB0byIKICAgICAgICBnZnMgLT4gd2VhdGhlclN5c3RlbS5ud3BIYXphcmRzLnR1cmJ1bGVuY2VHbGIgIlByb3ZpZGVzIEFJUl9URU1QRVJBVFVSRV9QUkVTLCBBTFRJVFVERV9QUkVTLCBWRVJUSUNBTF9BSVJfVkVMT0NJVFlfUFJFUywgV0lORF9VX1BSRVMsIFdJTkRfVl9QUkVTIChHTE9CQUwpIHRvIgogICAgICAgIHdhZnMgLT4gd2VhdGhlclN5c3RlbS5ud3BIYXphcmRzLnR1cmJ1bGVuY2VHbGIgIlByb3ZpZGVzIFRVUkJVTEVOQ0VfUFJFUyAoR0xPQkFMKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLm53cEhhemFyZHMudHVyYnVsZW5jZUdsYiAtPiB3ZWF0aGVyU3lzdGVtLmFpcnNlcnZlciAiUHVibGlzaGVzIFRVUkJVTEVOQ0VfQVRNLCBUVVJCVUxFTkNFX0ZMIChHTE9CQUwpIHRvIgogICAgICAgIGd0ZyAtPiB3ZWF0aGVyU3lzdGVtLm53cEhhemFyZHMudHVyYnVsZW5jZU5hMiAiUHJvdmlkZXMgVFVSQlVMRU5DRV9BTVNMIChOT1JUSF9BTUVSSUNBXzIpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ubndwSGF6YXJkcy50dXJidWxlbmNlTmEyIC0+IHdlYXRoZXJTeXN0ZW0uYWlyc2VydmVyICJQdWJsaXNoZXMgVFVSQlVMRU5DRV9BVE0sIFRVUkJVTEVOQ0VfRkwgKE5PUlRIX0FNRVJJQ0FfMikgdG8iCiAgICAgICAgaWNvbkQyIC0+IHdlYXRoZXJTeXN0ZW0ubndwUmVnaW9uYWxQcm9kdWN0cy5pcnJhZGlhbmNlRXUyICJQcm92aWRlcyBESUZGVVNFX0hPUklaT05UQUxfSVJSQURJQU5DRV9TRkMsIERJUkVDVF9IT1JJWk9OVEFMX0lSUkFESUFOQ0VfU0ZDIChFVVJPUEVfMikgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS5ud3BSZWdpb25hbFByb2R1Y3RzLmlycmFkaWFuY2VFdTIgLT4gd2VhdGhlclN5c3RlbS5haXJzZXJ2ZXIgIlB1Ymxpc2hlcyBHTE9CQUxfSE9SSVpPTlRBTF9JUlJBRElBTkNFX1NGQyAoRVVST1BFXzIpIHRvIgogICAgICAgIGljb25EMiAtPiB3ZWF0aGVyU3lzdGVtLm53cFJlZ2lvbmFsUHJvZHVjdHMud2luZEV1MiAiUHJvdmlkZXMgV0lORF9VXzgwTV9BR0wsIFdJTkRfVl84ME1fQUdMIChFVVJPUEVfMikgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS5ud3BSZWdpb25hbFByb2R1Y3RzLndpbmRFdTIgLT4gd2VhdGhlclN5c3RlbS5haXJzZXJ2ZXIgIlB1Ymxpc2hlcyBXSU5EXzgwTV9BR0wgKEVVUk9QRV8yKSB0byIKICAgICAgICBnZnMgLT4gd2VhdGhlclN5c3RlbS5ud2NOb3djYXN0LmlycmFkaWFuY2UgIlByb3ZpZGVzIENMT1VEX0NPVkVSX1BSRVMsIENMT1VEX1dBVEVSX0FUTSwgUFJFQ0lQSVRBVElPTl9SQVRFX1NGQywgV0lORF9VXzM2NThNX0FNU0wsIFdJTkRfVl8zNjU4TV9BTVNMIChHTE9CQUwpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ubndjTm93Y2FzdC5pcnJhZGlhbmNlIC0+IHdlYXRoZXJTeXN0ZW0uYWlyc2VydmVyICJQdWJsaXNoZXMgR0xPQkFMX0hPUklaT05UQUxfSVJSQURJQU5DRV9TRkMgdG8iCiAgICAgICAgbndjZ2VvIC0+IHdlYXRoZXJTeXN0ZW0ud3hBdXhpbGlhcnkuZG93bmxvYWROd2NnZW8gIlByb3ZpZGVzIE53Y0dlby1DTUEsIE53Y0dlby1DTUlDLCBOd2NHZW8tQ1JSLCBOd2NHZW8tQ1QsIE53Y0dlby1DVFRILCBOd2NHZW8tUEMsIE53Y0dlby1SRFQgKE5BVCkgdG8iCiAgICAgICAgZ2ZzIC0+IHdlYXRoZXJTeXN0ZW0ud3hHbG9iYWwuYWlyUHJlc3N1cmVRbmhHbGIgIlByb3ZpZGVzIEFJUl9QUkVTU1VSRV9TRkMsIFNVUkZBQ0VfQU1TTCAoR0xCKSB0byIKICAgICAgICBnZnMgLT4gd2VhdGhlclN5c3RlbS53eEdsb2JhbC50ZW1wZXJhdHVyZTJtQWdsR2xiICJQcm92aWRlcyBBSVJfVEVNUEVSQVRVUkVfMk1fQUdMLCBERVdfUE9JTlRfVEVNUEVSQVRVUkVfMk1fQUdMIChHTEIpIHRvIgogICAgICAgIGdmcyAtPiB3ZWF0aGVyU3lzdGVtLnd4R2xvYmFsLnZpc2liaWxpdHlHbGIgIlByb3ZpZGVzIFZJU0lCSUxJVFlfU0ZDIChHTEIpIHRvIgogICAgICAgIGdmcyAtPiB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwuYWlyUHJlc3N1cmVRbmggIlByb3ZpZGVzIEFJUl9QUkVTU1VSRV9RTkggKFJFR0lPTi5zaG9ydF9uYW1lKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwuYWlyUHJlc3N1cmVRbmggLT4gd2VhdGhlclN5c3RlbS5haXJzZXJ2ZXIgIlB1Ymxpc2hlcyBBaXJQcmVzc3VyZS1RTkggKFJFR0lPTi5zaG9ydF9uYW1lKSB0byIKICAgICAgICBnZnMgLT4gd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsLmFpclRlbXBlcmF0dXJlMm1BZ2wgIlByb3ZpZGVzIEFJUl9URU1QRVJBVFVSRV8yTV9BR0wsIERFV19QT0lOVF9URU1QRVJBVFVSRV8yTV9BR0wgKFJFR0lPTi5zaG9ydF9uYW1lKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwuYWlyVGVtcGVyYXR1cmUybUFnbCAtPiB3ZWF0aGVyU3lzdGVtLmFpcnNlcnZlciAiUHVibGlzaGVzIGxheWVyIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC5jbG91ZHMgLT4gd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsLmFpcnBvcnRzICJQcm92aWRlcyBDTE9VRF9DRUlMSU5HX0FHTCwgQ0xPVURfQ09WRVJfQVRNIChSRUdJT04uc2hvcnRfbmFtZSkgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS53eEdsb2JhbCAtPiB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwuYWlycG9ydHMgIlByb3ZpZGVzIEFJUl9URU1QRVJBVFVSRV8yTV9BR0wsIERFV19QT0lOVF9URU1QRVJBVFVSRV8yTV9BR0wgKFJFR0lPTi5zaG9ydF9uYW1lKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwud2luZCAtPiB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwuYWlycG9ydHMgIlByb3ZpZGVzIFdJTkRfR1VTVF8xME1fQUdMIChSRUdJT04uc2hvcnRfbmFtZSkgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsLmFpcnBvcnRzIC0+IHdlYXRoZXJTeXN0ZW0uYWlyc2VydmVyICJQdWJsaXNoZXMgQWlycG9ydEVsZXZhdGlvbiwgQWlycG9ydEhhc0xvbmdUYWYsIEFpcnBvcnRJY2FvQ29kZSwgQWlycG9ydEtleVZhbHVlLCBBaXJwb3J0TGF0TG9uLCBBaXJwb3J0TGF5ZXIsIE1ldGFyTGF5ZXIgKFJFR0lPTi5zaG9ydF9uYW1lKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwubndwQ2xvdWQgLT4gd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsLmNsb3VkICJQcm92aWRlcyBOV1AtQ2xvdWRDZWlsaW5nLUFNU0wsIE5XUC1DbG91ZENvdmVyLCBOV1AtQ2xvdWRMb3dlc3RUb3AtQU1TTCAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC5ub3djYXN0IC0+IHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC5jbG91ZCAiUHJvdmlkZXMgQ2xvdWRUb3AtQU1TTCAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC5jbG91ZCAtPiB3ZWF0aGVyU3lzdGVtLmFpcnNlcnZlciAiUHVibGlzaGVzIENsb3VkQ2VpbGluZy1BR0wsIENsb3VkTG93ZXN0VG9wLUFNU0wgKFJFR0lPTi5zaG9ydF9uYW1lKSB0byIKICAgICAgICBnZnMgLT4gd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsLmNsb3VkcyAiUHJvdmlkZXMgQ0xPVURfQ0VJTElOR19BTVNMLCBDTE9VRF9DT1ZFUl9QUkVTLCBTVVJGQUNFX0FNU0wgKEdMQikgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS53eEF1eGlsaWFyeSAtPiB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwubm93Y2FzdCAiUHJvdmlkZXMgTndjR2VvLUNNQSwgTndjR2VvLUNSUiwgTndjR2VvLUNULCBOd2NHZW8tQ1RUSCwgTndjR2VvLUNUVEgtQU1TTCwgTndjR2VvLUNUVEgtVGVtcGVyYXR1cmUsIE53Y0dlby1JbGx1bWluYXRpb24sIE53Y0dlby1QQyAoUkVHSU9OLnNob3J0X25hbWUpOyBOd2NHZW8tQ01BLCBOd2NHZW8tQ1JSLCBOd2NHZW8tQ1QsIE53Y0dlby1DVFRILCBOd2NHZW8tQ1RUSC1BTVNMLCBOd2NHZW8tQ1RUSC1UZW1wZXJhdHVyZSwgTndjR2VvLUlsbHVtaW5hdGlvbiwgTndjR2VvLVBDIChSRUdJT04uc2hvcnRfbmFtZSkgdG8iCiAgICAgICAgd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsLm53cENsb3VkIC0+IHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC5ub3djYXN0ICJQcm92aWRlcyBOV1AtQ2xvdWRDb3ZlciAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIGdmcyAtPiB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwubm93Y2FzdCAiUHJvdmlkZXMgOSBkYXRhc2V0cyAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC5ub3djYXN0IC0+IHdlYXRoZXJTeXN0ZW0uYWlyc2VydmVyICJQdWJsaXNoZXMgQ2xvdWRUb3AtQU1TTCAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIGR3ZCAtPiB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwubndwQ2xvdWQgIlByb3ZpZGVzIElDT04tRVUtQ2xvdWRDb3Zlci1QUkVTIChSRUdJT04uc2hvcnRfbmFtZSkgdG8iCiAgICAgICAgZ2ZzIC0+IHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC5ud3BDbG91ZCAiUHJvdmlkZXMgQ0xPVURfQ09WRVJfUFJFUyAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ud3hBdXhpbGlhcnkgLT4gd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsLnJhZGlhdGlvbiAiUHJvdmlkZXMgTndjR2VvLUNUIChSRUdJT04uc2hvcnRfbmFtZSk7IE53Y0dlby1DVCAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIGR3ZCAtPiB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwucmFkaWF0aW9uICJQcm92aWRlcyBzaXMgKG5hdCkgdG8iCiAgICAgICAgZ2ZzIC0+IHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC5yYWRpYXRpb24gIlByb3ZpZGVzIFdJTkRfVV8zNjU4TV9BTVNMLCBXSU5EX1ZfMzY1OE1fQU1TTCAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIGtubWkgLT4gd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsLnJhZGlhdGlvbiAiUHJvdmlkZXMgbXNnLWNwcCAobmF0KSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLnd4QXV4aWxpYXJ5IC0+IHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC5yZHQgIlByb3ZpZGVzIE53Y0dlby1SRFQgKFJFR0lPTi5zaG9ydF9uYW1lKTsgTndjR2VvLVJEVCAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIGdmcyAtPiB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwucmR0ICJQcm92aWRlcyBXSU5EX1VfMzY1OE1fQU1TTCwgV0lORF9WXzM2NThNX0FNU0wgKFJFR0lPTi5zaG9ydF9uYW1lKSB0byIKICAgICAgICB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwucmR0IC0+IHdlYXRoZXJTeXN0ZW0uYWlyc2VydmVyICJQdWJsaXNoZXMgVGh1bmRlcnN0b3JtLCBUaHVuZGVyc3Rvcm0tRkwgKFJFR0lPTi5zaG9ydF9uYW1lKSB0byIKICAgICAgICBnZnMgLT4gd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsLnN1cmZhY2VWaXNpYmlsaXR5ICJQcm92aWRlcyBWSVNJQklMSVRZX1NGQyAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC5zdXJmYWNlVmlzaWJpbGl0eSAtPiB3ZWF0aGVyU3lzdGVtLmFpcnNlcnZlciAiUHVibGlzaGVzIFZpc2liaWxpdHktU0ZDIChSRUdJT04uc2hvcnRfbmFtZSkgdG8iCiAgICAgICAgZ2ZzIC0+IHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC53aW5kICJQcm92aWRlcyBXSU5EX0dVU1RfMTBNX0FHTCwgV0lORF9VXzEwTV9BR0wsIFdJTkRfVl8xME1fQUdMIChHTEIpIHRvIgogICAgICAgIGdmcyAtPiB3ZWF0aGVyU3lzdGVtLnd4UmVnaW9uYWwud2luZEFnbCAiUHJvdmlkZXMgV0lORF9HVVNUXzEwTV9BR0wsIHdpbmQtMTBtLWFnbCAoUkVHSU9OLnNob3J0X25hbWUpIHRvIgogICAgICAgIHdlYXRoZXJTeXN0ZW0ud3hSZWdpb25hbC53aW5kQWdsIC0+IHdlYXRoZXJTeXN0ZW0uYWlyc2VydmVyICJQdWJsaXNoZXMgV2luZC0xMG0tQUdMLCBXaW5kLTgwbS1BR0wsIFdpbmRHdXN0LTEwbS1BR0wgKFJFR0lPTi5zaG9ydF9uYW1lKSB0byIKICAgIH0KCiAgICB2aWV3cyB7CiAgICAgICAgc3lzdGVtbGFuZHNjYXBlIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGF1dG9MYXlvdXQKICAgICAgICB9CgogICAgICAgIHN5c3RlbWNvbnRleHQgd2VhdGhlclN5c3RlbSB7CiAgICAgICAgICAgIGluY2x1ZGUgKgogICAgICAgICAgICBhdXRvTGF5b3V0CiAgICAgICAgfQoKICAgICAgICBjb250YWluZXIgd2VhdGhlclN5c3RlbSB7CiAgICAgICAgICAgIGluY2x1ZGUgKgogICAgICAgICAgICBhdXRvTGF5b3V0CiAgICAgICAgfQoKICAgICAgICBjb21wb25lbnQgd2VhdGhlclN5c3RlbS5ud3BHbG9iYWxQcm9kdWN0cyB7CiAgICAgICAgICAgIGluY2x1ZGUgKgogICAgICAgICAgICBhdXRvTGF5b3V0CiAgICAgICAgfQoKICAgICAgICBjb21wb25lbnQgd2VhdGhlclN5c3RlbS5ud3BIYXphcmRzIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGF1dG9MYXlvdXQKICAgICAgICB9CgogICAgICAgIGNvbXBvbmVudCB3ZWF0aGVyU3lzdGVtLm53cFJlZ2lvbmFsUHJvZHVjdHMgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgYXV0b0xheW91dAogICAgICAgIH0KCiAgICAgICAgY29tcG9uZW50IHdlYXRoZXJTeXN0ZW0ubndjTm93Y2FzdCB7CiAgICAgICAgICAgIGluY2x1ZGUgKgogICAgICAgICAgICBhdXRvTGF5b3V0CiAgICAgICAgfQoKICAgICAgICBjb21wb25lbnQgd2VhdGhlclN5c3RlbS53eEF1eGlsaWFyeSB7CiAgICAgICAgICAgIGluY2x1ZGUgKgogICAgICAgICAgICBhdXRvTGF5b3V0CiAgICAgICAgfQoKICAgICAgICBjb21wb25lbnQgd2VhdGhlclN5c3RlbS53eEdsb2JhbCB7CiAgICAgICAgICAgIGluY2x1ZGUgKgogICAgICAgICAgICBhdXRvTGF5b3V0CiAgICAgICAgfQoKICAgICAgICBjb21wb25lbnQgd2VhdGhlclN5c3RlbS53eFJlZ2lvbmFsIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGF1dG9MYXlvdXQKICAgICAgICB9CgogICAgICAgIHRoZW1lIGRlZmF1bHQKCiAgICAgICAgc3R5bGVzIHsKICAgICAgICAgICAgZWxlbWVudCAiRGF0YWJhc2UiIHsKICAgICAgICAgICAgICAgIHNoYXBlIEN5bGluZGVyCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0K"},"views":{"componentViews":[{"automaticLayout":{"applied":false,"edgeSeparation":0,"implementation":"Graphviz","nodeSeparation":300,"rankDirection":"TopBottom","rankSeparation":300,"vertices":false},"containerId":"11","elements":[{"id":"3","x":0,"y":0},{"id":"10","x":0,"y":0},{"id":"12","x":0,"y":0},{"id":"13","x":0,"y":0},{"id":"14","x":0,"y":0},{"id":"15","x":0,"y":0},{"id":"16","x":0,"y":0},{"id":"17","x":0,"y":0},{"id":"18","x":0,"y":0}],"externalContainerBoundariesVisible":false,"generatedKey":true,"key":"Component-001","order":4,"relationships":[{"id":"100"},{"id":"87"},{"id":"88"},{"id":"89"},{"id":"90"},{"id":"91"},{"id":"92"},{"id":"93"},{"id":"94"},{"id":"95"},{"id":"96"},{"id":"97"},{"id":"98"},{"id":"99"}]},{"automaticLayout":{"applied":false,"edgeSeparation":0,"implementation":"Graphviz","nodeSeparation":300,"rankDirection":"TopBottom","rankSeparation":300,"vertices":false},"containerId":"19","elements":[{"id":"3","x":0,"y":0},{"id":"4","x":0,"y":0},{"id":"8","x":0,"y":0},{"id":"10","x":0,"y":0},{"id":"11","x":0,"y":0},{"id":"20","x":0,"y":0},{"id":"21","x":0,"y":0},{"id":"22","x":0,"y":0},{"id":"23","x":0,"y":0},{"id":"24","x":0,"y":0}],"externalContainerBoundariesVisible":false,"generatedKey":true,"key":"Component-002","order":5,"relationships":[{"id":"101"},{"id":"102"},{"id":"103"},{"id":"104"},{"id":"105"},{"id":"106"},{"id":"107"},{"id":"108"},{"id":"109"},{"id":"110"},{"id":"111"},{"id":"112"},{"id":"61"},{"id":"63"}]},{"automaticLayout":{"applied":false,"edgeSeparation":0,"implementation":"Graphviz","nodeSeparation":300,"rankDirection":"TopBottom","rankSeparation":300,"vertices":false},"containerId":"25","elements":[{"id":"5","x":0,"y":0},{"id":"10","x":0,"y":0},{"id":"26","x":0,"y":0},{"id":"27","x":0,"y":0}],"externalContainerBoundariesVisible":false,"generatedKey":true,"key":"Component-003","order":6,"relationships":[{"id":"113"},{"id":"114"},{"id":"115"},{"id":"116"}]},{"automaticLayout":{"applied":false,"edgeSeparation":0,"implementation":"Graphviz","nodeSeparation":300,"rankDirection":"TopBottom","rankSeparation":300,"vertices":false},"containerId":"28","elements":[{"id":"3","x":0,"y":0},{"id":"10","x":0,"y":0},{"id":"29","x":0,"y":0},{"id":"30","x":0,"y":0}],"externalContainerBoundariesVisible":false,"generatedKey":true,"key":"Component-004","order":7,"relationships":[{"id":"117"},{"id":"118"}]},{"automaticLayout":{"applied":false,"edgeSeparation":0,"implementation":"Graphviz","nodeSeparation":300,"rankDirection":"TopBottom","rankSeparation":300,"vertices":false},"containerId":"31","elements":[{"id":"7","x":0,"y":0},{"id":"32","x":0,"y":0},{"id":"33","x":0,"y":0},{"id":"34","x":0,"y":0},{"id":"35","x":0,"y":0},{"id":"36","x":0,"y":0},{"id":"37","x":0,"y":0},{"id":"38","x":0,"y":0},{"id":"39","x":0,"y":0}],"externalContainerBoundariesVisible":false,"generatedKey":true,"key":"Component-005","order":8,"relationships":[{"id":"119"}]},{"automaticLayout":{"applied":false,"edgeSeparation":0,"implementation":"Graphviz","nodeSeparation":300,"rankDirection":"TopBottom","rankSeparation":300,"vertices":false},"containerId":"40","elements":[{"id":"3","x":0,"y":0},{"id":"41","x":0,"y":0},{"id":"42","x":0,"y":0},{"id":"43","x":0,"y":0}],"externalContainerBoundariesVisible":false,"generatedKey":true,"key":"Component-006","order":9,"relationships":[{"id":"120"},{"id":"121"},{"id":"122"}]},{"automaticLayout":{"applied":false,"edgeSeparation":0,"implementation":"Graphviz","nodeSeparation":300,"rankDirection":"TopBottom","rankSeparation":300,"vertices":false},"containerId":"44","elements":[{"id":"2","x":0,"y":0},{"id":"3","x":0,"y":0},{"id":"6","x":0,"y":0},{"id":"10","x":0,"y":0},{"id":"31","x":0,"y":0},{"id":"40","x":0,"y":0},{"id":"45","x":0,"y":0},{"id":"46","x":0,"y":0},{"id":"47","x":0,"y":0},{"id":"48","x":0,"y":0},{"id":"49","x":0,"y":0},{"id":"50","x":0,"y":0},{"id":"51","x":0,"y":0},{"id":"52","x":0,"y":0},{"id":"53","x":0,"y":0},{"id":"54","x":0,"y":0},{"id":"55","x":0,"y":0},{"id":"56","x":0,"y":0},{"id":"57","x":0,"y":0},{"id":"58","x":0,"y":0}],"externalContainerBoundariesVisible":false,"generatedKey":true,"key":"Component-007","order":10,"relationships":[{"id":"123"},{"id":"124"},{"id":"125"},{"id":"126"},{"id":"127"},{"id":"128"},{"id":"129"},{"id":"130"},{"id":"131"},{"id":"132"},{"id":"133"},{"id":"134"},{"id":"135"},{"id":"136"},{"id":"137"},{"id":"138"},{"id":"139"},{"id":"140"},{"id":"141"},{"id":"142"},{"id":"143"},{"id":"144"},{"id":"145"},{"id":"146"},{"id":"147"},{"id":"148"},{"id":"149"},{"id":"150"},{"id":"151"},{"id":"152"},{"id":"77"}]}],"configuration":{"branding":{},"lastSavedView":"SystemLandscape-001","metadataSymbols":"SquareBrackets","styles":{"elements":[{"shape":"Cylinder","tag":"Database"}]},"terminology":{},"themes":["https://static.structurizr.com/themes/default/theme.json"]},"containerViews":[{"automaticLayout":{"applied":false,"edgeSeparation":0,"implementation":"Graphviz","nodeSeparation":300,"rankDirection":"TopBottom","rankSeparation":300,"vertices":false},"elements":[{"id":"1","x":0,"y":0},{"id":"2","x":0,"y":0},{"id":"3","x":0,"y":0},{"id":"4","x":0,"y":0},{"id":"5","x":0,"y":0},{"id":"6","x":0,"y":0},{"id":"7","x":0,"y":0},{"id":"8","x":0,"y":0},{"id":"10","x":0,"y":0},{"id":"11","x":0,"y":0},{"id":"19","x":0,"y":0},{"id":"25","x":0,"y":0},{"id":"28","x":0,"y":0},{"id":"31","x":0,"y":0},{"id":"40","x":0,"y":0},{"id":"44","x":0,"y":0}],"externalSoftwareSystemBoundariesVisible":false,"generatedKey":true,"key":"Container-001","order":3,"relationships":[{"id":"59"},{"id":"61"},{"id":"63"},{"id":"64"},{"id":"65"},{"id":"67"},{"id":"69"},{"id":"70"},{"id":"72"},{"id":"73"},{"id":"74"},{"id":"75"},{"id":"77"},{"id":"78"},{"id":"80"},{"id":"81"},{"id":"83"},{"id":"84"},{"id":"85"},{"id":"86"}],"softwareSystemId":"9"}],"systemContextViews":[{"automaticLayout":{"applied":false,"edgeSeparation":0,"implementation":"Graphviz","nodeSeparation":300,"rankDirection":"TopBottom","rankSeparation":300,"vertices":false},"elements":[{"id":"1","x":0,"y":0},{"id":"2","x":0,"y":0},{"id":"3","x":0,"y":0},{"id":"4","x":0,"y":0},{"id":"5","x":0,"y":0},{"id":"6","x":0,"y":0},{"id":"7","x":0,"y":0},{"id":"8","x":0,"y":0},{"id":"9","x":0,"y":0}],"enterpriseBoundaryVisible":true,"generatedKey":true,"key":"SystemContext-001","order":2,"relationships":[{"id":"60"},{"id":"62"},{"id":"66"},{"id":"68"},{"id":"71"},{"id":"76"},{"id":"79"},{"id":"82"}],"softwareSystemId":"9"}],"systemLandscapeViews":[{"automaticLayout":{"applied":true,"edgeSeparation":0,"implementation":"Graphviz","nodeSeparation":300,"rankDirection":"TopBottom","rankSeparation":300,"vertices":false},"dimensions":{"height":1300,"width":6100},"elements":[{"id":"1","x":199,"y":199},{"id":"2","x":949,"y":199},{"id":"3","x":1699,"y":199},{"id":"4","x":2449,"y":199},{"id":"5","x":3199,"y":199},{"id":"6","x":3949,"y":199},{"id":"7","x":4699,"y":199},{"id":"8","x":5449,"y":199},{"id":"9","x":2824,"y":799}],"enterpriseBoundaryVisible":true,"generatedKey":true,"key":"SystemLandscape-001","order":1,"relationships":[{"id":"60","vertices":[{"x":799,"y":499}]},{"id":"62"},{"id":"66"},{"id":"68","vertices":[{"x":5299,"y":499}]},{"id":"71"},{"id":"76","vertices":[{"x":4549,"y":499}]},{"id":"79","vertices":[{"x":1549,"y":499}]},{"id":"82"}]}]}}