2826 lines
201 KiB
Plaintext
2826 lines
201 KiB
Plaintext
{
|
|
"auto_complete":
|
|
{
|
|
"selected_items":
|
|
[
|
|
[
|
|
"eks",
|
|
"local.eks_subnets"
|
|
],
|
|
[
|
|
"maxw",
|
|
"rtgMaxWh"
|
|
],
|
|
[
|
|
"IEEE",
|
|
"IEEE2030p5TimeStamp"
|
|
],
|
|
[
|
|
"datetime",
|
|
"datetime"
|
|
],
|
|
[
|
|
"classm",
|
|
"classmethod"
|
|
],
|
|
[
|
|
"tsdbl",
|
|
"tsdb_listener_image"
|
|
],
|
|
[
|
|
"DERType",
|
|
"DERType"
|
|
],
|
|
[
|
|
"Chart",
|
|
"ChartSeries"
|
|
],
|
|
[
|
|
"device",
|
|
"device_errors"
|
|
],
|
|
[
|
|
"Devicev2",
|
|
"DevicesV2"
|
|
],
|
|
[
|
|
"hp",
|
|
"local.hp_flexgw_domain"
|
|
],
|
|
[
|
|
"domain",
|
|
"local.hp_flexgw_domain"
|
|
],
|
|
[
|
|
"cluster",
|
|
"local.cluster_domain_name"
|
|
],
|
|
[
|
|
"statek",
|
|
"state_key_bedrock"
|
|
],
|
|
[
|
|
"statekey",
|
|
"state_key_aws"
|
|
],
|
|
[
|
|
"apimdomain",
|
|
"local.apim_domain_test"
|
|
],
|
|
[
|
|
"start",
|
|
"start_as_current_span"
|
|
],
|
|
[
|
|
"trace",
|
|
"trace"
|
|
],
|
|
[
|
|
"ACtion",
|
|
"ActionT"
|
|
],
|
|
[
|
|
"background",
|
|
"background_tasks"
|
|
],
|
|
[
|
|
"BackGroun",
|
|
"BackgroundTasks"
|
|
],
|
|
[
|
|
"datacla",
|
|
"dataclass"
|
|
],
|
|
[
|
|
"Assura",
|
|
"AssuranceEventRoute"
|
|
],
|
|
[
|
|
"status",
|
|
"status_code="
|
|
],
|
|
[
|
|
"assu",
|
|
"assurance_stop"
|
|
],
|
|
[
|
|
"AssuranceSt",
|
|
"AssuranceStartData"
|
|
],
|
|
[
|
|
"tasks_",
|
|
"tasks_finished"
|
|
],
|
|
[
|
|
"tasks_fini",
|
|
"tasks_finished"
|
|
],
|
|
[
|
|
"genlimi",
|
|
"genLimitLow"
|
|
],
|
|
[
|
|
"gen",
|
|
"genLimitHigh"
|
|
],
|
|
[
|
|
"genlim",
|
|
"genLimitLow"
|
|
],
|
|
[
|
|
"LFDI",
|
|
"LFDI"
|
|
],
|
|
[
|
|
"targetSite",
|
|
"targetSiteRealPowerLow"
|
|
],
|
|
[
|
|
"AssuranceSi",
|
|
"AssuranceSiteCTExportLimitData"
|
|
],
|
|
[
|
|
"POST_",
|
|
"ASSURANCE_DEFAULT_POLL_POST_RATE"
|
|
],
|
|
[
|
|
"target",
|
|
"targetSiteRealPowerHigh"
|
|
],
|
|
[
|
|
"AssuranceSite",
|
|
"AssuranceSiteCTExportLimitData"
|
|
],
|
|
[
|
|
"high",
|
|
"highTargetMin"
|
|
],
|
|
[
|
|
"con",
|
|
"controlDuration"
|
|
],
|
|
[
|
|
"log",
|
|
"lowTargetMax"
|
|
],
|
|
[
|
|
"lowtar",
|
|
"lowTargetMin"
|
|
],
|
|
[
|
|
"AssuranceSiteCTGen",
|
|
"AssuranceSiteCTGenLimitData"
|
|
],
|
|
[
|
|
"dict",
|
|
"Dict"
|
|
],
|
|
[
|
|
"ControlPlaneCloud",
|
|
"ControlPlaneCloudEvents"
|
|
],
|
|
[
|
|
"AsyncIterator",
|
|
"AsyncIterator"
|
|
],
|
|
[
|
|
"event",
|
|
"EventRoute"
|
|
],
|
|
[
|
|
"controlpl",
|
|
"control_plane_events"
|
|
],
|
|
[
|
|
"check_",
|
|
"check_assurance_running"
|
|
],
|
|
[
|
|
"check_ass",
|
|
"check_assurance_test_running"
|
|
],
|
|
[
|
|
"D",
|
|
"DefaultDERControlResource"
|
|
],
|
|
[
|
|
"SiteC",
|
|
"SiteCTGenerationLimit"
|
|
],
|
|
[
|
|
"agg",
|
|
"aggregator_lfdi"
|
|
],
|
|
[
|
|
"lf",
|
|
"aggregator_lfdi"
|
|
],
|
|
[
|
|
"ASSUR",
|
|
"ASSURANCE_TELEMETRY"
|
|
],
|
|
[
|
|
"assurance",
|
|
"assurance_upstream"
|
|
],
|
|
[
|
|
"AssuranceTelem",
|
|
"AssuranceTelemetry"
|
|
],
|
|
[
|
|
"start_ass",
|
|
"start_assurance_genlimit"
|
|
],
|
|
[
|
|
"AssuranceSiteCT",
|
|
"AssuranceSiteCTGenerationLimitTelemetry"
|
|
],
|
|
[
|
|
"AssuranceSiteCTExpo",
|
|
"AssuranceSiteCTExportLimitTelemetry"
|
|
],
|
|
[
|
|
"AssuranceSiteCt",
|
|
"AssuranceSiteCTExportLimitData"
|
|
],
|
|
[
|
|
"Asurancesitectgen",
|
|
"AssuranceSiteCTGenLimitData"
|
|
],
|
|
[
|
|
"AssuranceSiteCTG",
|
|
"AssuranceSiteCTGenLimitTelemetry"
|
|
],
|
|
[
|
|
"wait",
|
|
"wait_for"
|
|
],
|
|
[
|
|
"Assurance",
|
|
"AssuranceRSPsTelemetry"
|
|
],
|
|
[
|
|
"final",
|
|
"final_control_mrid_fn"
|
|
],
|
|
[
|
|
"third_",
|
|
"third_control_mrid_fn"
|
|
],
|
|
[
|
|
"third",
|
|
"third_control_mrid_fn"
|
|
],
|
|
[
|
|
"ready",
|
|
"ready_for_criteria_a"
|
|
],
|
|
[
|
|
"control_",
|
|
"control_cancelled_fn"
|
|
],
|
|
[
|
|
"get_ini",
|
|
"get_initial_control_mrids_fn"
|
|
],
|
|
[
|
|
"AssuranceMeasure",
|
|
"AssuranceMeasurementsTelemetry"
|
|
],
|
|
[
|
|
"notifi",
|
|
"notified_class"
|
|
],
|
|
[
|
|
"ready_for_c",
|
|
"ready_for_criteria_c"
|
|
],
|
|
[
|
|
"mRID",
|
|
"mRIDType"
|
|
],
|
|
[
|
|
"exp",
|
|
"expected_mrid"
|
|
],
|
|
[
|
|
"Expected",
|
|
"expected_status"
|
|
],
|
|
[
|
|
"expected",
|
|
"expected_status"
|
|
],
|
|
[
|
|
"handl",
|
|
"handle_criteria_c"
|
|
],
|
|
[
|
|
"ready_for_criteria",
|
|
"ready_for_criteria_b"
|
|
],
|
|
[
|
|
"meet",
|
|
"meet_criteria_b"
|
|
],
|
|
[
|
|
"consumer",
|
|
"_consumer_ready"
|
|
],
|
|
[
|
|
"r",
|
|
"_ready"
|
|
],
|
|
[
|
|
"ListenerAr",
|
|
"ListenerArgT"
|
|
],
|
|
[
|
|
"Listen",
|
|
"ListenerArgT"
|
|
],
|
|
[
|
|
"ListenerArg",
|
|
"ListenerArgT"
|
|
],
|
|
[
|
|
"listen",
|
|
"listener_config"
|
|
],
|
|
[
|
|
"listener",
|
|
"listener_config"
|
|
],
|
|
[
|
|
"KAFKA",
|
|
"KAFKA_STATIC_GROUPS"
|
|
],
|
|
[
|
|
"DERControlList",
|
|
"DERControlList"
|
|
],
|
|
[
|
|
"lfdi",
|
|
"lfdi="
|
|
],
|
|
[
|
|
"Topics",
|
|
"Topics"
|
|
],
|
|
[
|
|
"asynccontextma",
|
|
"asynccontextmanager"
|
|
],
|
|
[
|
|
"DataplaneD",
|
|
"DataPlaneDERControlListEvent"
|
|
],
|
|
[
|
|
"DATAP",
|
|
"DataPlaneDefaultDERControlEvent"
|
|
],
|
|
[
|
|
"DAT",
|
|
"DATAPLANE_DEFAULT_CONTROLS"
|
|
],
|
|
[
|
|
"DefaultDERCon",
|
|
"DefaultDERControl"
|
|
],
|
|
[
|
|
"Dercontrollist",
|
|
"DERControlList"
|
|
],
|
|
[
|
|
"dataplane",
|
|
"data_plane_api_types"
|
|
],
|
|
[
|
|
"DefaultDerContrl",
|
|
"DefaultDERControlResource"
|
|
],
|
|
[
|
|
"DefaultDER",
|
|
"DefaultDERControlResource"
|
|
],
|
|
[
|
|
"UPSTREA",
|
|
"UpstreamType"
|
|
],
|
|
[
|
|
"CONT",
|
|
"CONTROLS_DATAPLANE"
|
|
],
|
|
[
|
|
"ControlPlaneCon",
|
|
"ControlPlaneControlsCloudEvent"
|
|
],
|
|
[
|
|
"ControlPlaneEvent",
|
|
"ControlPlaneCloudEvent"
|
|
],
|
|
[
|
|
"listener_",
|
|
"listener_arg_t"
|
|
],
|
|
[
|
|
"Listener",
|
|
"ListenerFn"
|
|
],
|
|
[
|
|
"list",
|
|
"listener_arg_t"
|
|
],
|
|
[
|
|
"issubcl",
|
|
"issubclass"
|
|
],
|
|
[
|
|
"DERContolRe",
|
|
"DERControlResponseEvent"
|
|
],
|
|
[
|
|
"Teleme",
|
|
"TelemetryReadingList"
|
|
],
|
|
[
|
|
"control",
|
|
"control_plane_events"
|
|
],
|
|
[
|
|
"AssuranceTele",
|
|
"AssuranceTelemetry"
|
|
],
|
|
[
|
|
"Typev",
|
|
"TypeVar"
|
|
],
|
|
[
|
|
"Assuranc",
|
|
"AssuranceTelemetries"
|
|
],
|
|
[
|
|
"sta",
|
|
"start_as_current_span"
|
|
],
|
|
[
|
|
"defaultt",
|
|
"default_teardown"
|
|
],
|
|
[
|
|
"AssuranceRun",
|
|
"AssuranceRunFn"
|
|
],
|
|
[
|
|
"span",
|
|
"start_as_current_span"
|
|
],
|
|
[
|
|
"Redis",
|
|
"Redis"
|
|
],
|
|
[
|
|
"Valey",
|
|
"Valkey"
|
|
],
|
|
[
|
|
"AssuranceRsps",
|
|
"AssuranceRSPsTelemetry"
|
|
],
|
|
[
|
|
"redi",
|
|
"RedisConnectionAsync"
|
|
],
|
|
[
|
|
"Self",
|
|
"Self"
|
|
],
|
|
[
|
|
"AssuranceTe",
|
|
"AssuranceTelemetry"
|
|
],
|
|
[
|
|
"defaultf",
|
|
"default_factory="
|
|
],
|
|
[
|
|
"field",
|
|
"field"
|
|
],
|
|
[
|
|
"datacl",
|
|
"dataclass"
|
|
],
|
|
[
|
|
"run_assurance",
|
|
"run_assurance_rsps"
|
|
]
|
|
]
|
|
},
|
|
"buffers":
|
|
[
|
|
{
|
|
"file": "src/main.rs",
|
|
"settings":
|
|
{
|
|
"buffer_size": 5364,
|
|
"encoding": "UTF-8",
|
|
"line_ending": "Unix"
|
|
},
|
|
"undo_stack":
|
|
[
|
|
[
|
|
276,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAACrFgAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGNvZGVjOjpDczQzbDIyLAogICAgaGFsOjp7CiAgICAgICAgZ3Bpbzo6e2dwaW9hLCBncGlvYTo6UEEwLCBncGlvYywgRWRnZSwgSW5wdXR9LAogICAgICAgIGkyYzo6e0kyYywgTW9kZX0sCiAgICAgICAgaTJzOjpzdG0zMl9pMnNfdjEyeDo6dHJhbnNmZXI6OiosCiAgICAgICAgaTJzOjpJMnMsCiAgICAgICAgbmI6OmJsb2NrLAogICAgICAgIHBhYywKICAgICAgICBwYWM6OmludGVycnVwdCwKICAgICAgICBwcmVsdWRlOjoqLAogICAgICAgIHJjYzo6e0NvbmZpZywgUmNjfSwKICAgIH0sCn07CgovLyAtLS0tIHRvbmUgLS0tLQpjb25zdCBTQVdfSFo6IHUzMiA9IDQwMDsKY29uc3QgU0FNUExFX1JBVEVfSFo6IHUzMiA9IDQ4XzAwMDsKY29uc3QgU0FNUExFU19QRVJfQ1lDTEU6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gU0FXX0haOyAvLyAxMjAKLy8gRnVsbC1zY2FsZSBpcyBwYWluZnVsbHkgbG91ZCBvbiBoZWFkcGhvbmVzOyBydW4gdGhlIHNhdyBhdCB+MS84IGFtcGxpdHVkZS4KY29uc3QgQU1QTElUVURFOiBpMzIgPSBpMTY6Ok1BWCBhcyBpMzIgLyA4OwoKLy8gLS0tLSBidXR0b24gLS0tLQovLyBBZnRlciBhIHRvZ2dsZSwgaWdub3JlIGZ1cnRoZXIgcHJlc3NlcyBmb3IgfjIwIG1zIG9mIHNhbXBsZXMgKGJvdW5jZSkuCmNvbnN0IERFQk9VTkNFX1NBTVBMRVM6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gNTA7CgovLy8gQnV0dG9uIHBpbiwgcGFya2VkIGhlcmUgc28gdGhlIEVYVEkwIGhhbmRsZXIgY2FuIGNsZWFyIGl0cyBwZW5kaW5nIGJpdC4Kc3RhdGljIEJVVFRPTjogTXV0ZXg8UmVmQ2VsbDxPcHRpb248UEEwPElucHV0Pj4+PiA9IE11dGV4OjpuZXcoUmVmQ2VsbDo6bmV3KE5vbmUpKTsKLy8vIFNldCBieSBFWFRJMCBvbiBhIHByZXNzIGVkZ2UsIGNvbnN1bWVkIGJ5IHRoZSBhdWRpbyBsb29wLgpzdGF0aWMgVE9HR0xFX1JFUTogQXRvbWljQm9vbCA9IEF0b21pY0Jvb2w6Om5ldyhmYWxzZSk7Cgp0eXBlIEF1ZGlvT3V0ID0gSTJzVHJhbnNmZXI8STJzPHBhYzo6U1BJMz4sIE1hc3RlciwgVHJhbnNtaXQsIFBoaWxpcHMsIERhdGExNkNoYW5uZWwxNj47CgovLy8gSTJTMyBtYXN0ZXIgdHJhbnNtaXQsIDE2LWJpdCBzdGVyZW8sIE1DTEsgb3V0IGZvciB0aGUgY29kZWMuCmZuIGF1ZGlvX291dCgKICAgIHNwaTogcGFjOjpTUEkzLAogICAgcGluczogKGdwaW9hOjpQQTQsIGdwaW9jOjpQQzEwLCBPcHRpb248Z3Bpb2M6OlBDNz4sIGdwaW9jOjpQQzEyKSwKICAgIHJjYzogJm11dCBSY2MsCikgLT4gQXVkaW9PdXQgewogICAgbGV0IGkycyA9IEkyczo6bmV3KHNwaSwgcGlucywgcmNjKTsKICAgIGxldCBjb25maWcgPSBJMnNUcmFuc2ZlckNvbmZpZzo6bmV3X21hc3RlcigpCiAgICAgICAgLnRyYW5zbWl0KCkKICAgICAgICAuc3RhbmRhcmQoUGhpbGlwcykKICAgICAgICAuZGF0YV9mb3JtYXQoRGF0YTE2Q2hhbm5lbDE2KQogICAgICAgIC5tYXN0ZXJfY2xvY2sodHJ1ZSkKICAgICAgICAucmVxdWVzdF9mcmVxdWVuY3koU0FNUExFX1JBVEVfSFopOwogICAgSTJzVHJhbnNmZXI6Om5ldyhpMnMsIGNvbmZpZykKfQoKLy8vIFNhbXBsZSBgaWAgKG9mIFNBTVBMRVNfUEVSX0NZQ0xFKSBvZiB0aGUgc2F3dG9vdGg6IGEgbGluZWFyIHJhbXAgZnJvbQovLy8gLUFNUExJVFVERSB0byArQU1QTElUVURFLCB3cmFwcGluZyBlYWNoIGN5Y2xlLgpmbiBzYXdfc2FtcGxlKGk6IHUzMikgLT4gaTE2IHsKICAgIChpIGFzIGkzMiAqIDIgKiBBTVBMSVRVREUgLyBTQU1QTEVTX1BFUl9DWUNMRSBhcyBpMzIgLSBBTVBMSVRVREUpIGFzIGkxNgp9CgojW2VudHJ5XQpmbiBtYWluKCkgLT4gISB7CiAgICBsZXQgY3AgPSBjb3J0ZXhfbTo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKICAgIGxldCBtdXQgcCA9IHBhYzo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKCiAgICAvLyBQTExJMlMgdHVuZWQgdG8gNjEuNDQgTUh6IHNvIDQ4IGtIeiBkaXZpZGVzIGV4YWN0bHkgKDYxLjQ0IE1IeiAvIDI1NmZzIC8gNSkuCiAgICBsZXQgbXV0IHJjYyA9IHAKICAgICAgICAuUkNDCiAgICAgICAgLmZyZWV6ZShDb25maWc6OmhzaSgpLnN5c2Nsayg5Ni5NSHooKSkuaTJzX2Nsayg2MTQ0MC5rSHooKSkpOwogICAgbGV0IG11dCBkZWxheSA9IGNwLlNZU1QuZGVsYXkoJnJjYy5jbG9ja3MpOwoKICAgIGxldCBncGlvYSA9IHAuR1BJT0Euc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9iID0gcC5HUElPQi5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2MgPSBwLkdQSU9DLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvZCA9IHAuR1BJT0Quc3BsaXQoJm11dCByY2MpOwoKICAgIC8vIFVTRVIgYnV0dG9uIChCMSk6IHJpc2luZy1lZGdlIGludGVycnVwdCBvbiBFWFRJMC4KICAgIGxldCBtdXQgc3lzY2ZnID0gcC5TWVNDRkcuY29uc3RyYWluKCZtdXQgcmNjKTsKICAgIGxldCBtdXQgYnV0dG9uID0gZ3Bpb2EucGEwLmludG9fcHVsbF9kb3duX2lucHV0KCk7CiAgICBidXR0b24ubWFrZV9pbnRlcnJ1cHRfc291cmNlKCZtdXQgc3lzY2ZnKTsKICAgIGJ1dHRvbi50cmlnZ2VyX29uX2VkZ2UoJm11dCBwLkVYVEksIEVkZ2U6OlJpc2luZyk7CiAgICBidXR0b24uZW5hYmxlX2ludGVycnVwdCgmbXV0IHAuRVhUSSk7CiAgICBjb3J0ZXhfbTo6aW50ZXJydXB0OjpmcmVlKHxjc3wgQlVUVE9OLmJvcnJvdyhjcykucmVwbGFjZShTb21lKGJ1dHRvbikpKTsKICAgIHVuc2FmZSB7IHBhYzo6TlZJQzo6dW5tYXNrKHBhYzo6SW50ZXJydXB0OjpFWFRJMCkgfTsKCiAgICAvLyBDUzQzTDIyIGNvZGVjOiBjb250cm9sIHBvcnQgKyByZXNldCB2aWEgdGhlIGJvYXJkLXN1cHBvcnQgZHJpdmVyLgogICAgbGV0IGkyYyA9IEkyYzo6bmV3KAogICAgICAgIHAuSTJDMSwKICAgICAgICAoZ3Bpb2IucGI2LCBncGlvYi5wYjkpLAogICAgICAgIE1vZGU6OnN0YW5kYXJkKDEwMC5rSHooKSksCiAgICAgICAgJm11dCByY2MsCiAgICApOwogICAgbGV0IG11dCBjb2RlYyA9IENzNDNsMjI6Om5ldyhpMmMsIGdwaW9kLnBkNC5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKSk7CiAgICBtYXRjaCBjb2RlYy5pbml0KCZtdXQgZGVsYXkpIHsKICAgICAgICBPayhpZCkgPT4gZGVmbXQ6OmluZm8hKCJjb2RlYyB1cCwgSUQgcmVnIHs9dTg6IzA0eH0iLCBpZCksCiAgICAgICAgRXJyKGUpID0+IGRlZm10OjplcnJvciEoImNvZGVjIGluaXQgZmFpbGVkOiB7fSIsIGRlZm10OjpEZWJ1ZzJGb3JtYXQoJmUpKSwKICAgIH0KCiAgICBsZXQgbXV0IHRyYW5zZmVyID0gYXVkaW9fb3V0KAogICAgICAgIHAuU1BJMywKICAgICAgICAoZ3Bpb2EucGE0LCBncGlvYy5wYzEwLCBTb21lKGdwaW9jLnBjNyksIGdwaW9jLnBjMTIpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKCiAgICBkZWZtdDo6aW5mbyEoCiAgICAgICAgInNhdzoge30gSHosIHNhbXBsZSByYXRlIHt9IEh6ICh7fSBzYW1wbGVzL2N5Y2xlKSIsCiAgICAgICAgU0FXX0haLAogICAgICAgIHRyYW5zZmVyLnNhbXBsZV9yYXRlKCksCiAgICAgICAgU0FNUExFU19QRVJfQ1lDTEUKICAgICk7CgogICAgLy8gSGVhcnRiZWF0IExFRCAoYmx1ZSwgUEQxNSk6IHRvZ2dsZXMgb25jZSBhIHNlY29uZCBzbyBpdCdzIHZpc2libGUgdGhlCiAgICAvLyBmaXJtd2FyZSBpcyBhbGl2ZSB3aXRob3V0IGEgZGVidWdnZXIgYXR0YWNoZWQuCiAgICBsZXQgbXV0IGhlYXJ0YmVhdCA9IGdwaW9kLnBkMTUuaW50b19wdXNoX3B1bGxfb3V0cHV0KCk7CgogICAgbGV0IG11dCBpID0gMDsKICAgIGxldCBtdXQgZnJhbWVzOiB1MzIgPSAwOwogICAgbGV0IG11dCBvbiA9IHRydWU7CiAgICBsZXQgbXV0IGhvbGRvZmY6IHUzMiA9IDA7CiAgICBsb29wIHsKICAgICAgICAvLyBDb25zdW1lIGFueSBwcmVzcyBmbGFnIGV2ZXJ5IGZyYW1lIChzbyBib3VuY2UgZHVyaW5nIHRoZSBob2xkLW9mZgogICAgICAgIC8vIHdpbmRvdyBpcyBkaXNjYXJkZWQpLCBhcHBseSBpdCBvbmx5IG91dHNpZGUgdGhlIHdpbmRvdy4KICAgICAgICBob2xkb2ZmID0gaG9sZG9mZi5zYXR1cmF0aW5nX3N1YigxKTsKICAgICAgICBpZiBUT0dHTEVfUkVRLnN3YXAoZmFsc2UsIE9yZGVyaW5nOjpBY3FSZWwpICYmIGhvbGRvZmYgPT0gMCB7CiAgICAgICAgICAgIG9uID0gIW9uOwogICAgICAgICAgICBob2xkb2ZmID0gREVCT1VOQ0VfU0FNUExFUzsKICAgICAgICAgICAgZGVmbXQ6OmluZm8hKCJzYXcge30iLCBpZiBvbiB7ICJPTiIgfSBlbHNlIHsgIk9GRiIgfSk7CiAgICAgICAgfQoKICAgICAgICBsZXQgc2FtcGxlID0gbWF0Y2ggb24gewogICAgICAgICAgICB0cnVlID0+IHNhd19zYW1wbGUoaSksCiAgICAgICAgICAgIGZhbHNlID0+IDAsCiAgICAgICAgfTsKICAgICAgICBibG9jayEodHJhbnNmZXIud3JpdGUoKHNhbXBsZSwgc2FtcGxlKSkpLnVud3JhcCgpOwogICAgICAgIGkgPSAoaSArIDEpICUgU0FNUExFU19QRVJfQ1lDTEU7CgogICAgICAgIGZyYW1lcyArPSAxOwogICAgICAgIGlmIGZyYW1lcyA9PSBTQU1QTEVfUkFURV9IWiB7CiAgICAgICAgICAgIGZyYW1lcyA9IDA7CiAgICAgICAgICAgIGhlYXJ0YmVhdC50b2dnbGUoKTsKICAgICAgICB9CiAgICB9Cn0KCiNbaW50ZXJydXB0XQpmbiBFWFRJMCgpIHsKICAgIGNvcnRleF9tOjppbnRlcnJ1cHQ6OmZyZWUofGNzfCB7CiAgICAgICAgaWYgbGV0IFNvbWUocGluKSA9IEJVVFRPTi5ib3Jyb3coY3MpLmJvcnJvd19tdXQoKS5hc19tdXQoKSB7CiAgICAgICAgICAgIHBpbi5jbGVhcl9pbnRlcnJ1cHRfcGVuZGluZ19iaXQoKTsKICAgICAgICB9CiAgICB9KTsKICAgIFRPR0dMRV9SRVEuc3RvcmUodHJ1ZSwgT3JkZXJpbmc6OlJlbGVhc2UpOwp9CgAAAAAAAAAA3RYAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAHsNAAAAAAAAfA0AAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
277,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAADeFgAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGNvZGVjOjpDczQzbDIyLAogICAgaGFsOjp7CiAgICAgICAgZ3Bpbzo6e2dwaW9hLCBncGlvYTo6UEEwLCBncGlvYywgRWRnZSwgSW5wdXR9LAogICAgICAgIGkyYzo6e0kyYywgTW9kZX0sCiAgICAgICAgaTJzOjpzdG0zMl9pMnNfdjEyeDo6dHJhbnNmZXI6OiosCiAgICAgICAgaTJzOjpJMnMsCiAgICAgICAgbmI6OmJsb2NrLAogICAgICAgIHBhYywKICAgICAgICBwYWM6OmludGVycnVwdCwKICAgICAgICBwcmVsdWRlOjoqLAogICAgICAgIHJjYzo6e0NvbmZpZywgUmNjfSwKICAgIH0sCn07CgovLyAtLS0tIHRvbmUgLS0tLQpjb25zdCBTQVdfSFo6IHUzMiA9IDQwMDsKY29uc3QgU0FNUExFX1JBVEVfSFo6IHUzMiA9IDQ4XzAwMDsKY29uc3QgU0FNUExFU19QRVJfQ1lDTEU6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gU0FXX0haOyAvLyAxMjAKLy8gRnVsbC1zY2FsZSBpcyBwYWluZnVsbHkgbG91ZCBvbiBoZWFkcGhvbmVzOyBydW4gdGhlIHNhdyBhdCB+MS84IGFtcGxpdHVkZS4KY29uc3QgQU1QTElUVURFOiBpMzIgPSBpMTY6Ok1BWCBhcyBpMzIgLyA4OwoKLy8gLS0tLSBidXR0b24gLS0tLQovLyBBZnRlciBhIHRvZ2dsZSwgaWdub3JlIGZ1cnRoZXIgcHJlc3NlcyBmb3IgfjIwIG1zIG9mIHNhbXBsZXMgKGJvdW5jZSkuCmNvbnN0IERFQk9VTkNFX1NBTVBMRVM6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gNTA7CgovLy8gQnV0dG9uIHBpbiwgcGFya2VkIGhlcmUgc28gdGhlIEVYVEkwIGhhbmRsZXIgY2FuIGNsZWFyIGl0cyBwZW5kaW5nIGJpdC4Kc3RhdGljIEJVVFRPTjogTXV0ZXg8UmVmQ2VsbDxPcHRpb248UEEwPElucHV0Pj4+PiA9IE11dGV4OjpuZXcoUmVmQ2VsbDo6bmV3KE5vbmUpKTsKLy8vIFNldCBieSBFWFRJMCBvbiBhIHByZXNzIGVkZ2UsIGNvbnN1bWVkIGJ5IHRoZSBhdWRpbyBsb29wLgpzdGF0aWMgVE9HR0xFX1JFUTogQXRvbWljQm9vbCA9IEF0b21pY0Jvb2w6Om5ldyhmYWxzZSk7Cgp0eXBlIEF1ZGlvT3V0ID0gSTJzVHJhbnNmZXI8STJzPHBhYzo6U1BJMz4sIE1hc3RlciwgVHJhbnNtaXQsIFBoaWxpcHMsIERhdGExNkNoYW5uZWwxNj47CgovLy8gSTJTMyBtYXN0ZXIgdHJhbnNtaXQsIDE2LWJpdCBzdGVyZW8sIE1DTEsgb3V0IGZvciB0aGUgY29kZWMuCmZuIGF1ZGlvX291dCgKICAgIHNwaTogcGFjOjpTUEkzLAogICAgcGluczogKGdwaW9hOjpQQTQsIGdwaW9jOjpQQzEwLCBPcHRpb248Z3Bpb2M6OlBDNz4sIGdwaW9jOjpQQzEyKSwKICAgIHJjYzogJm11dCBSY2MsCikgLT4gQXVkaW9PdXQgewogICAgbGV0IGkycyA9IEkyczo6bmV3KHNwaSwgcGlucywgcmNjKTsKICAgIGxldCBjb25maWcgPSBJMnNUcmFuc2ZlckNvbmZpZzo6bmV3X21hc3RlcigpCiAgICAgICAgLnRyYW5zbWl0KCkKICAgICAgICAuc3RhbmRhcmQoUGhpbGlwcykKICAgICAgICAuZGF0YV9mb3JtYXQoRGF0YTE2Q2hhbm5lbDE2KQogICAgICAgIC5tYXN0ZXJfY2xvY2sodHJ1ZSkKICAgICAgICAucmVxdWVzdF9mcmVxdWVuY3koU0FNUExFX1JBVEVfSFopOwogICAgSTJzVHJhbnNmZXI6Om5ldyhpMnMsIGNvbmZpZykKfQoKLy8vIFNhbXBsZSBgaWAgKG9mIFNBTVBMRVNfUEVSX0NZQ0xFKSBvZiB0aGUgc2F3dG9vdGg6IGEgbGluZWFyIHJhbXAgZnJvbQovLy8gLUFNUExJVFVERSB0byArQU1QTElUVURFLCB3cmFwcGluZyBlYWNoIGN5Y2xlLgpmbiBzYXdfc2FtcGxlKGk6IHUzMikgLT4gaTE2IHsKICAgIChpIGFzIGkzMiAqIDIgKiBBTVBMSVRVREUgLyBTQU1QTEVTX1BFUl9DWUNMRSBhcyBpMzIgLSBBTVBMSVRVREUpIGFzIGkxNgp9CgojW2VudHJ5XQpmbiBtYWluKCkgLT4gISB7CiAgICBsZXQgY3AgPSBjb3J0ZXhfbTo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKICAgIGxldCBtdXQgcCA9IHBhYzo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKCiAgICAvLyBQTExJMlMgdHVuZWQgdG8gNjEuNDQgTUh6IHNvIDQ4IGtIeiBkaXZpZGVzIGV4YWN0bHkgKDYxLjQ0IE1IeiAvIDI1NmZzIC8gNSkuCiAgICBsZXQgbXV0IHJjYyA9IHAKICAgICAgICAuUkNDCiAgICAgICAgLmZyZWV6ZShDb25maWc6OmhzaSgpLnN5c2Nsayg5Ni5NSHooKSkuaTJzX2Nsayg2MTQ0MC5rSHooKSkpOwogICAgbGV0IG11dCBkZWxheSA9IGNwLlNZU1QuZGVsYXkoJnJjYy5jbG9ja3MpOwoKICAgIGxldCBncGlvYSA9IHAuR1BJT0Euc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9iID0gcC5HUElPQi5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2MgPSBwLkdQSU9DLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvZCA9IHAuR1BJT0Quc3BsaXQoJm11dCByY2MpOwoKICAgIC8vIFVTRVIgYnV0dG9uIChCMSk6IHJpc2luZy1lZGdlIGludGVycnVwdCBvbiBFWFRJMC4KICAgIGxldCBtdXQgc3lzY2ZnID0gcC5TWVNDRkcuY29uc3RyYWluKCZtdXQgcmNjKTsKICAgIGxldCBtdXQgYnV0dG9uID0gZ3Bpb2EucGEwLmludG9fcHVsbF9kb3duX2lucHV0KCk7CiAgICBidXR0b24ubWFrZV9pbnRlcnJ1cHRfc291cmNlKCZtdXQgc3lzY2ZnKTsKICAgIGJ1dHRvbi50cmlnZ2VyX29uX2VkZ2UoJm11dCBwLkVYVEksIEVkZ2U6OlJpc2luZyk7CiAgICBidXR0b24uZW5hYmxlX2ludGVycnVwdCgmbXV0IHAuRVhUSSk7CiAgICBjb3J0ZXhfbTo6aW50ZXJydXB0OjpmcmVlKHxjc3wgQlVUVE9OLmJvcnJvdyhjcykucmVwbGFjZShTb21lKGJ1dHRvbikpKTsKICAgIHVuc2FmZSB7IHBhYzo6TlZJQzo6dW5tYXNrKHBhYzo6SW50ZXJydXB0OjpFWFRJMCkgfTsKCiAgICAvLyBDUzQzTDIyIGNvZGVjOiBjb250cm9sIHBvcnQgKyByZXNldCB2aWEgdGhlIGJvYXJkLXN1cHBvcnQgZHJpdmVyLgogICAgbGV0IGkyYyA9IEkyYzo6bmV3KAogICAgICAgIHAuSTJDMSwKICAgICAgICAoZ3Bpb2IucGI2LCBncGlvYi5wYjkpLAogICAgICAgIE1vZGU6OnN0YW5kYXJkKDEwMC5rSHooKSksCiAgICAgICAgJm11dCByY2MsCiAgICApOwogICAgbGV0IG11dCBjb2RlYyA9IENzNDNsMjI6Om5ldyhpMmMsIGdwaW9kLnBkNC5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKSk7CiAgICBtYXRjaCBjb2RlYy5pbml0KCZtdXQgZGVsYXkpIHsKICAgICAgICBPayhpZCkgPT4gZGVmbXQ6OmluZm8hKCJjb2RlYyB1cCwgSUQgcmVnIHs9dTg6IzA0eH0iLCBpZCksCiAgICAgICAgRXJyKGUpID0+IGRlZm10OjplcnJvciEoImNvZGVjIGluaXQgZmFpbGVkOiB7fSIsIGRlZm10OjpEZWJ1ZzJGb3JtYXQoJmUpKSwKICAgIH0KCiAgICBsZXQgbXV0IHRyYW5zZmVyID0gYXVkaW9fb3V0KAogICAgICAgIHAuU1BJMywKICAgICAgICAoZ3Bpb2EucGE0LCBncGlvYy5wYzEwLCBTb21lKGdwaW9jLnBjNyksIGdwaW9jLnBjMTIpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKCiAgICBkZWZtdDo6aW5mbyEoCiAgICAgICAgInNhdzoge30gSHosIHNhbXBsZSByYXRlIHt9IEh6ICh7fSBzYW1wbGVzL2N5Y2xlKSIsCiAgICAgICAgU0FXX0haLAogICAgICAgIHRyYW5zZmVyLnNhbXBsZV9yYXRlKCksCiAgICAgICAgU0FNUExFU19QRVJfQ1lDTEUKICAgICk7CgogICAgLy8gSGVhcnRiZWF0IExFRCAoYmx1ZSwgUEQxNSk6IHRvZ2dsZXMgb25jZSBhIHNlY29uZCBzbyBpdCdzIHZpc2libGUgdGhlCiAgICAvLyBmaXJtd2FyZSBpcyBhbGl2ZSB3aXRob3V0IGEgZGVidWdnZXIgYXR0YWNoZWQuCiAgICBsZXQgbXV0IGhlYXJ0YmVhdCA9IGdwaW9kLnBkMTUuaW50b19wdXNoX3B1bGxfb3V0cHV0KCk7CgogICAgbGV0IG11dCBpID0gMDsKICAgIGxldCBtdXQgZnJhbWVzOiB1MzIgPSAwOwogICAgbGV0IG11dCBvbiA9IGZhbHNlOyAvLyBzaWxlbnQgYXQgYm9vdDsgVVNFUiBidXR0b24gdG9nZ2xlcyB0aGUgc2F3IG9uCiAgICBsZXQgbXV0IGhvbGRvZmY6IHUzMiA9IDA7CiAgICBsb29wIHsKICAgICAgICAvLyBDb25zdW1lIGFueSBwcmVzcyBmbGFnIGV2ZXJ5IGZyYW1lIChzbyBib3VuY2UgZHVyaW5nIHRoZSBob2xkLW9mZgogICAgICAgIC8vIHdpbmRvdyBpcyBkaXNjYXJkZWQpLCBhcHBseSBpdCBvbmx5IG91dHNpZGUgdGhlIHdpbmRvdy4KICAgICAgICBob2xkb2ZmID0gaG9sZG9mZi5zYXR1cmF0aW5nX3N1YigxKTsKICAgICAgICBpZiBUT0dHTEVfUkVRLnN3YXAoZmFsc2UsIE9yZGVyaW5nOjpBY3FSZWwpICYmIGhvbGRvZmYgPT0gMCB7CiAgICAgICAgICAgIG9uID0gIW9uOwogICAgICAgICAgICBob2xkb2ZmID0gREVCT1VOQ0VfU0FNUExFUzsKICAgICAgICAgICAgZGVmbXQ6OmluZm8hKCJzYXcge30iLCBpZiBvbiB7ICJPTiIgfSBlbHNlIHsgIk9GRiIgfSk7CiAgICAgICAgfQoKICAgICAgICBsZXQgc2FtcGxlID0gbWF0Y2ggb24gewogICAgICAgICAgICB0cnVlID0+IHNhd19zYW1wbGUoaSksCiAgICAgICAgICAgIGZhbHNlID0+IDAsCiAgICAgICAgfTsKICAgICAgICBibG9jayEodHJhbnNmZXIud3JpdGUoKHNhbXBsZSwgc2FtcGxlKSkpLnVud3JhcCgpOwogICAgICAgIGkgPSAoaSArIDEpICUgU0FNUExFU19QRVJfQ1lDTEU7CgogICAgICAgIGZyYW1lcyArPSAxOwogICAgICAgIGlmIGZyYW1lcyA9PSBTQU1QTEVfUkFURV9IWiB7CiAgICAgICAgICAgIGZyYW1lcyA9IDA7CiAgICAgICAgICAgIGhlYXJ0YmVhdC50b2dnbGUoKTsKICAgICAgICB9CiAgICB9Cn0KCiNbaW50ZXJydXB0XQpmbiBFWFRJMCgpIHsKICAgIGNvcnRleF9tOjppbnRlcnJ1cHQ6OmZyZWUofGNzfCB7CiAgICAgICAgaWYgbGV0IFNvbWUocGluKSA9IEJVVFRPTi5ib3Jyb3coY3MpLmJvcnJvd19tdXQoKS5hc19tdXQoKSB7CiAgICAgICAgICAgIHBpbi5jbGVhcl9pbnRlcnJ1cHRfcGVuZGluZ19iaXQoKTsKICAgICAgICB9CiAgICB9KTsKICAgIFRPR0dMRV9SRVEuc3RvcmUodHJ1ZSwgT3JkZXJpbmc6OlJlbGVhc2UpOwp9CgAAAAAAAAAAXRcAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAHsNAAAAAAAAfA0AAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
278,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAABeFwAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGNvZGVjOjpDczQzbDIyLAogICAgaGFsOjp7CiAgICAgICAgZ3Bpbzo6e2dwaW9hLCBncGlvYTo6UEEwLCBncGlvYywgRWRnZSwgSW5wdXR9LAogICAgICAgIGkyYzo6e0kyYywgTW9kZX0sCiAgICAgICAgaTJzOjpzdG0zMl9pMnNfdjEyeDo6dHJhbnNmZXI6OiosCiAgICAgICAgaTJzOjpJMnMsCiAgICAgICAgbmI6OmJsb2NrLAogICAgICAgIHBhYywKICAgICAgICBwYWM6OmludGVycnVwdCwKICAgICAgICBwcmVsdWRlOjoqLAogICAgICAgIHJjYzo6e0NvbmZpZywgUmNjfSwKICAgIH0sCn07CgovLyAtLS0tIHRvbmUgLS0tLQpjb25zdCBTQVdfSFo6IHUzMiA9IDQwMDsKY29uc3QgU0FNUExFX1JBVEVfSFo6IHUzMiA9IDQ4XzAwMDsKY29uc3QgU0FNUExFU19QRVJfQ1lDTEU6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gU0FXX0haOyAvLyAxMjAKLy8gRnVsbC1zY2FsZSBpcyBwYWluZnVsbHkgbG91ZCBvbiBoZWFkcGhvbmVzOyBydW4gdGhlIHNhdyBhdCB+MS84IGFtcGxpdHVkZS4KY29uc3QgQU1QTElUVURFOiBpMzIgPSBpMTY6Ok1BWCBhcyBpMzIgLyA4OwoKLy8gLS0tLSBidXR0b24gLS0tLQovLyBBZnRlciBhIHRvZ2dsZSwgaWdub3JlIGZ1cnRoZXIgcHJlc3NlcyBmb3IgfjIwIG1zIG9mIHNhbXBsZXMgKGJvdW5jZSkuCmNvbnN0IERFQk9VTkNFX1NBTVBMRVM6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gNTA7CgovLy8gQnV0dG9uIHBpbiwgcGFya2VkIGhlcmUgc28gdGhlIEVYVEkwIGhhbmRsZXIgY2FuIGNsZWFyIGl0cyBwZW5kaW5nIGJpdC4Kc3RhdGljIEJVVFRPTjogTXV0ZXg8UmVmQ2VsbDxPcHRpb248UEEwPElucHV0Pj4+PiA9IE11dGV4OjpuZXcoUmVmQ2VsbDo6bmV3KE5vbmUpKTsKLy8vIFNldCBieSBFWFRJMCBvbiBhIHByZXNzIGVkZ2UsIGNvbnN1bWVkIGJ5IHRoZSBhdWRpbyBsb29wLgpzdGF0aWMgVE9HR0xFX1JFUTogQXRvbWljQm9vbCA9IEF0b21pY0Jvb2w6Om5ldyhmYWxzZSk7Cgp0eXBlIEF1ZGlvT3V0ID0gSTJzVHJhbnNmZXI8STJzPHBhYzo6U1BJMz4sIE1hc3RlciwgVHJhbnNtaXQsIFBoaWxpcHMsIERhdGExNkNoYW5uZWwxNj47CgovLy8gSTJTMyBtYXN0ZXIgdHJhbnNtaXQsIDE2LWJpdCBzdGVyZW8sIE1DTEsgb3V0IGZvciB0aGUgY29kZWMuCmZuIGF1ZGlvX291dCgKICAgIHNwaTogcGFjOjpTUEkzLAogICAgcGluczogKGdwaW9hOjpQQTQsIGdwaW9jOjpQQzEwLCBPcHRpb248Z3Bpb2M6OlBDNz4sIGdwaW9jOjpQQzEyKSwKICAgIHJjYzogJm11dCBSY2MsCikgLT4gQXVkaW9PdXQgewogICAgbGV0IGkycyA9IEkyczo6bmV3KHNwaSwgcGlucywgcmNjKTsKICAgIGxldCBjb25maWcgPSBJMnNUcmFuc2ZlckNvbmZpZzo6bmV3X21hc3RlcigpCiAgICAgICAgLnRyYW5zbWl0KCkKICAgICAgICAuc3RhbmRhcmQoUGhpbGlwcykKICAgICAgICAuZGF0YV9mb3JtYXQoRGF0YTE2Q2hhbm5lbDE2KQogICAgICAgIC5tYXN0ZXJfY2xvY2sodHJ1ZSkKICAgICAgICAucmVxdWVzdF9mcmVxdWVuY3koU0FNUExFX1JBVEVfSFopOwogICAgSTJzVHJhbnNmZXI6Om5ldyhpMnMsIGNvbmZpZykKfQoKLy8vIFNhbXBsZSBgaWAgKG9mIFNBTVBMRVNfUEVSX0NZQ0xFKSBvZiB0aGUgc2F3dG9vdGg6IGEgbGluZWFyIHJhbXAgZnJvbQovLy8gLUFNUExJVFVERSB0byArQU1QTElUVURFLCB3cmFwcGluZyBlYWNoIGN5Y2xlLgpmbiBzYXdfc2FtcGxlKGk6IHUzMikgLT4gaTE2IHsKICAgIChpIGFzIGkzMiAqIDIgKiBBTVBMSVRVREUgLyBTQU1QTEVTX1BFUl9DWUNMRSBhcyBpMzIgLSBBTVBMSVRVREUpIGFzIGkxNgp9CgojW2VudHJ5XQpmbiBtYWluKCkgLT4gISB7CiAgICBsZXQgY3AgPSBjb3J0ZXhfbTo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKICAgIGxldCBtdXQgcCA9IHBhYzo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKCiAgICAvLyBQTExJMlMgdHVuZWQgdG8gNjEuNDQgTUh6IHNvIDQ4IGtIeiBkaXZpZGVzIGV4YWN0bHkgKDYxLjQ0IE1IeiAvIDI1NmZzIC8gNSkuCiAgICBsZXQgbXV0IHJjYyA9IHAKICAgICAgICAuUkNDCiAgICAgICAgLmZyZWV6ZShDb25maWc6OmhzaSgpLnN5c2Nsayg5Ni5NSHooKSkuaTJzX2Nsayg2MTQ0MC5rSHooKSkpOwogICAgbGV0IG11dCBkZWxheSA9IGNwLlNZU1QuZGVsYXkoJnJjYy5jbG9ja3MpOwoKICAgIGxldCBncGlvYSA9IHAuR1BJT0Euc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9iID0gcC5HUElPQi5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2MgPSBwLkdQSU9DLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvZCA9IHAuR1BJT0Quc3BsaXQoJm11dCByY2MpOwoKICAgIC8vIFVTRVIgYnV0dG9uIChCMSk6IHJpc2luZy1lZGdlIGludGVycnVwdCBvbiBFWFRJMC4KICAgIGxldCBtdXQgc3lzY2ZnID0gcC5TWVNDRkcuY29uc3RyYWluKCZtdXQgcmNjKTsKICAgIGxldCBtdXQgYnV0dG9uID0gZ3Bpb2EucGEwLmludG9fcHVsbF9kb3duX2lucHV0KCk7CiAgICBidXR0b24ubWFrZV9pbnRlcnJ1cHRfc291cmNlKCZtdXQgc3lzY2ZnKTsKICAgIGJ1dHRvbi50cmlnZ2VyX29uX2VkZ2UoJm11dCBwLkVYVEksIEVkZ2U6OlJpc2luZyk7CiAgICBidXR0b24uZW5hYmxlX2ludGVycnVwdCgmbXV0IHAuRVhUSSk7CiAgICBjb3J0ZXhfbTo6aW50ZXJydXB0OjpmcmVlKHxjc3wgQlVUVE9OLmJvcnJvdyhjcykucmVwbGFjZShTb21lKGJ1dHRvbikpKTsKICAgIHVuc2FmZSB7IHBhYzo6TlZJQzo6dW5tYXNrKHBhYzo6SW50ZXJydXB0OjpFWFRJMCkgfTsKCiAgICAvLyBDUzQzTDIyIGNvZGVjOiBjb250cm9sIHBvcnQgKyByZXNldCB2aWEgdGhlIGJvYXJkLXN1cHBvcnQgZHJpdmVyLgogICAgbGV0IGkyYyA9IEkyYzo6bmV3KAogICAgICAgIHAuSTJDMSwKICAgICAgICAoZ3Bpb2IucGI2LCBncGlvYi5wYjkpLAogICAgICAgIE1vZGU6OnN0YW5kYXJkKDEwMC5rSHooKSksCiAgICAgICAgJm11dCByY2MsCiAgICApOwogICAgbGV0IG11dCBjb2RlYyA9IENzNDNsMjI6Om5ldyhpMmMsIGdwaW9kLnBkNC5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKSk7CiAgICBtYXRjaCBjb2RlYy5pbml0KCZtdXQgZGVsYXkpIHsKICAgICAgICBPayhpZCkgPT4gZGVmbXQ6OmluZm8hKCJjb2RlYyB1cCwgSUQgcmVnIHs9dTg6IzA0eH0iLCBpZCksCiAgICAgICAgRXJyKGUpID0+IGRlZm10OjplcnJvciEoImNvZGVjIGluaXQgZmFpbGVkOiB7fSIsIGRlZm10OjpEZWJ1ZzJGb3JtYXQoJmUpKSwKICAgIH0KCiAgICBsZXQgbXV0IHRyYW5zZmVyID0gYXVkaW9fb3V0KAogICAgICAgIHAuU1BJMywKICAgICAgICAoZ3Bpb2EucGE0LCBncGlvYy5wYzEwLCBTb21lKGdwaW9jLnBjNyksIGdwaW9jLnBjMTIpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKCiAgICBkZWZtdDo6aW5mbyEoCiAgICAgICAgInNhdzoge30gSHosIHNhbXBsZSByYXRlIHt9IEh6ICh7fSBzYW1wbGVzL2N5Y2xlKSIsCiAgICAgICAgU0FXX0haLAogICAgICAgIHRyYW5zZmVyLnNhbXBsZV9yYXRlKCksCiAgICAgICAgU0FNUExFU19QRVJfQ1lDTEUKICAgICk7CgogICAgLy8gSGVhcnRiZWF0IExFRCAoYmx1ZSwgUEQxNSk6IHRvZ2dsZXMgb25jZSBhIHNlY29uZCBzbyBpdCdzIHZpc2libGUgdGhlCiAgICAvLyBmaXJtd2FyZSBpcyBhbGl2ZSB3aXRob3V0IGEgZGVidWdnZXIgYXR0YWNoZWQuCiAgICBsZXQgbXV0IGhlYXJ0YmVhdCA9IGdwaW9kLnBkMTUuaW50b19wdXNoX3B1bGxfb3V0cHV0KCk7CiAgICAvLyBTYXcgaW5kaWNhdG9yIExFRCAoZ3JlZW4sIFBEMTIpOiBsaXQgd2hpbGUgdGhlIHNhdyBpcyBwbGF5aW5nLgogICAgbGV0IG11dCBzYXdfbGVkID0gZ3Bpb2QucGQxMi5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKTsKCiAgICBsZXQgbXV0IGkgPSAwOwogICAgbGV0IG11dCBmcmFtZXM6IHUzMiA9IDA7CiAgICBsZXQgbXV0IG9uID0gZmFsc2U7IC8vIHNpbGVudCBhdCBib290OyBVU0VSIGJ1dHRvbiB0b2dnbGVzIHRoZSBzYXcgb24KICAgIGxldCBtdXQgaG9sZG9mZjogdTMyID0gMDsKICAgIGxvb3AgewogICAgICAgIC8vIENvbnN1bWUgYW55IHByZXNzIGZsYWcgZXZlcnkgZnJhbWUgKHNvIGJvdW5jZSBkdXJpbmcgdGhlIGhvbGQtb2ZmCiAgICAgICAgLy8gd2luZG93IGlzIGRpc2NhcmRlZCksIGFwcGx5IGl0IG9ubHkgb3V0c2lkZSB0aGUgd2luZG93LgogICAgICAgIGhvbGRvZmYgPSBob2xkb2ZmLnNhdHVyYXRpbmdfc3ViKDEpOwogICAgICAgIGlmIFRPR0dMRV9SRVEuc3dhcChmYWxzZSwgT3JkZXJpbmc6OkFjcVJlbCkgJiYgaG9sZG9mZiA9PSAwIHsKICAgICAgICAgICAgb24gPSAhb247CiAgICAgICAgICAgIGhvbGRvZmYgPSBERUJPVU5DRV9TQU1QTEVTOwogICAgICAgICAgICBkZWZtdDo6aW5mbyEoInNhdyB7fSIsIGlmIG9uIHsgIk9OIiB9IGVsc2UgeyAiT0ZGIiB9KTsKICAgICAgICB9CgogICAgICAgIGxldCBzYW1wbGUgPSBtYXRjaCBvbiB7CiAgICAgICAgICAgIHRydWUgPT4gc2F3X3NhbXBsZShpKSwKICAgICAgICAgICAgZmFsc2UgPT4gMCwKICAgICAgICB9OwogICAgICAgIGJsb2NrISh0cmFuc2Zlci53cml0ZSgoc2FtcGxlLCBzYW1wbGUpKSkudW53cmFwKCk7CiAgICAgICAgaSA9IChpICsgMSkgJSBTQU1QTEVTX1BFUl9DWUNMRTsKCiAgICAgICAgZnJhbWVzICs9IDE7CiAgICAgICAgaWYgZnJhbWVzID09IFNBTVBMRV9SQVRFX0haIHsKICAgICAgICAgICAgZnJhbWVzID0gMDsKICAgICAgICAgICAgaGVhcnRiZWF0LnRvZ2dsZSgpOwogICAgICAgIH0KICAgIH0KfQoKI1tpbnRlcnJ1cHRdCmZuIEVYVEkwKCkgewogICAgY29ydGV4X206OmludGVycnVwdDo6ZnJlZSh8Y3N8IHsKICAgICAgICBpZiBsZXQgU29tZShwaW4pID0gQlVUVE9OLmJvcnJvdyhjcykuYm9ycm93X211dCgpLmFzX211dCgpIHsKICAgICAgICAgICAgcGluLmNsZWFyX2ludGVycnVwdF9wZW5kaW5nX2JpdCgpOwogICAgICAgIH0KICAgIH0pOwogICAgVE9HR0xFX1JFUS5zdG9yZSh0cnVlLCBPcmRlcmluZzo6UmVsZWFzZSk7Cn0KAAAAAAAAAACHFwAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAHsNAAAAAAAAfA0AAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
279,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAACIFwAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGNvZGVjOjpDczQzbDIyLAogICAgaGFsOjp7CiAgICAgICAgZ3Bpbzo6e2dwaW9hLCBncGlvYTo6UEEwLCBncGlvYywgRWRnZSwgSW5wdXR9LAogICAgICAgIGkyYzo6e0kyYywgTW9kZX0sCiAgICAgICAgaTJzOjpzdG0zMl9pMnNfdjEyeDo6dHJhbnNmZXI6OiosCiAgICAgICAgaTJzOjpJMnMsCiAgICAgICAgbmI6OmJsb2NrLAogICAgICAgIHBhYywKICAgICAgICBwYWM6OmludGVycnVwdCwKICAgICAgICBwcmVsdWRlOjoqLAogICAgICAgIHJjYzo6e0NvbmZpZywgUmNjfSwKICAgIH0sCn07CgovLyAtLS0tIHRvbmUgLS0tLQpjb25zdCBTQVdfSFo6IHUzMiA9IDQwMDsKY29uc3QgU0FNUExFX1JBVEVfSFo6IHUzMiA9IDQ4XzAwMDsKY29uc3QgU0FNUExFU19QRVJfQ1lDTEU6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gU0FXX0haOyAvLyAxMjAKLy8gRnVsbC1zY2FsZSBpcyBwYWluZnVsbHkgbG91ZCBvbiBoZWFkcGhvbmVzOyBydW4gdGhlIHNhdyBhdCB+MS84IGFtcGxpdHVkZS4KY29uc3QgQU1QTElUVURFOiBpMzIgPSBpMTY6Ok1BWCBhcyBpMzIgLyA4OwoKLy8gLS0tLSBidXR0b24gLS0tLQovLyBBZnRlciBhIHRvZ2dsZSwgaWdub3JlIGZ1cnRoZXIgcHJlc3NlcyBmb3IgfjIwIG1zIG9mIHNhbXBsZXMgKGJvdW5jZSkuCmNvbnN0IERFQk9VTkNFX1NBTVBMRVM6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gNTA7CgovLy8gQnV0dG9uIHBpbiwgcGFya2VkIGhlcmUgc28gdGhlIEVYVEkwIGhhbmRsZXIgY2FuIGNsZWFyIGl0cyBwZW5kaW5nIGJpdC4Kc3RhdGljIEJVVFRPTjogTXV0ZXg8UmVmQ2VsbDxPcHRpb248UEEwPElucHV0Pj4+PiA9IE11dGV4OjpuZXcoUmVmQ2VsbDo6bmV3KE5vbmUpKTsKLy8vIFNldCBieSBFWFRJMCBvbiBhIHByZXNzIGVkZ2UsIGNvbnN1bWVkIGJ5IHRoZSBhdWRpbyBsb29wLgpzdGF0aWMgVE9HR0xFX1JFUTogQXRvbWljQm9vbCA9IEF0b21pY0Jvb2w6Om5ldyhmYWxzZSk7Cgp0eXBlIEF1ZGlvT3V0ID0gSTJzVHJhbnNmZXI8STJzPHBhYzo6U1BJMz4sIE1hc3RlciwgVHJhbnNtaXQsIFBoaWxpcHMsIERhdGExNkNoYW5uZWwxNj47CgovLy8gSTJTMyBtYXN0ZXIgdHJhbnNtaXQsIDE2LWJpdCBzdGVyZW8sIE1DTEsgb3V0IGZvciB0aGUgY29kZWMuCmZuIGF1ZGlvX291dCgKICAgIHNwaTogcGFjOjpTUEkzLAogICAgcGluczogKGdwaW9hOjpQQTQsIGdwaW9jOjpQQzEwLCBPcHRpb248Z3Bpb2M6OlBDNz4sIGdwaW9jOjpQQzEyKSwKICAgIHJjYzogJm11dCBSY2MsCikgLT4gQXVkaW9PdXQgewogICAgbGV0IGkycyA9IEkyczo6bmV3KHNwaSwgcGlucywgcmNjKTsKICAgIGxldCBjb25maWcgPSBJMnNUcmFuc2ZlckNvbmZpZzo6bmV3X21hc3RlcigpCiAgICAgICAgLnRyYW5zbWl0KCkKICAgICAgICAuc3RhbmRhcmQoUGhpbGlwcykKICAgICAgICAuZGF0YV9mb3JtYXQoRGF0YTE2Q2hhbm5lbDE2KQogICAgICAgIC5tYXN0ZXJfY2xvY2sodHJ1ZSkKICAgICAgICAucmVxdWVzdF9mcmVxdWVuY3koU0FNUExFX1JBVEVfSFopOwogICAgSTJzVHJhbnNmZXI6Om5ldyhpMnMsIGNvbmZpZykKfQoKLy8vIFNhbXBsZSBgaWAgKG9mIFNBTVBMRVNfUEVSX0NZQ0xFKSBvZiB0aGUgc2F3dG9vdGg6IGEgbGluZWFyIHJhbXAgZnJvbQovLy8gLUFNUExJVFVERSB0byArQU1QTElUVURFLCB3cmFwcGluZyBlYWNoIGN5Y2xlLgpmbiBzYXdfc2FtcGxlKGk6IHUzMikgLT4gaTE2IHsKICAgIChpIGFzIGkzMiAqIDIgKiBBTVBMSVRVREUgLyBTQU1QTEVTX1BFUl9DWUNMRSBhcyBpMzIgLSBBTVBMSVRVREUpIGFzIGkxNgp9CgojW2VudHJ5XQpmbiBtYWluKCkgLT4gISB7CiAgICBsZXQgY3AgPSBjb3J0ZXhfbTo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKICAgIGxldCBtdXQgcCA9IHBhYzo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKCiAgICAvLyBQTExJMlMgdHVuZWQgdG8gNjEuNDQgTUh6IHNvIDQ4IGtIeiBkaXZpZGVzIGV4YWN0bHkgKDYxLjQ0IE1IeiAvIDI1NmZzIC8gNSkuCiAgICBsZXQgbXV0IHJjYyA9IHAKICAgICAgICAuUkNDCiAgICAgICAgLmZyZWV6ZShDb25maWc6OmhzaSgpLnN5c2Nsayg5Ni5NSHooKSkuaTJzX2Nsayg2MTQ0MC5rSHooKSkpOwogICAgbGV0IG11dCBkZWxheSA9IGNwLlNZU1QuZGVsYXkoJnJjYy5jbG9ja3MpOwoKICAgIGxldCBncGlvYSA9IHAuR1BJT0Euc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9iID0gcC5HUElPQi5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2MgPSBwLkdQSU9DLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvZCA9IHAuR1BJT0Quc3BsaXQoJm11dCByY2MpOwoKICAgIC8vIFVTRVIgYnV0dG9uIChCMSk6IHJpc2luZy1lZGdlIGludGVycnVwdCBvbiBFWFRJMC4KICAgIGxldCBtdXQgc3lzY2ZnID0gcC5TWVNDRkcuY29uc3RyYWluKCZtdXQgcmNjKTsKICAgIGxldCBtdXQgYnV0dG9uID0gZ3Bpb2EucGEwLmludG9fcHVsbF9kb3duX2lucHV0KCk7CiAgICBidXR0b24ubWFrZV9pbnRlcnJ1cHRfc291cmNlKCZtdXQgc3lzY2ZnKTsKICAgIGJ1dHRvbi50cmlnZ2VyX29uX2VkZ2UoJm11dCBwLkVYVEksIEVkZ2U6OlJpc2luZyk7CiAgICBidXR0b24uZW5hYmxlX2ludGVycnVwdCgmbXV0IHAuRVhUSSk7CiAgICBjb3J0ZXhfbTo6aW50ZXJydXB0OjpmcmVlKHxjc3wgQlVUVE9OLmJvcnJvdyhjcykucmVwbGFjZShTb21lKGJ1dHRvbikpKTsKICAgIHVuc2FmZSB7IHBhYzo6TlZJQzo6dW5tYXNrKHBhYzo6SW50ZXJydXB0OjpFWFRJMCkgfTsKCiAgICAvLyBDUzQzTDIyIGNvZGVjOiBjb250cm9sIHBvcnQgKyByZXNldCB2aWEgdGhlIGJvYXJkLXN1cHBvcnQgZHJpdmVyLgogICAgbGV0IGkyYyA9IEkyYzo6bmV3KAogICAgICAgIHAuSTJDMSwKICAgICAgICAoZ3Bpb2IucGI2LCBncGlvYi5wYjkpLAogICAgICAgIE1vZGU6OnN0YW5kYXJkKDEwMC5rSHooKSksCiAgICAgICAgJm11dCByY2MsCiAgICApOwogICAgbGV0IG11dCBjb2RlYyA9IENzNDNsMjI6Om5ldyhpMmMsIGdwaW9kLnBkNC5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKSk7CiAgICBtYXRjaCBjb2RlYy5pbml0KCZtdXQgZGVsYXkpIHsKICAgICAgICBPayhpZCkgPT4gZGVmbXQ6OmluZm8hKCJjb2RlYyB1cCwgSUQgcmVnIHs9dTg6IzA0eH0iLCBpZCksCiAgICAgICAgRXJyKGUpID0+IGRlZm10OjplcnJvciEoImNvZGVjIGluaXQgZmFpbGVkOiB7fSIsIGRlZm10OjpEZWJ1ZzJGb3JtYXQoJmUpKSwKICAgIH0KCiAgICBsZXQgbXV0IHRyYW5zZmVyID0gYXVkaW9fb3V0KAogICAgICAgIHAuU1BJMywKICAgICAgICAoZ3Bpb2EucGE0LCBncGlvYy5wYzEwLCBTb21lKGdwaW9jLnBjNyksIGdwaW9jLnBjMTIpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKCiAgICBkZWZtdDo6aW5mbyEoCiAgICAgICAgInNhdzoge30gSHosIHNhbXBsZSByYXRlIHt9IEh6ICh7fSBzYW1wbGVzL2N5Y2xlKSIsCiAgICAgICAgU0FXX0haLAogICAgICAgIHRyYW5zZmVyLnNhbXBsZV9yYXRlKCksCiAgICAgICAgU0FNUExFU19QRVJfQ1lDTEUKICAgICk7CgogICAgLy8gSGVhcnRiZWF0IExFRCAoYmx1ZSwgUEQxNSk6IHRvZ2dsZXMgb25jZSBhIHNlY29uZCBzbyBpdCdzIHZpc2libGUgdGhlCiAgICAvLyBmaXJtd2FyZSBpcyBhbGl2ZSB3aXRob3V0IGEgZGVidWdnZXIgYXR0YWNoZWQuCiAgICBsZXQgbXV0IGhlYXJ0YmVhdCA9IGdwaW9kLnBkMTUuaW50b19wdXNoX3B1bGxfb3V0cHV0KCk7CiAgICAvLyBTYXcgaW5kaWNhdG9yIExFRCAoZ3JlZW4sIFBEMTIpOiBsaXQgd2hpbGUgdGhlIHNhdyBpcyBwbGF5aW5nLgogICAgbGV0IG11dCBzYXdfbGVkID0gZ3Bpb2QucGQxMi5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKTsKCiAgICBsZXQgbXV0IGkgPSAwOwogICAgbGV0IG11dCBmcmFtZXM6IHUzMiA9IDA7CiAgICBsZXQgbXV0IG9uID0gZmFsc2U7IC8vIHNpbGVudCBhdCBib290OyBVU0VSIGJ1dHRvbiB0b2dnbGVzIHRoZSBzYXcgb24KICAgIGxldCBtdXQgaG9sZG9mZjogdTMyID0gMDsKICAgIGxvb3AgewogICAgICAgIC8vIENvbnN1bWUgYW55IHByZXNzIGZsYWcgZXZlcnkgZnJhbWUgKHNvIGJvdW5jZSBkdXJpbmcgdGhlIGhvbGQtb2ZmCiAgICAgICAgLy8gd2luZG93IGlzIGRpc2NhcmRlZCksIGFwcGx5IGl0IG9ubHkgb3V0c2lkZSB0aGUgd2luZG93LgogICAgICAgIGhvbGRvZmYgPSBob2xkb2ZmLnNhdHVyYXRpbmdfc3ViKDEpOwogICAgICAgIGlmIFRPR0dMRV9SRVEuc3dhcChmYWxzZSwgT3JkZXJpbmc6OkFjcVJlbCkgJiYgaG9sZG9mZiA9PSAwIHsKICAgICAgICAgICAgb24gPSAhb247CiAgICAgICAgICAgIGhvbGRvZmYgPSBERUJPVU5DRV9TQU1QTEVTOwogICAgICAgICAgICBzYXdfbGVkLnNldF9zdGF0ZShvbi5pbnRvKCkpOwogICAgICAgICAgICBkZWZtdDo6aW5mbyEoInNhdyB7fSIsIGlmIG9uIHsgIk9OIiB9IGVsc2UgeyAiT0ZGIiB9KTsKICAgICAgICB9CgogICAgICAgIGxldCBzYW1wbGUgPSBtYXRjaCBvbiB7CiAgICAgICAgICAgIHRydWUgPT4gc2F3X3NhbXBsZShpKSwKICAgICAgICAgICAgZmFsc2UgPT4gMCwKICAgICAgICB9OwogICAgICAgIGJsb2NrISh0cmFuc2Zlci53cml0ZSgoc2FtcGxlLCBzYW1wbGUpKSkudW53cmFwKCk7CiAgICAgICAgaSA9IChpICsgMSkgJSBTQU1QTEVTX1BFUl9DWUNMRTsKCiAgICAgICAgZnJhbWVzICs9IDE7CiAgICAgICAgaWYgZnJhbWVzID09IFNBTVBMRV9SQVRFX0haIHsKICAgICAgICAgICAgZnJhbWVzID0gMDsKICAgICAgICAgICAgaGVhcnRiZWF0LnRvZ2dsZSgpOwogICAgICAgIH0KICAgIH0KfQoKI1tpbnRlcnJ1cHRdCmZuIEVYVEkwKCkgewogICAgY29ydGV4X206OmludGVycnVwdDo6ZnJlZSh8Y3N8IHsKICAgICAgICBpZiBsZXQgU29tZShwaW4pID0gQlVUVE9OLmJvcnJvdyhjcykuYm9ycm93X211dCgpLmFzX211dCgpIHsKICAgICAgICAgICAgcGluLmNsZWFyX2ludGVycnVwdF9wZW5kaW5nX2JpdCgpOwogICAgICAgIH0KICAgIH0pOwogICAgVE9HR0xFX1JFUS5zdG9yZSh0cnVlLCBPcmRlcmluZzo6UmVsZWFzZSk7Cn0KAAAAAAAAAACeFwAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAHsNAAAAAAAAfA0AAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
280,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAACfFwAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGNvZGVjOjpDczQzbDIyLAogICAgbGVkOjpMZWQsCiAgICBoYWw6OnsKICAgICAgICBncGlvOjp7Z3Bpb2EsIGdwaW9hOjpQQTAsIGdwaW9jLCBFZGdlLCBJbnB1dH0sCiAgICAgICAgaTJjOjp7STJjLCBNb2RlfSwKICAgICAgICBpMnM6OnN0bTMyX2kyc192MTJ4Ojp0cmFuc2Zlcjo6KiwKICAgICAgICBpMnM6OkkycywKICAgICAgICBuYjo6YmxvY2ssCiAgICAgICAgcGFjLAogICAgICAgIHBhYzo6aW50ZXJydXB0LAogICAgICAgIHByZWx1ZGU6OiosCiAgICAgICAgcmNjOjp7Q29uZmlnLCBSY2N9LAogICAgfSwKfTsKCi8vIC0tLS0gdG9uZSAtLS0tCmNvbnN0IFNBV19IWjogdTMyID0gNDAwOwpjb25zdCBTQU1QTEVfUkFURV9IWjogdTMyID0gNDhfMDAwOwpjb25zdCBTQU1QTEVTX1BFUl9DWUNMRTogdTMyID0gU0FNUExFX1JBVEVfSFogLyBTQVdfSFo7IC8vIDEyMAovLyBGdWxsLXNjYWxlIGlzIHBhaW5mdWxseSBsb3VkIG9uIGhlYWRwaG9uZXM7IHJ1biB0aGUgc2F3IGF0IH4xLzggYW1wbGl0dWRlLgpjb25zdCBBTVBMSVRVREU6IGkzMiA9IGkxNjo6TUFYIGFzIGkzMiAvIDg7CgovLyAtLS0tIGJ1dHRvbiAtLS0tCi8vIEFmdGVyIGEgdG9nZ2xlLCBpZ25vcmUgZnVydGhlciBwcmVzc2VzIGZvciB+MjAgbXMgb2Ygc2FtcGxlcyAoYm91bmNlKS4KY29uc3QgREVCT1VOQ0VfU0FNUExFUzogdTMyID0gU0FNUExFX1JBVEVfSFogLyA1MDsKCi8vLyBCdXR0b24gcGluLCBwYXJrZWQgaGVyZSBzbyB0aGUgRVhUSTAgaGFuZGxlciBjYW4gY2xlYXIgaXRzIHBlbmRpbmcgYml0LgpzdGF0aWMgQlVUVE9OOiBNdXRleDxSZWZDZWxsPE9wdGlvbjxQQTA8SW5wdXQ+Pj4+ID0gTXV0ZXg6Om5ldyhSZWZDZWxsOjpuZXcoTm9uZSkpOwovLy8gU2V0IGJ5IEVYVEkwIG9uIGEgcHJlc3MgZWRnZSwgY29uc3VtZWQgYnkgdGhlIGF1ZGlvIGxvb3AuCnN0YXRpYyBUT0dHTEVfUkVROiBBdG9taWNCb29sID0gQXRvbWljQm9vbDo6bmV3KGZhbHNlKTsKCnR5cGUgQXVkaW9PdXQgPSBJMnNUcmFuc2ZlcjxJMnM8cGFjOjpTUEkzPiwgTWFzdGVyLCBUcmFuc21pdCwgUGhpbGlwcywgRGF0YTE2Q2hhbm5lbDE2PjsKCi8vLyBJMlMzIG1hc3RlciB0cmFuc21pdCwgMTYtYml0IHN0ZXJlbywgTUNMSyBvdXQgZm9yIHRoZSBjb2RlYy4KZm4gYXVkaW9fb3V0KAogICAgc3BpOiBwYWM6OlNQSTMsCiAgICBwaW5zOiAoZ3Bpb2E6OlBBNCwgZ3Bpb2M6OlBDMTAsIE9wdGlvbjxncGlvYzo6UEM3PiwgZ3Bpb2M6OlBDMTIpLAogICAgcmNjOiAmbXV0IFJjYywKKSAtPiBBdWRpb091dCB7CiAgICBsZXQgaTJzID0gSTJzOjpuZXcoc3BpLCBwaW5zLCByY2MpOwogICAgbGV0IGNvbmZpZyA9IEkyc1RyYW5zZmVyQ29uZmlnOjpuZXdfbWFzdGVyKCkKICAgICAgICAudHJhbnNtaXQoKQogICAgICAgIC5zdGFuZGFyZChQaGlsaXBzKQogICAgICAgIC5kYXRhX2Zvcm1hdChEYXRhMTZDaGFubmVsMTYpCiAgICAgICAgLm1hc3Rlcl9jbG9jayh0cnVlKQogICAgICAgIC5yZXF1ZXN0X2ZyZXF1ZW5jeShTQU1QTEVfUkFURV9IWik7CiAgICBJMnNUcmFuc2Zlcjo6bmV3KGkycywgY29uZmlnKQp9CgovLy8gU2FtcGxlIGBpYCAob2YgU0FNUExFU19QRVJfQ1lDTEUpIG9mIHRoZSBzYXd0b290aDogYSBsaW5lYXIgcmFtcCBmcm9tCi8vLyAtQU1QTElUVURFIHRvICtBTVBMSVRVREUsIHdyYXBwaW5nIGVhY2ggY3ljbGUuCmZuIHNhd19zYW1wbGUoaTogdTMyKSAtPiBpMTYgewogICAgKGkgYXMgaTMyICogMiAqIEFNUExJVFVERSAvIFNBTVBMRVNfUEVSX0NZQ0xFIGFzIGkzMiAtIEFNUExJVFVERSkgYXMgaTE2Cn0KCiNbZW50cnldCmZuIG1haW4oKSAtPiAhIHsKICAgIGxldCBjcCA9IGNvcnRleF9tOjpQZXJpcGhlcmFsczo6dGFrZSgpLnVud3JhcCgpOwogICAgbGV0IG11dCBwID0gcGFjOjpQZXJpcGhlcmFsczo6dGFrZSgpLnVud3JhcCgpOwoKICAgIC8vIFBMTEkyUyB0dW5lZCB0byA2MS40NCBNSHogc28gNDgga0h6IGRpdmlkZXMgZXhhY3RseSAoNjEuNDQgTUh6IC8gMjU2ZnMgLyA1KS4KICAgIGxldCBtdXQgcmNjID0gcAogICAgICAgIC5SQ0MKICAgICAgICAuZnJlZXplKENvbmZpZzo6aHNpKCkuc3lzY2xrKDk2Lk1IeigpKS5pMnNfY2xrKDYxNDQwLmtIeigpKSk7CiAgICBsZXQgbXV0IGRlbGF5ID0gY3AuU1lTVC5kZWxheSgmcmNjLmNsb2Nrcyk7CgogICAgbGV0IGdwaW9hID0gcC5HUElPQS5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2IgPSBwLkdQSU9CLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvYyA9IHAuR1BJT0Muc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9kID0gcC5HUElPRC5zcGxpdCgmbXV0IHJjYyk7CgogICAgLy8gVVNFUiBidXR0b24gKEIxKTogcmlzaW5nLWVkZ2UgaW50ZXJydXB0IG9uIEVYVEkwLgogICAgbGV0IG11dCBzeXNjZmcgPSBwLlNZU0NGRy5jb25zdHJhaW4oJm11dCByY2MpOwogICAgbGV0IG11dCBidXR0b24gPSBncGlvYS5wYTAuaW50b19wdWxsX2Rvd25faW5wdXQoKTsKICAgIGJ1dHRvbi5tYWtlX2ludGVycnVwdF9zb3VyY2UoJm11dCBzeXNjZmcpOwogICAgYnV0dG9uLnRyaWdnZXJfb25fZWRnZSgmbXV0IHAuRVhUSSwgRWRnZTo6UmlzaW5nKTsKICAgIGJ1dHRvbi5lbmFibGVfaW50ZXJydXB0KCZtdXQgcC5FWFRJKTsKICAgIGNvcnRleF9tOjppbnRlcnJ1cHQ6OmZyZWUofGNzfCBCVVRUT04uYm9ycm93KGNzKS5yZXBsYWNlKFNvbWUoYnV0dG9uKSkpOwogICAgdW5zYWZlIHsgcGFjOjpOVklDOjp1bm1hc2socGFjOjpJbnRlcnJ1cHQ6OkVYVEkwKSB9OwoKICAgIC8vIENTNDNMMjIgY29kZWM6IGNvbnRyb2wgcG9ydCArIHJlc2V0IHZpYSB0aGUgYm9hcmQtc3VwcG9ydCBkcml2ZXIuCiAgICBsZXQgaTJjID0gSTJjOjpuZXcoCiAgICAgICAgcC5JMkMxLAogICAgICAgIChncGlvYi5wYjYsIGdwaW9iLnBiOSksCiAgICAgICAgTW9kZTo6c3RhbmRhcmQoMTAwLmtIeigpKSwKICAgICAgICAmbXV0IHJjYywKICAgICk7CiAgICBsZXQgbXV0IGNvZGVjID0gQ3M0M2wyMjo6bmV3KGkyYywgZ3Bpb2QucGQ0LmludG9fcHVzaF9wdWxsX291dHB1dCgpKTsKICAgIG1hdGNoIGNvZGVjLmluaXQoJm11dCBkZWxheSkgewogICAgICAgIE9rKGlkKSA9PiBkZWZtdDo6aW5mbyEoImNvZGVjIHVwLCBJRCByZWcgez11ODojMDR4fSIsIGlkKSwKICAgICAgICBFcnIoZSkgPT4gZGVmbXQ6OmVycm9yISgiY29kZWMgaW5pdCBmYWlsZWQ6IHt9IiwgZGVmbXQ6OkRlYnVnMkZvcm1hdCgmZSkpLAogICAgfQoKICAgIGxldCBtdXQgdHJhbnNmZXIgPSBhdWRpb19vdXQoCiAgICAgICAgcC5TUEkzLAogICAgICAgIChncGlvYS5wYTQsIGdwaW9jLnBjMTAsIFNvbWUoZ3Bpb2MucGM3KSwgZ3Bpb2MucGMxMiksCiAgICAgICAgJm11dCByY2MsCiAgICApOwoKICAgIGRlZm10OjppbmZvISgKICAgICAgICAic2F3OiB7fSBIeiwgc2FtcGxlIHJhdGUge30gSHogKHt9IHNhbXBsZXMvY3ljbGUpIiwKICAgICAgICBTQVdfSFosCiAgICAgICAgdHJhbnNmZXIuc2FtcGxlX3JhdGUoKSwKICAgICAgICBTQU1QTEVTX1BFUl9DWUNMRQogICAgKTsKCiAgICAvLyBIZWFydGJlYXQgTEVEIChMRDYsIGJsdWUpOiB0b2dnbGVzIG9uY2UgYSBzZWNvbmQgc28gaXQncyB2aXNpYmxlIHRoZQogICAgLy8gZmlybXdhcmUgaXMgYWxpdmUgd2l0aG91dCBhIGRlYnVnZ2VyIGF0dGFjaGVkLgogICAgbGV0IG11dCBoZWFydGJlYXQ6IExlZCA9IGdwaW9kLnBkMTUuaW50b19wdXNoX3B1bGxfb3V0cHV0KCkuaW50bygpOwogICAgLy8gU2F3IGluZGljYXRvciBMRUQgKExENCwgZ3JlZW4pOiBsaXQgd2hpbGUgdGhlIHNhdyBpcyBwbGF5aW5nLgogICAgbGV0IG11dCBzYXdfbGVkOiBMZWQgPSBncGlvZC5wZDEyLmludG9fcHVzaF9wdWxsX291dHB1dCgpLmludG8oKTsKCiAgICBsZXQgbXV0IGkgPSAwOwogICAgbGV0IG11dCBmcmFtZXM6IHUzMiA9IDA7CiAgICBsZXQgbXV0IG9uID0gZmFsc2U7IC8vIHNpbGVudCBhdCBib290OyBVU0VSIGJ1dHRvbiB0b2dnbGVzIHRoZSBzYXcgb24KICAgIGxldCBtdXQgaG9sZG9mZjogdTMyID0gMDsKICAgIGxvb3AgewogICAgICAgIC8vIENvbnN1bWUgYW55IHByZXNzIGZsYWcgZXZlcnkgZnJhbWUgKHNvIGJvdW5jZSBkdXJpbmcgdGhlIGhvbGQtb2ZmCiAgICAgICAgLy8gd2luZG93IGlzIGRpc2NhcmRlZCksIGFwcGx5IGl0IG9ubHkgb3V0c2lkZSB0aGUgd2luZG93LgogICAgICAgIGhvbGRvZmYgPSBob2xkb2ZmLnNhdHVyYXRpbmdfc3ViKDEpOwogICAgICAgIGlmIFRPR0dMRV9SRVEuc3dhcChmYWxzZSwgT3JkZXJpbmc6OkFjcVJlbCkgJiYgaG9sZG9mZiA9PSAwIHsKICAgICAgICAgICAgb24gPSAhb247CiAgICAgICAgICAgIGhvbGRvZmYgPSBERUJPVU5DRV9TQU1QTEVTOwogICAgICAgICAgICBzYXdfbGVkLnNldChvbik7CiAgICAgICAgICAgIGRlZm10OjppbmZvISgic2F3IHt9IiwgaWYgb24geyAiT04iIH0gZWxzZSB7ICJPRkYiIH0pOwogICAgICAgIH0KCiAgICAgICAgbGV0IHNhbXBsZSA9IG1hdGNoIG9uIHsKICAgICAgICAgICAgdHJ1ZSA9PiBzYXdfc2FtcGxlKGkpLAogICAgICAgICAgICBmYWxzZSA9PiAwLAogICAgICAgIH07CiAgICAgICAgYmxvY2shKHRyYW5zZmVyLndyaXRlKChzYW1wbGUsIHNhbXBsZSkpKS51bndyYXAoKTsKICAgICAgICBpID0gKGkgKyAxKSAlIFNBTVBMRVNfUEVSX0NZQ0xFOwoKICAgICAgICBmcmFtZXMgKz0gMTsKICAgICAgICBpZiBmcmFtZXMgPT0gU0FNUExFX1JBVEVfSFogewogICAgICAgICAgICBmcmFtZXMgPSAwOwogICAgICAgICAgICBoZWFydGJlYXQudG9nZ2xlKCk7CiAgICAgICAgfQogICAgfQp9CgojW2ludGVycnVwdF0KZm4gRVhUSTAoKSB7CiAgICBjb3J0ZXhfbTo6aW50ZXJydXB0OjpmcmVlKHxjc3wgewogICAgICAgIGlmIGxldCBTb21lKHBpbikgPSBCVVRUT04uYm9ycm93KGNzKS5ib3Jyb3dfbXV0KCkuYXNfbXV0KCkgewogICAgICAgICAgICBwaW4uY2xlYXJfaW50ZXJydXB0X3BlbmRpbmdfYml0KCk7CiAgICAgICAgfQogICAgfSk7CiAgICBUT0dHTEVfUkVRLnN0b3JlKHRydWUsIE9yZGVyaW5nOjpSZWxlYXNlKTsKfQoAAAAAAAAAAIIXAAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAHsNAAAAAAAAfA0AAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
331,
|
|
1,
|
|
"sequence",
|
|
{
|
|
"commands":
|
|
[
|
|
[
|
|
"run_macro_file",
|
|
{
|
|
"file": "res://Packages/Default/Add Line.sublime-macro",
|
|
"register": "\""
|
|
}
|
|
],
|
|
[
|
|
"exit_insert_mode",
|
|
null
|
|
]
|
|
]
|
|
},
|
|
"AQAAAIgWAAAAAAAAjRYAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAIcWAAAAAAAAhxYAAAAAAAAAAAAAAMBoQA"
|
|
],
|
|
[
|
|
334,
|
|
1,
|
|
"sequence",
|
|
{
|
|
"commands":
|
|
[
|
|
[
|
|
"run_macro_file",
|
|
{
|
|
"file": "res://Packages/Default/Add Line.sublime-macro",
|
|
"register": "\""
|
|
}
|
|
],
|
|
[
|
|
"paste",
|
|
null
|
|
],
|
|
[
|
|
"exit_insert_mode",
|
|
null
|
|
]
|
|
]
|
|
},
|
|
"AwAAAI0WAAAAAAAAkhYAAAAAAAAAAAAAiRYAAAAAAACJFgAAAAAAAAQAAAAgICAgjhYAAAAAAADAFwAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAIwWAAAAAAAAjBYAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
336,
|
|
1,
|
|
"run_macro_file",
|
|
{
|
|
"file": "res://Packages/Default/Delete Line.sublime-macro"
|
|
},
|
|
"AQAAAIoWAAAAAAAAihYAAAAAAAAcAAAAICAgICAgICBsZXQgbXV0IGk6IHUzMiA9IDA7Cg",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAI4WAAAAAAAAjhYAAAAAAAAAAAAAAABCQA"
|
|
],
|
|
[
|
|
340,
|
|
1,
|
|
"toggle_comment",
|
|
{
|
|
"block": false
|
|
},
|
|
"FgAAAIcWAAAAAAAAihYAAAAAAAAAAAAAfRYAAAAAAACAFgAAAAAAAAAAAABdFgAAAAAAAGAWAAAAAAAAAAAAAEUWAAAAAAAASBYAAAAAAAAAAAAAHxYAAAAAAAAiFgAAAAAAAAAAAAAKFgAAAAAAAA0WAAAAAAAAAAAAAOAVAAAAAAAA4xUAAAAAAAAAAAAApRUAAAAAAACoFQAAAAAAAAAAAACaFQAAAAAAAJ0VAAAAAAAAAAAAAIIVAAAAAAAAhRUAAAAAAAAAAAAAXxUAAAAAAABiFQAAAAAAAAAAAAA/FQAAAAAAAEIVAAAAAAAAAAAAADQVAAAAAAAANxUAAAAAAAAAAAAA8RQAAAAAAAD0FAAAAAAAAAAAAADUFAAAAAAAANcUAAAAAAAAAAAAAKwUAAAAAAAArxQAAAAAAAAAAAAAlhQAAAAAAACZFAAAAAAAAAAAAABQFAAAAAAAAFMUAAAAAAAAAAAAACMUAAAAAAAAJhQAAAAAAAAAAAAA4BMAAAAAAADjEwAAAAAAAAAAAACTEwAAAAAAAJYTAAAAAAAAAAAAAIgTAAAAAAAAixMAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAIkWAAAAAAAAhBMAAAAAAAAAAAAAAAAAAA"
|
|
],
|
|
[
|
|
353,
|
|
4,
|
|
"vi_eval",
|
|
{
|
|
"action_args":
|
|
{
|
|
},
|
|
"action_command": "vi_right_delete",
|
|
"motion_args":
|
|
{
|
|
},
|
|
"motion_clip_to_line": false,
|
|
"motion_command": null,
|
|
"motion_inclusive": false,
|
|
"motion_mode": 0
|
|
},
|
|
"BAAAAIgXAAAAAAAAiBcAAAAAAAABAAAAaYgXAAAAAAAAiBcAAAAAAAABAAAAMogXAAAAAAAAiBcAAAAAAAABAAAAc4gXAAAAAAAAiBcAAAAAAAABAAAAXw",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAIgXAAAAAAAAiBcAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
401,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAADfGAAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGNvZGVjOjpDczQzbDIyLAogICAgbGVkOjpMZWRDb21wYXNzLAogICAgaGFsOjp7CiAgICAgICAgZ3Bpbzo6e2dwaW9hLCBncGlvYTo6UEEwLCBncGlvYywgRWRnZSwgSW5wdXR9LAogICAgICAgIGkyYzo6e0kyYywgTW9kZX0sCiAgICAgICAgaTJzOjpzdG0zMl9pMnNfdjEyeDo6dHJhbnNmZXI6OiosCiAgICAgICAgaTJzOjpJMnMsCiAgICAgICAgbmI6OmJsb2NrLAogICAgICAgIHBhYywKICAgICAgICBwYWM6OmludGVycnVwdCwKICAgICAgICBwcmVsdWRlOjoqLAogICAgICAgIHJjYzo6e0NvbmZpZywgUmNjfSwKICAgIH0sCn07CgovLyAtLS0tIHRvbmUgLS0tLQpjb25zdCBTQVdfSFo6IHUzMiA9IDQwMDsKY29uc3QgU0FNUExFX1JBVEVfSFo6IHUzMiA9IDQ4XzAwMDsKY29uc3QgU0FNUExFU19QRVJfQ1lDTEU6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gU0FXX0haOyAvLyAxMjAKLy8gRnVsbC1zY2FsZSBpcyBwYWluZnVsbHkgbG91ZCBvbiBoZWFkcGhvbmVzOyBydW4gdGhlIHNhdyBhdCB+MS84IGFtcGxpdHVkZS4KY29uc3QgQU1QTElUVURFOiBpMzIgPSBpMTY6Ok1BWCBhcyBpMzIgLyA4OwoKLy8gLS0tLSBidXR0b24gLS0tLQovLyBBZnRlciBhIHRvZ2dsZSwgaWdub3JlIGZ1cnRoZXIgcHJlc3NlcyBmb3IgfjIwIG1zIG9mIHNhbXBsZXMgKGJvdW5jZSkuCmNvbnN0IERFQk9VTkNFX1NBTVBMRVM6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gNTA7CgovLy8gQnV0dG9uIHBpbiwgcGFya2VkIGhlcmUgc28gdGhlIEVYVEkwIGhhbmRsZXIgY2FuIGNsZWFyIGl0cyBwZW5kaW5nIGJpdC4Kc3RhdGljIEJVVFRPTjogTXV0ZXg8UmVmQ2VsbDxPcHRpb248UEEwPElucHV0Pj4+PiA9IE11dGV4OjpuZXcoUmVmQ2VsbDo6bmV3KE5vbmUpKTsKLy8vIFNldCBieSBFWFRJMCBvbiBhIHByZXNzIGVkZ2UsIGNvbnN1bWVkIGJ5IHRoZSBhdWRpbyBsb29wLgpzdGF0aWMgVE9HR0xFX1JFUTogQXRvbWljQm9vbCA9IEF0b21pY0Jvb2w6Om5ldyhmYWxzZSk7Cgp0eXBlIEF1ZGlvT3V0ID0gSTJzVHJhbnNmZXI8STJzPHBhYzo6U1BJMz4sIE1hc3RlciwgVHJhbnNtaXQsIFBoaWxpcHMsIERhdGExNkNoYW5uZWwxNj47CgovLy8gSTJTMyBtYXN0ZXIgdHJhbnNtaXQsIDE2LWJpdCBzdGVyZW8sIE1DTEsgb3V0IGZvciB0aGUgY29kZWMuCmZuIGF1ZGlvX291dCgKICAgIHNwaTogcGFjOjpTUEkzLAogICAgcGluczogKGdwaW9hOjpQQTQsIGdwaW9jOjpQQzEwLCBPcHRpb248Z3Bpb2M6OlBDNz4sIGdwaW9jOjpQQzEyKSwKICAgIHJjYzogJm11dCBSY2MsCikgLT4gQXVkaW9PdXQgewogICAgbGV0IGkycyA9IEkyczo6bmV3KHNwaSwgcGlucywgcmNjKTsKICAgIGxldCBjb25maWcgPSBJMnNUcmFuc2ZlckNvbmZpZzo6bmV3X21hc3RlcigpCiAgICAgICAgLnRyYW5zbWl0KCkKICAgICAgICAuc3RhbmRhcmQoUGhpbGlwcykKICAgICAgICAuZGF0YV9mb3JtYXQoRGF0YTE2Q2hhbm5lbDE2KQogICAgICAgIC5tYXN0ZXJfY2xvY2sodHJ1ZSkKICAgICAgICAucmVxdWVzdF9mcmVxdWVuY3koU0FNUExFX1JBVEVfSFopOwogICAgSTJzVHJhbnNmZXI6Om5ldyhpMnMsIGNvbmZpZykKfQoKLy8vIFNhbXBsZSBgaWAgKG9mIFNBTVBMRVNfUEVSX0NZQ0xFKSBvZiB0aGUgc2F3dG9vdGg6IGEgbGluZWFyIHJhbXAgZnJvbQovLy8gLUFNUExJVFVERSB0byArQU1QTElUVURFLCB3cmFwcGluZyBlYWNoIGN5Y2xlLgpmbiBzYXdfc2FtcGxlKGk6IHUzMikgLT4gaTE2IHsKICAgIChpIGFzIGkzMiAqIDIgKiBBTVBMSVRVREUgLyBTQU1QTEVTX1BFUl9DWUNMRSBhcyBpMzIgLSBBTVBMSVRVREUpIGFzIGkxNgp9CgojW2VudHJ5XQpmbiBtYWluKCkgLT4gISB7CiAgICBsZXQgY3AgPSBjb3J0ZXhfbTo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKICAgIGxldCBtdXQgcCA9IHBhYzo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKCiAgICAvLyBQTExJMlMgdHVuZWQgdG8gNjEuNDQgTUh6IHNvIDQ4IGtIeiBkaXZpZGVzIGV4YWN0bHkgKDYxLjQ0IE1IeiAvIDI1NmZzIC8gNSkuCiAgICBsZXQgbXV0IHJjYyA9IHAKICAgICAgICAuUkNDCiAgICAgICAgLmZyZWV6ZShDb25maWc6OmhzaSgpLnN5c2Nsayg5Ni5NSHooKSkuaTJzX2Nsayg2MTQ0MC5rSHooKSkpOwogICAgbGV0IG11dCBkZWxheSA9IGNwLlNZU1QuZGVsYXkoJnJjYy5jbG9ja3MpOwoKICAgIGxldCBncGlvYSA9IHAuR1BJT0Euc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9iID0gcC5HUElPQi5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2MgPSBwLkdQSU9DLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvZCA9IHAuR1BJT0Quc3BsaXQoJm11dCByY2MpOwoKICAgIC8vIFVTRVIgYnV0dG9uIChCMSk6IHJpc2luZy1lZGdlIGludGVycnVwdCBvbiBFWFRJMC4KICAgIGxldCBtdXQgc3lzY2ZnID0gcC5TWVNDRkcuY29uc3RyYWluKCZtdXQgcmNjKTsKICAgIGxldCBtdXQgYnV0dG9uID0gZ3Bpb2EucGEwLmludG9fcHVsbF9kb3duX2lucHV0KCk7CiAgICBidXR0b24ubWFrZV9pbnRlcnJ1cHRfc291cmNlKCZtdXQgc3lzY2ZnKTsKICAgIGJ1dHRvbi50cmlnZ2VyX29uX2VkZ2UoJm11dCBwLkVYVEksIEVkZ2U6OlJpc2luZyk7CiAgICBidXR0b24uZW5hYmxlX2ludGVycnVwdCgmbXV0IHAuRVhUSSk7CiAgICBjb3J0ZXhfbTo6aW50ZXJydXB0OjpmcmVlKHxjc3wgQlVUVE9OLmJvcnJvdyhjcykucmVwbGFjZShTb21lKGJ1dHRvbikpKTsKICAgIHVuc2FmZSB7IHBhYzo6TlZJQzo6dW5tYXNrKHBhYzo6SW50ZXJydXB0OjpFWFRJMCkgfTsKCiAgICAvLyBDUzQzTDIyIGNvZGVjOiBjb250cm9sIHBvcnQgKyByZXNldCB2aWEgdGhlIGJvYXJkLXN1cHBvcnQgZHJpdmVyLgogICAgbGV0IGkyYyA9IEkyYzo6bmV3KAogICAgICAgIHAuSTJDMSwKICAgICAgICAoZ3Bpb2IucGI2LCBncGlvYi5wYjkpLAogICAgICAgIE1vZGU6OnN0YW5kYXJkKDEwMC5rSHooKSksCiAgICAgICAgJm11dCByY2MsCiAgICApOwogICAgbGV0IG11dCBjb2RlYyA9IENzNDNsMjI6Om5ldyhpMmMsIGdwaW9kLnBkNC5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKSk7CiAgICBtYXRjaCBjb2RlYy5pbml0KCZtdXQgZGVsYXkpIHsKICAgICAgICBPayhpZCkgPT4gZGVmbXQ6OmluZm8hKCJjb2RlYyB1cCwgSUQgcmVnIHs9dTg6IzA0eH0iLCBpZCksCiAgICAgICAgRXJyKGUpID0+IGRlZm10OjplcnJvciEoImNvZGVjIGluaXQgZmFpbGVkOiB7fSIsIGRlZm10OjpEZWJ1ZzJGb3JtYXQoJmUpKSwKICAgIH0KCiAgICBsZXQgbXV0IHRyYW5zZmVyID0gYXVkaW9fb3V0KAogICAgICAgIHAuU1BJMywKICAgICAgICAoZ3Bpb2EucGE0LCBncGlvYy5wYzEwLCBTb21lKGdwaW9jLnBjNyksIGdwaW9jLnBjMTIpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKCiAgICBkZWZtdDo6aW5mbyEoCiAgICAgICAgInNhdzoge30gSHosIHNhbXBsZSByYXRlIHt9IEh6ICh7fSBzYW1wbGVzL2N5Y2xlKSIsCiAgICAgICAgU0FXX0haLAogICAgICAgIHRyYW5zZmVyLnNhbXBsZV9yYXRlKCksCiAgICAgICAgU0FNUExFU19QRVJfQ1lDTEUKICAgICk7CgogICAgLy8gT24tYm9hcmQgTEVEczogc291dGggKExENiwgYmx1ZSkgPSAxIEh6IGhlYXJ0YmVhdCBzbyBpdCdzIHZpc2libGUgdGhlCiAgICAvLyBmaXJtd2FyZSBpcyBhbGl2ZSB3aXRob3V0IGEgZGVidWdnZXI7IHdlc3QgKExENCwgZ3JlZW4pID0gc2F3IHBsYXlpbmcuCiAgICBsZXQgY29tcGFzcyA9IExlZENvbXBhc3M6Om5ldyhncGlvZC5wZDEyLCBncGlvZC5wZDEzLCBncGlvZC5wZDE0LCBncGlvZC5wZDE1KTsKICAgIGxldCBtdXQgaGVhcnRiZWF0ID0gY29tcGFzcy5zOwogICAgbGV0IG11dCBzYXdfbGVkID0gY29tcGFzcy53OwoKICAgIGxldCBtdXQgaSA9IDA7CiAgICBsZXQgbXV0IGZyYW1lczogdTMyID0gMDsKICAgIGxldCBtdXQgb24gPSBmYWxzZTsgLy8gc2lsZW50IGF0IGJvb3Q7IFVTRVIgYnV0dG9uIHRvZ2dsZXMgdGhlIHNhdyBvbgogICAgbGV0IG11dCBob2xkb2ZmOiB1MzIgPSAwOwogICAgLy8gbG9vcCB7CiAgICAvLyAgICAgLy8gQ29uc3VtZSBhbnkgcHJlc3MgZmxhZyBldmVyeSBmcmFtZSAoc28gYm91bmNlIGR1cmluZyB0aGUgaG9sZC1vZmYKICAgIC8vICAgICAvLyB3aW5kb3cgaXMgZGlzY2FyZGVkKSwgYXBwbHkgaXQgb25seSBvdXRzaWRlIHRoZSB3aW5kb3cuCiAgICAvLyAgICAgaG9sZG9mZiA9IGhvbGRvZmYuc2F0dXJhdGluZ19zdWIoMSk7CiAgICAvLyAgICAgaWYgVE9HR0xFX1JFUS5zd2FwKGZhbHNlLCBPcmRlcmluZzo6QWNxUmVsKSAmJiBob2xkb2ZmID09IDAgewogICAgLy8gICAgICAgICBvbiA9ICFvbjsKICAgIC8vICAgICAgICAgaG9sZG9mZiA9IERFQk9VTkNFX1NBTVBMRVM7CiAgICAvLyAgICAgICAgIHNhd19sZWQuc2V0KG9uKTsKICAgIC8vICAgICAgICAgZGVmbXQ6OmluZm8hKCJzYXcge30iLCBpZiBvbiB7ICJPTiIgfSBlbHNlIHsgIk9GRiIgfSk7CiAgICAvLyAgICAgfQoKICAgIC8vICAgICBsZXQgc2FtcGxlID0gbWF0Y2ggb24gewogICAgLy8gICAgICAgICB0cnVlID0+IHNhd19zYW1wbGUoaSksCiAgICAvLyAgICAgICAgIGZhbHNlID0+IDAsCiAgICAvLyAgICAgfTsKICAgIC8vICAgICBibG9jayEodHJhbnNmZXIud3JpdGUoKHNhbXBsZSwgc2FtcGxlKSkpLnVud3JhcCgpOwogICAgLy8gICAgIGkgPSAoaSArIDEpICUgU0FNUExFU19QRVJfQ1lDTEU7CgogICAgLy8gICAgIGZyYW1lcyArPSAxOwogICAgLy8gICAgIGlmIGZyYW1lcyA9PSBTQU1QTEVfUkFURV9IWiB7CiAgICAvLyAgICAgICAgIGZyYW1lcyA9IDA7CiAgICAvLyAgICAgICAgIGhlYXJ0YmVhdC50b2dnbGUoKTsKICAgIC8vICAgICB9CiAgICAvLyB9CgogICAgbG9vcCB7CiAgICAgICAgLy8gUmFtcCAtQU1QTElUVURFIOKGkiArQU1QTElUVURFIG92ZXIgb25lIGN5Y2xlLCB0aGVuIHdyYXAuCiAgICAgICAgbGV0IHNhbXBsZSA9IChpIGFzIGkzMiAqIDIgKiBBTVBMSVRVREUgLyBTQU1QTEVTX1BFUl9DWUNMRSBhcyBpMzIgLSBBTVBMSVRVREUpIGFzIGkxNjsKICAgICAgICBibG9jayEodHJhbnNmZXIud3JpdGUoKHNhbXBsZSwgc2FtcGxlKSkpLnVud3JhcCgpOwogICAgICAgIGkgPSAoaSArIDEpICUgU0FNUExFU19QRVJfQ1lDTEU7CiAgICB9Cn0KCiNbaW50ZXJydXB0XQpmbiBFWFRJMCgpIHsKICAgIGNvcnRleF9tOjppbnRlcnJ1cHQ6OmZyZWUofGNzfCB7CiAgICAgICAgaWYgbGV0IFNvbWUocGluKSA9IEJVVFRPTi5ib3Jyb3coY3MpLmJvcnJvd19tdXQoKS5hc19tdXQoKSB7CiAgICAgICAgICAgIHBpbi5jbGVhcl9pbnRlcnJ1cHRfcGVuZGluZ19iaXQoKTsKICAgICAgICB9CiAgICB9KTsKICAgIFRPR0dMRV9SRVEuc3RvcmUodHJ1ZSwgT3JkZXJpbmc6OlJlbGVhc2UpOwp9CgAAAAAAAAAA1xgAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFgMAAAAAAAAWAwAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
402,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAADaGAAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGJ1dHRvbjo6QnV0dG9uLAogICAgY29kZWM6OkNzNDNsMjIsCiAgICBsZWQ6OkxlZENvbXBhc3MsCiAgICBoYWw6OnsKICAgICAgICBncGlvOjp7Z3Bpb2EsIGdwaW9jfSwKICAgICAgICBpMmM6OntJMmMsIE1vZGV9LAogICAgICAgIGkyczo6c3RtMzJfaTJzX3YxMng6OnRyYW5zZmVyOjoqLAogICAgICAgIGkyczo6STJzLAogICAgICAgIG5iOjpibG9jaywKICAgICAgICBwYWMsCiAgICAgICAgcGFjOjppbnRlcnJ1cHQsCiAgICAgICAgcHJlbHVkZTo6KiwKICAgICAgICByY2M6OntDb25maWcsIFJjY30sCiAgICB9LAp9OwoKLy8gLS0tLSB0b25lIC0tLS0KY29uc3QgU0FXX0haOiB1MzIgPSA0MDA7CmNvbnN0IFNBTVBMRV9SQVRFX0haOiB1MzIgPSA0OF8wMDA7CmNvbnN0IFNBTVBMRVNfUEVSX0NZQ0xFOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIFNBV19IWjsgLy8gMTIwCi8vIEZ1bGwtc2NhbGUgaXMgcGFpbmZ1bGx5IGxvdWQgb24gaGVhZHBob25lczsgcnVuIHRoZSBzYXcgYXQgfjEvOCBhbXBsaXR1ZGUuCmNvbnN0IEFNUExJVFVERTogaTMyID0gaTE2OjpNQVggYXMgaTMyIC8gODsKCi8vIC0tLS0gYnV0dG9uIC0tLS0KLy8gQWZ0ZXIgYSB0b2dnbGUsIGlnbm9yZSBmdXJ0aGVyIHByZXNzZXMgZm9yIH4yMCBtcyBvZiBzYW1wbGVzIChib3VuY2UpLgpjb25zdCBERUJPVU5DRV9TQU1QTEVTOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIDUwOwoKLy8vIEJ1dHRvbiBwaW4sIHBhcmtlZCBoZXJlIHNvIHRoZSBFWFRJMCBoYW5kbGVyIGNhbiBjbGVhciBpdHMgcGVuZGluZyBiaXQuCnN0YXRpYyBCVVRUT046IE11dGV4PFJlZkNlbGw8T3B0aW9uPFBBMDxJbnB1dD4+Pj4gPSBNdXRleDo6bmV3KFJlZkNlbGw6Om5ldyhOb25lKSk7Ci8vLyBTZXQgYnkgRVhUSTAgb24gYSBwcmVzcyBlZGdlLCBjb25zdW1lZCBieSB0aGUgYXVkaW8gbG9vcC4Kc3RhdGljIFRPR0dMRV9SRVE6IEF0b21pY0Jvb2wgPSBBdG9taWNCb29sOjpuZXcoZmFsc2UpOwoKdHlwZSBBdWRpb091dCA9IEkyc1RyYW5zZmVyPEkyczxwYWM6OlNQSTM+LCBNYXN0ZXIsIFRyYW5zbWl0LCBQaGlsaXBzLCBEYXRhMTZDaGFubmVsMTY+OwoKLy8vIEkyUzMgbWFzdGVyIHRyYW5zbWl0LCAxNi1iaXQgc3RlcmVvLCBNQ0xLIG91dCBmb3IgdGhlIGNvZGVjLgpmbiBhdWRpb19vdXQoCiAgICBzcGk6IHBhYzo6U1BJMywKICAgIHBpbnM6IChncGlvYTo6UEE0LCBncGlvYzo6UEMxMCwgT3B0aW9uPGdwaW9jOjpQQzc+LCBncGlvYzo6UEMxMiksCiAgICByY2M6ICZtdXQgUmNjLAopIC0+IEF1ZGlvT3V0IHsKICAgIGxldCBpMnMgPSBJMnM6Om5ldyhzcGksIHBpbnMsIHJjYyk7CiAgICBsZXQgY29uZmlnID0gSTJzVHJhbnNmZXJDb25maWc6Om5ld19tYXN0ZXIoKQogICAgICAgIC50cmFuc21pdCgpCiAgICAgICAgLnN0YW5kYXJkKFBoaWxpcHMpCiAgICAgICAgLmRhdGFfZm9ybWF0KERhdGExNkNoYW5uZWwxNikKICAgICAgICAubWFzdGVyX2Nsb2NrKHRydWUpCiAgICAgICAgLnJlcXVlc3RfZnJlcXVlbmN5KFNBTVBMRV9SQVRFX0haKTsKICAgIEkyc1RyYW5zZmVyOjpuZXcoaTJzLCBjb25maWcpCn0KCi8vLyBTYW1wbGUgYGlgIChvZiBTQU1QTEVTX1BFUl9DWUNMRSkgb2YgdGhlIHNhd3Rvb3RoOiBhIGxpbmVhciByYW1wIGZyb20KLy8vIC1BTVBMSVRVREUgdG8gK0FNUExJVFVERSwgd3JhcHBpbmcgZWFjaCBjeWNsZS4KZm4gc2F3X3NhbXBsZShpOiB1MzIpIC0+IGkxNiB7CiAgICAoaSBhcyBpMzIgKiAyICogQU1QTElUVURFIC8gU0FNUExFU19QRVJfQ1lDTEUgYXMgaTMyIC0gQU1QTElUVURFKSBhcyBpMTYKfQoKI1tlbnRyeV0KZm4gbWFpbigpIC0+ICEgewogICAgbGV0IGNwID0gY29ydGV4X206OlBlcmlwaGVyYWxzOjp0YWtlKCkudW53cmFwKCk7CiAgICBsZXQgbXV0IHAgPSBwYWM6OlBlcmlwaGVyYWxzOjp0YWtlKCkudW53cmFwKCk7CgogICAgLy8gUExMSTJTIHR1bmVkIHRvIDYxLjQ0IE1IeiBzbyA0OCBrSHogZGl2aWRlcyBleGFjdGx5ICg2MS40NCBNSHogLyAyNTZmcyAvIDUpLgogICAgbGV0IG11dCByY2MgPSBwCiAgICAgICAgLlJDQwogICAgICAgIC5mcmVlemUoQ29uZmlnOjpoc2koKS5zeXNjbGsoOTYuTUh6KCkpLmkyc19jbGsoNjE0NDAua0h6KCkpKTsKICAgIGxldCBtdXQgZGVsYXkgPSBjcC5TWVNULmRlbGF5KCZyY2MuY2xvY2tzKTsKCiAgICBsZXQgZ3Bpb2EgPSBwLkdQSU9BLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvYiA9IHAuR1BJT0Iuc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9jID0gcC5HUElPQy5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2QgPSBwLkdQSU9ELnNwbGl0KCZtdXQgcmNjKTsKCiAgICAvLyBVU0VSIGJ1dHRvbiAoQjEpOiByaXNpbmctZWRnZSBpbnRlcnJ1cHQgb24gRVhUSTAuCiAgICBsZXQgbXV0IHN5c2NmZyA9IHAuU1lTQ0ZHLmNvbnN0cmFpbigmbXV0IHJjYyk7CiAgICBsZXQgbXV0IGJ1dHRvbiA9IGdwaW9hLnBhMC5pbnRvX3B1bGxfZG93bl9pbnB1dCgpOwogICAgYnV0dG9uLm1ha2VfaW50ZXJydXB0X3NvdXJjZSgmbXV0IHN5c2NmZyk7CiAgICBidXR0b24udHJpZ2dlcl9vbl9lZGdlKCZtdXQgcC5FWFRJLCBFZGdlOjpSaXNpbmcpOwogICAgYnV0dG9uLmVuYWJsZV9pbnRlcnJ1cHQoJm11dCBwLkVYVEkpOwogICAgY29ydGV4X206OmludGVycnVwdDo6ZnJlZSh8Y3N8IEJVVFRPTi5ib3Jyb3coY3MpLnJlcGxhY2UoU29tZShidXR0b24pKSk7CiAgICB1bnNhZmUgeyBwYWM6Ok5WSUM6OnVubWFzayhwYWM6OkludGVycnVwdDo6RVhUSTApIH07CgogICAgLy8gQ1M0M0wyMiBjb2RlYzogY29udHJvbCBwb3J0ICsgcmVzZXQgdmlhIHRoZSBib2FyZC1zdXBwb3J0IGRyaXZlci4KICAgIGxldCBpMmMgPSBJMmM6Om5ldygKICAgICAgICBwLkkyQzEsCiAgICAgICAgKGdwaW9iLnBiNiwgZ3Bpb2IucGI5KSwKICAgICAgICBNb2RlOjpzdGFuZGFyZCgxMDAua0h6KCkpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKICAgIGxldCBtdXQgY29kZWMgPSBDczQzbDIyOjpuZXcoaTJjLCBncGlvZC5wZDQuaW50b19wdXNoX3B1bGxfb3V0cHV0KCkpOwogICAgbWF0Y2ggY29kZWMuaW5pdCgmbXV0IGRlbGF5KSB7CiAgICAgICAgT2soaWQpID0+IGRlZm10OjppbmZvISgiY29kZWMgdXAsIElEIHJlZyB7PXU4OiMwNHh9IiwgaWQpLAogICAgICAgIEVycihlKSA9PiBkZWZtdDo6ZXJyb3IhKCJjb2RlYyBpbml0IGZhaWxlZDoge30iLCBkZWZtdDo6RGVidWcyRm9ybWF0KCZlKSksCiAgICB9CgogICAgbGV0IG11dCB0cmFuc2ZlciA9IGF1ZGlvX291dCgKICAgICAgICBwLlNQSTMsCiAgICAgICAgKGdwaW9hLnBhNCwgZ3Bpb2MucGMxMCwgU29tZShncGlvYy5wYzcpLCBncGlvYy5wYzEyKSwKICAgICAgICAmbXV0IHJjYywKICAgICk7CgogICAgZGVmbXQ6OmluZm8hKAogICAgICAgICJzYXc6IHt9IEh6LCBzYW1wbGUgcmF0ZSB7fSBIeiAoe30gc2FtcGxlcy9jeWNsZSkiLAogICAgICAgIFNBV19IWiwKICAgICAgICB0cmFuc2Zlci5zYW1wbGVfcmF0ZSgpLAogICAgICAgIFNBTVBMRVNfUEVSX0NZQ0xFCiAgICApOwoKICAgIC8vIE9uLWJvYXJkIExFRHM6IHNvdXRoIChMRDYsIGJsdWUpID0gMSBIeiBoZWFydGJlYXQgc28gaXQncyB2aXNpYmxlIHRoZQogICAgLy8gZmlybXdhcmUgaXMgYWxpdmUgd2l0aG91dCBhIGRlYnVnZ2VyOyB3ZXN0IChMRDQsIGdyZWVuKSA9IHNhdyBwbGF5aW5nLgogICAgbGV0IGNvbXBhc3MgPSBMZWRDb21wYXNzOjpuZXcoZ3Bpb2QucGQxMiwgZ3Bpb2QucGQxMywgZ3Bpb2QucGQxNCwgZ3Bpb2QucGQxNSk7CiAgICBsZXQgbXV0IGhlYXJ0YmVhdCA9IGNvbXBhc3MuczsKICAgIGxldCBtdXQgc2F3X2xlZCA9IGNvbXBhc3MudzsKCiAgICBsZXQgbXV0IGkgPSAwOwogICAgbGV0IG11dCBmcmFtZXM6IHUzMiA9IDA7CiAgICBsZXQgbXV0IG9uID0gZmFsc2U7IC8vIHNpbGVudCBhdCBib290OyBVU0VSIGJ1dHRvbiB0b2dnbGVzIHRoZSBzYXcgb24KICAgIGxldCBtdXQgaG9sZG9mZjogdTMyID0gMDsKICAgIC8vIGxvb3AgewogICAgLy8gICAgIC8vIENvbnN1bWUgYW55IHByZXNzIGZsYWcgZXZlcnkgZnJhbWUgKHNvIGJvdW5jZSBkdXJpbmcgdGhlIGhvbGQtb2ZmCiAgICAvLyAgICAgLy8gd2luZG93IGlzIGRpc2NhcmRlZCksIGFwcGx5IGl0IG9ubHkgb3V0c2lkZSB0aGUgd2luZG93LgogICAgLy8gICAgIGhvbGRvZmYgPSBob2xkb2ZmLnNhdHVyYXRpbmdfc3ViKDEpOwogICAgLy8gICAgIGlmIFRPR0dMRV9SRVEuc3dhcChmYWxzZSwgT3JkZXJpbmc6OkFjcVJlbCkgJiYgaG9sZG9mZiA9PSAwIHsKICAgIC8vICAgICAgICAgb24gPSAhb247CiAgICAvLyAgICAgICAgIGhvbGRvZmYgPSBERUJPVU5DRV9TQU1QTEVTOwogICAgLy8gICAgICAgICBzYXdfbGVkLnNldChvbik7CiAgICAvLyAgICAgICAgIGRlZm10OjppbmZvISgic2F3IHt9IiwgaWYgb24geyAiT04iIH0gZWxzZSB7ICJPRkYiIH0pOwogICAgLy8gICAgIH0KCiAgICAvLyAgICAgbGV0IHNhbXBsZSA9IG1hdGNoIG9uIHsKICAgIC8vICAgICAgICAgdHJ1ZSA9PiBzYXdfc2FtcGxlKGkpLAogICAgLy8gICAgICAgICBmYWxzZSA9PiAwLAogICAgLy8gICAgIH07CiAgICAvLyAgICAgYmxvY2shKHRyYW5zZmVyLndyaXRlKChzYW1wbGUsIHNhbXBsZSkpKS51bndyYXAoKTsKICAgIC8vICAgICBpID0gKGkgKyAxKSAlIFNBTVBMRVNfUEVSX0NZQ0xFOwoKICAgIC8vICAgICBmcmFtZXMgKz0gMTsKICAgIC8vICAgICBpZiBmcmFtZXMgPT0gU0FNUExFX1JBVEVfSFogewogICAgLy8gICAgICAgICBmcmFtZXMgPSAwOwogICAgLy8gICAgICAgICBoZWFydGJlYXQudG9nZ2xlKCk7CiAgICAvLyAgICAgfQogICAgLy8gfQoKICAgIGxvb3AgewogICAgICAgIC8vIFJhbXAgLUFNUExJVFVERSDihpIgK0FNUExJVFVERSBvdmVyIG9uZSBjeWNsZSwgdGhlbiB3cmFwLgogICAgICAgIGxldCBzYW1wbGUgPSAoaSBhcyBpMzIgKiAyICogQU1QTElUVURFIC8gU0FNUExFU19QRVJfQ1lDTEUgYXMgaTMyIC0gQU1QTElUVURFKSBhcyBpMTY7CiAgICAgICAgYmxvY2shKHRyYW5zZmVyLndyaXRlKChzYW1wbGUsIHNhbXBsZSkpKS51bndyYXAoKTsKICAgICAgICBpID0gKGkgKyAxKSAlIFNBTVBMRVNfUEVSX0NZQ0xFOwogICAgfQp9CgojW2ludGVycnVwdF0KZm4gRVhUSTAoKSB7CiAgICBjb3J0ZXhfbTo6aW50ZXJydXB0OjpmcmVlKHxjc3wgewogICAgICAgIGlmIGxldCBTb21lKHBpbikgPSBCVVRUT04uYm9ycm93KGNzKS5ib3Jyb3dfbXV0KCkuYXNfbXV0KCkgewogICAgICAgICAgICBwaW4uY2xlYXJfaW50ZXJydXB0X3BlbmRpbmdfYml0KCk7CiAgICAgICAgfQogICAgfSk7CiAgICBUT0dHTEVfUkVRLnN0b3JlKHRydWUsIE9yZGVyaW5nOjpSZWxlYXNlKTsKfQoAAAAAAAAAAM8YAAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFgMAAAAAAAAWAwAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
403,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAADSGAAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGJ1dHRvbjo6QnV0dG9uLAogICAgY29kZWM6OkNzNDNsMjIsCiAgICBsZWQ6OkxlZENvbXBhc3MsCiAgICBoYWw6OnsKICAgICAgICBncGlvOjp7Z3Bpb2EsIGdwaW9jfSwKICAgICAgICBpMmM6OntJMmMsIE1vZGV9LAogICAgICAgIGkyczo6c3RtMzJfaTJzX3YxMng6OnRyYW5zZmVyOjoqLAogICAgICAgIGkyczo6STJzLAogICAgICAgIG5iOjpibG9jaywKICAgICAgICBwYWMsCiAgICAgICAgcGFjOjppbnRlcnJ1cHQsCiAgICAgICAgcHJlbHVkZTo6KiwKICAgICAgICByY2M6OntDb25maWcsIFJjY30sCiAgICB9LAp9OwoKLy8gLS0tLSB0b25lIC0tLS0KY29uc3QgU0FXX0haOiB1MzIgPSA0MDA7CmNvbnN0IFNBTVBMRV9SQVRFX0haOiB1MzIgPSA0OF8wMDA7CmNvbnN0IFNBTVBMRVNfUEVSX0NZQ0xFOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIFNBV19IWjsgLy8gMTIwCi8vIEZ1bGwtc2NhbGUgaXMgcGFpbmZ1bGx5IGxvdWQgb24gaGVhZHBob25lczsgcnVuIHRoZSBzYXcgYXQgfjEvOCBhbXBsaXR1ZGUuCmNvbnN0IEFNUExJVFVERTogaTMyID0gaTE2OjpNQVggYXMgaTMyIC8gODsKCi8vIC0tLS0gYnV0dG9uIC0tLS0KLy8gQWZ0ZXIgYSB0b2dnbGUsIGlnbm9yZSBmdXJ0aGVyIHByZXNzZXMgZm9yIH4yMCBtcyBvZiBzYW1wbGVzIChib3VuY2UpLgpjb25zdCBERUJPVU5DRV9TQU1QTEVTOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIDUwOwoKLy8vIEJ1dHRvbiwgcGFya2VkIGhlcmUgc28gdGhlIEVYVEkwIGhhbmRsZXIgY2FuIGNsZWFyIGl0cyBwZW5kaW5nIGJpdC4Kc3RhdGljIEJVVFRPTjogTXV0ZXg8UmVmQ2VsbDxPcHRpb248QnV0dG9uPj4+ID0gTXV0ZXg6Om5ldyhSZWZDZWxsOjpuZXcoTm9uZSkpOwovLy8gU2V0IGJ5IEVYVEkwIG9uIGEgcHJlc3MgZWRnZSwgY29uc3VtZWQgYnkgdGhlIGF1ZGlvIGxvb3AuCnN0YXRpYyBUT0dHTEVfUkVROiBBdG9taWNCb29sID0gQXRvbWljQm9vbDo6bmV3KGZhbHNlKTsKCnR5cGUgQXVkaW9PdXQgPSBJMnNUcmFuc2ZlcjxJMnM8cGFjOjpTUEkzPiwgTWFzdGVyLCBUcmFuc21pdCwgUGhpbGlwcywgRGF0YTE2Q2hhbm5lbDE2PjsKCi8vLyBJMlMzIG1hc3RlciB0cmFuc21pdCwgMTYtYml0IHN0ZXJlbywgTUNMSyBvdXQgZm9yIHRoZSBjb2RlYy4KZm4gYXVkaW9fb3V0KAogICAgc3BpOiBwYWM6OlNQSTMsCiAgICBwaW5zOiAoZ3Bpb2E6OlBBNCwgZ3Bpb2M6OlBDMTAsIE9wdGlvbjxncGlvYzo6UEM3PiwgZ3Bpb2M6OlBDMTIpLAogICAgcmNjOiAmbXV0IFJjYywKKSAtPiBBdWRpb091dCB7CiAgICBsZXQgaTJzID0gSTJzOjpuZXcoc3BpLCBwaW5zLCByY2MpOwogICAgbGV0IGNvbmZpZyA9IEkyc1RyYW5zZmVyQ29uZmlnOjpuZXdfbWFzdGVyKCkKICAgICAgICAudHJhbnNtaXQoKQogICAgICAgIC5zdGFuZGFyZChQaGlsaXBzKQogICAgICAgIC5kYXRhX2Zvcm1hdChEYXRhMTZDaGFubmVsMTYpCiAgICAgICAgLm1hc3Rlcl9jbG9jayh0cnVlKQogICAgICAgIC5yZXF1ZXN0X2ZyZXF1ZW5jeShTQU1QTEVfUkFURV9IWik7CiAgICBJMnNUcmFuc2Zlcjo6bmV3KGkycywgY29uZmlnKQp9CgovLy8gU2FtcGxlIGBpYCAob2YgU0FNUExFU19QRVJfQ1lDTEUpIG9mIHRoZSBzYXd0b290aDogYSBsaW5lYXIgcmFtcCBmcm9tCi8vLyAtQU1QTElUVURFIHRvICtBTVBMSVRVREUsIHdyYXBwaW5nIGVhY2ggY3ljbGUuCmZuIHNhd19zYW1wbGUoaTogdTMyKSAtPiBpMTYgewogICAgKGkgYXMgaTMyICogMiAqIEFNUExJVFVERSAvIFNBTVBMRVNfUEVSX0NZQ0xFIGFzIGkzMiAtIEFNUExJVFVERSkgYXMgaTE2Cn0KCiNbZW50cnldCmZuIG1haW4oKSAtPiAhIHsKICAgIGxldCBjcCA9IGNvcnRleF9tOjpQZXJpcGhlcmFsczo6dGFrZSgpLnVud3JhcCgpOwogICAgbGV0IG11dCBwID0gcGFjOjpQZXJpcGhlcmFsczo6dGFrZSgpLnVud3JhcCgpOwoKICAgIC8vIFBMTEkyUyB0dW5lZCB0byA2MS40NCBNSHogc28gNDgga0h6IGRpdmlkZXMgZXhhY3RseSAoNjEuNDQgTUh6IC8gMjU2ZnMgLyA1KS4KICAgIGxldCBtdXQgcmNjID0gcAogICAgICAgIC5SQ0MKICAgICAgICAuZnJlZXplKENvbmZpZzo6aHNpKCkuc3lzY2xrKDk2Lk1IeigpKS5pMnNfY2xrKDYxNDQwLmtIeigpKSk7CiAgICBsZXQgbXV0IGRlbGF5ID0gY3AuU1lTVC5kZWxheSgmcmNjLmNsb2Nrcyk7CgogICAgbGV0IGdwaW9hID0gcC5HUElPQS5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2IgPSBwLkdQSU9CLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvYyA9IHAuR1BJT0Muc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9kID0gcC5HUElPRC5zcGxpdCgmbXV0IHJjYyk7CgogICAgLy8gVVNFUiBidXR0b24gKEIxKTogcmlzaW5nLWVkZ2UgaW50ZXJydXB0IG9uIEVYVEkwLgogICAgbGV0IG11dCBzeXNjZmcgPSBwLlNZU0NGRy5jb25zdHJhaW4oJm11dCByY2MpOwogICAgbGV0IG11dCBidXR0b24gPSBncGlvYS5wYTAuaW50b19wdWxsX2Rvd25faW5wdXQoKTsKICAgIGJ1dHRvbi5tYWtlX2ludGVycnVwdF9zb3VyY2UoJm11dCBzeXNjZmcpOwogICAgYnV0dG9uLnRyaWdnZXJfb25fZWRnZSgmbXV0IHAuRVhUSSwgRWRnZTo6UmlzaW5nKTsKICAgIGJ1dHRvbi5lbmFibGVfaW50ZXJydXB0KCZtdXQgcC5FWFRJKTsKICAgIGNvcnRleF9tOjppbnRlcnJ1cHQ6OmZyZWUofGNzfCBCVVRUT04uYm9ycm93KGNzKS5yZXBsYWNlKFNvbWUoYnV0dG9uKSkpOwogICAgdW5zYWZlIHsgcGFjOjpOVklDOjp1bm1hc2socGFjOjpJbnRlcnJ1cHQ6OkVYVEkwKSB9OwoKICAgIC8vIENTNDNMMjIgY29kZWM6IGNvbnRyb2wgcG9ydCArIHJlc2V0IHZpYSB0aGUgYm9hcmQtc3VwcG9ydCBkcml2ZXIuCiAgICBsZXQgaTJjID0gSTJjOjpuZXcoCiAgICAgICAgcC5JMkMxLAogICAgICAgIChncGlvYi5wYjYsIGdwaW9iLnBiOSksCiAgICAgICAgTW9kZTo6c3RhbmRhcmQoMTAwLmtIeigpKSwKICAgICAgICAmbXV0IHJjYywKICAgICk7CiAgICBsZXQgbXV0IGNvZGVjID0gQ3M0M2wyMjo6bmV3KGkyYywgZ3Bpb2QucGQ0LmludG9fcHVzaF9wdWxsX291dHB1dCgpKTsKICAgIG1hdGNoIGNvZGVjLmluaXQoJm11dCBkZWxheSkgewogICAgICAgIE9rKGlkKSA9PiBkZWZtdDo6aW5mbyEoImNvZGVjIHVwLCBJRCByZWcgez11ODojMDR4fSIsIGlkKSwKICAgICAgICBFcnIoZSkgPT4gZGVmbXQ6OmVycm9yISgiY29kZWMgaW5pdCBmYWlsZWQ6IHt9IiwgZGVmbXQ6OkRlYnVnMkZvcm1hdCgmZSkpLAogICAgfQoKICAgIGxldCBtdXQgdHJhbnNmZXIgPSBhdWRpb19vdXQoCiAgICAgICAgcC5TUEkzLAogICAgICAgIChncGlvYS5wYTQsIGdwaW9jLnBjMTAsIFNvbWUoZ3Bpb2MucGM3KSwgZ3Bpb2MucGMxMiksCiAgICAgICAgJm11dCByY2MsCiAgICApOwoKICAgIGRlZm10OjppbmZvISgKICAgICAgICAic2F3OiB7fSBIeiwgc2FtcGxlIHJhdGUge30gSHogKHt9IHNhbXBsZXMvY3ljbGUpIiwKICAgICAgICBTQVdfSFosCiAgICAgICAgdHJhbnNmZXIuc2FtcGxlX3JhdGUoKSwKICAgICAgICBTQU1QTEVTX1BFUl9DWUNMRQogICAgKTsKCiAgICAvLyBPbi1ib2FyZCBMRURzOiBzb3V0aCAoTEQ2LCBibHVlKSA9IDEgSHogaGVhcnRiZWF0IHNvIGl0J3MgdmlzaWJsZSB0aGUKICAgIC8vIGZpcm13YXJlIGlzIGFsaXZlIHdpdGhvdXQgYSBkZWJ1Z2dlcjsgd2VzdCAoTEQ0LCBncmVlbikgPSBzYXcgcGxheWluZy4KICAgIGxldCBjb21wYXNzID0gTGVkQ29tcGFzczo6bmV3KGdwaW9kLnBkMTIsIGdwaW9kLnBkMTMsIGdwaW9kLnBkMTQsIGdwaW9kLnBkMTUpOwogICAgbGV0IG11dCBoZWFydGJlYXQgPSBjb21wYXNzLnM7CiAgICBsZXQgbXV0IHNhd19sZWQgPSBjb21wYXNzLnc7CgogICAgbGV0IG11dCBpID0gMDsKICAgIGxldCBtdXQgZnJhbWVzOiB1MzIgPSAwOwogICAgbGV0IG11dCBvbiA9IGZhbHNlOyAvLyBzaWxlbnQgYXQgYm9vdDsgVVNFUiBidXR0b24gdG9nZ2xlcyB0aGUgc2F3IG9uCiAgICBsZXQgbXV0IGhvbGRvZmY6IHUzMiA9IDA7CiAgICAvLyBsb29wIHsKICAgIC8vICAgICAvLyBDb25zdW1lIGFueSBwcmVzcyBmbGFnIGV2ZXJ5IGZyYW1lIChzbyBib3VuY2UgZHVyaW5nIHRoZSBob2xkLW9mZgogICAgLy8gICAgIC8vIHdpbmRvdyBpcyBkaXNjYXJkZWQpLCBhcHBseSBpdCBvbmx5IG91dHNpZGUgdGhlIHdpbmRvdy4KICAgIC8vICAgICBob2xkb2ZmID0gaG9sZG9mZi5zYXR1cmF0aW5nX3N1YigxKTsKICAgIC8vICAgICBpZiBUT0dHTEVfUkVRLnN3YXAoZmFsc2UsIE9yZGVyaW5nOjpBY3FSZWwpICYmIGhvbGRvZmYgPT0gMCB7CiAgICAvLyAgICAgICAgIG9uID0gIW9uOwogICAgLy8gICAgICAgICBob2xkb2ZmID0gREVCT1VOQ0VfU0FNUExFUzsKICAgIC8vICAgICAgICAgc2F3X2xlZC5zZXQob24pOwogICAgLy8gICAgICAgICBkZWZtdDo6aW5mbyEoInNhdyB7fSIsIGlmIG9uIHsgIk9OIiB9IGVsc2UgeyAiT0ZGIiB9KTsKICAgIC8vICAgICB9CgogICAgLy8gICAgIGxldCBzYW1wbGUgPSBtYXRjaCBvbiB7CiAgICAvLyAgICAgICAgIHRydWUgPT4gc2F3X3NhbXBsZShpKSwKICAgIC8vICAgICAgICAgZmFsc2UgPT4gMCwKICAgIC8vICAgICB9OwogICAgLy8gICAgIGJsb2NrISh0cmFuc2Zlci53cml0ZSgoc2FtcGxlLCBzYW1wbGUpKSkudW53cmFwKCk7CiAgICAvLyAgICAgaSA9IChpICsgMSkgJSBTQU1QTEVTX1BFUl9DWUNMRTsKCiAgICAvLyAgICAgZnJhbWVzICs9IDE7CiAgICAvLyAgICAgaWYgZnJhbWVzID09IFNBTVBMRV9SQVRFX0haIHsKICAgIC8vICAgICAgICAgZnJhbWVzID0gMDsKICAgIC8vICAgICAgICAgaGVhcnRiZWF0LnRvZ2dsZSgpOwogICAgLy8gICAgIH0KICAgIC8vIH0KCiAgICBsb29wIHsKICAgICAgICAvLyBSYW1wIC1BTVBMSVRVREUg4oaSICtBTVBMSVRVREUgb3ZlciBvbmUgY3ljbGUsIHRoZW4gd3JhcC4KICAgICAgICBsZXQgc2FtcGxlID0gKGkgYXMgaTMyICogMiAqIEFNUExJVFVERSAvIFNBTVBMRVNfUEVSX0NZQ0xFIGFzIGkzMiAtIEFNUExJVFVERSkgYXMgaTE2OwogICAgICAgIGJsb2NrISh0cmFuc2Zlci53cml0ZSgoc2FtcGxlLCBzYW1wbGUpKSkudW53cmFwKCk7CiAgICAgICAgaSA9IChpICsgMSkgJSBTQU1QTEVTX1BFUl9DWUNMRTsKICAgIH0KfQoKI1tpbnRlcnJ1cHRdCmZuIEVYVEkwKCkgewogICAgY29ydGV4X206OmludGVycnVwdDo6ZnJlZSh8Y3N8IHsKICAgICAgICBpZiBsZXQgU29tZShwaW4pID0gQlVUVE9OLmJvcnJvdyhjcykuYm9ycm93X211dCgpLmFzX211dCgpIHsKICAgICAgICAgICAgcGluLmNsZWFyX2ludGVycnVwdF9wZW5kaW5nX2JpdCgpOwogICAgICAgIH0KICAgIH0pOwogICAgVE9HR0xFX1JFUS5zdG9yZSh0cnVlLCBPcmRlcmluZzo6UmVsZWFzZSk7Cn0KAAAAAAAAAABiGAAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFgMAAAAAAAAWAwAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
404,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAABlGAAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGJ1dHRvbjo6QnV0dG9uLAogICAgY29kZWM6OkNzNDNsMjIsCiAgICBsZWQ6OkxlZENvbXBhc3MsCiAgICBoYWw6OnsKICAgICAgICBncGlvOjp7Z3Bpb2EsIGdwaW9jfSwKICAgICAgICBpMmM6OntJMmMsIE1vZGV9LAogICAgICAgIGkyczo6c3RtMzJfaTJzX3YxMng6OnRyYW5zZmVyOjoqLAogICAgICAgIGkyczo6STJzLAogICAgICAgIG5iOjpibG9jaywKICAgICAgICBwYWMsCiAgICAgICAgcGFjOjppbnRlcnJ1cHQsCiAgICAgICAgcHJlbHVkZTo6KiwKICAgICAgICByY2M6OntDb25maWcsIFJjY30sCiAgICB9LAp9OwoKLy8gLS0tLSB0b25lIC0tLS0KY29uc3QgU0FXX0haOiB1MzIgPSA0MDA7CmNvbnN0IFNBTVBMRV9SQVRFX0haOiB1MzIgPSA0OF8wMDA7CmNvbnN0IFNBTVBMRVNfUEVSX0NZQ0xFOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIFNBV19IWjsgLy8gMTIwCi8vIEZ1bGwtc2NhbGUgaXMgcGFpbmZ1bGx5IGxvdWQgb24gaGVhZHBob25lczsgcnVuIHRoZSBzYXcgYXQgfjEvOCBhbXBsaXR1ZGUuCmNvbnN0IEFNUExJVFVERTogaTMyID0gaTE2OjpNQVggYXMgaTMyIC8gODsKCi8vIC0tLS0gYnV0dG9uIC0tLS0KLy8gQWZ0ZXIgYSB0b2dnbGUsIGlnbm9yZSBmdXJ0aGVyIHByZXNzZXMgZm9yIH4yMCBtcyBvZiBzYW1wbGVzIChib3VuY2UpLgpjb25zdCBERUJPVU5DRV9TQU1QTEVTOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIDUwOwoKLy8vIEJ1dHRvbiwgcGFya2VkIGhlcmUgc28gdGhlIEVYVEkwIGhhbmRsZXIgY2FuIGNsZWFyIGl0cyBwZW5kaW5nIGJpdC4Kc3RhdGljIEJVVFRPTjogTXV0ZXg8UmVmQ2VsbDxPcHRpb248QnV0dG9uPj4+ID0gTXV0ZXg6Om5ldyhSZWZDZWxsOjpuZXcoTm9uZSkpOwovLy8gU2V0IGJ5IEVYVEkwIG9uIGEgcHJlc3MgZWRnZSwgY29uc3VtZWQgYnkgdGhlIGF1ZGlvIGxvb3AuCnN0YXRpYyBUT0dHTEVfUkVROiBBdG9taWNCb29sID0gQXRvbWljQm9vbDo6bmV3KGZhbHNlKTsKCnR5cGUgQXVkaW9PdXQgPSBJMnNUcmFuc2ZlcjxJMnM8cGFjOjpTUEkzPiwgTWFzdGVyLCBUcmFuc21pdCwgUGhpbGlwcywgRGF0YTE2Q2hhbm5lbDE2PjsKCi8vLyBJMlMzIG1hc3RlciB0cmFuc21pdCwgMTYtYml0IHN0ZXJlbywgTUNMSyBvdXQgZm9yIHRoZSBjb2RlYy4KZm4gYXVkaW9fb3V0KAogICAgc3BpOiBwYWM6OlNQSTMsCiAgICBwaW5zOiAoZ3Bpb2E6OlBBNCwgZ3Bpb2M6OlBDMTAsIE9wdGlvbjxncGlvYzo6UEM3PiwgZ3Bpb2M6OlBDMTIpLAogICAgcmNjOiAmbXV0IFJjYywKKSAtPiBBdWRpb091dCB7CiAgICBsZXQgaTJzID0gSTJzOjpuZXcoc3BpLCBwaW5zLCByY2MpOwogICAgbGV0IGNvbmZpZyA9IEkyc1RyYW5zZmVyQ29uZmlnOjpuZXdfbWFzdGVyKCkKICAgICAgICAudHJhbnNtaXQoKQogICAgICAgIC5zdGFuZGFyZChQaGlsaXBzKQogICAgICAgIC5kYXRhX2Zvcm1hdChEYXRhMTZDaGFubmVsMTYpCiAgICAgICAgLm1hc3Rlcl9jbG9jayh0cnVlKQogICAgICAgIC5yZXF1ZXN0X2ZyZXF1ZW5jeShTQU1QTEVfUkFURV9IWik7CiAgICBJMnNUcmFuc2Zlcjo6bmV3KGkycywgY29uZmlnKQp9CgovLy8gU2FtcGxlIGBpYCAob2YgU0FNUExFU19QRVJfQ1lDTEUpIG9mIHRoZSBzYXd0b290aDogYSBsaW5lYXIgcmFtcCBmcm9tCi8vLyAtQU1QTElUVURFIHRvICtBTVBMSVRVREUsIHdyYXBwaW5nIGVhY2ggY3ljbGUuCmZuIHNhd19zYW1wbGUoaTogdTMyKSAtPiBpMTYgewogICAgKGkgYXMgaTMyICogMiAqIEFNUExJVFVERSAvIFNBTVBMRVNfUEVSX0NZQ0xFIGFzIGkzMiAtIEFNUExJVFVERSkgYXMgaTE2Cn0KCiNbZW50cnldCmZuIG1haW4oKSAtPiAhIHsKICAgIGxldCBjcCA9IGNvcnRleF9tOjpQZXJpcGhlcmFsczo6dGFrZSgpLnVud3JhcCgpOwogICAgbGV0IG11dCBwID0gcGFjOjpQZXJpcGhlcmFsczo6dGFrZSgpLnVud3JhcCgpOwoKICAgIC8vIFBMTEkyUyB0dW5lZCB0byA2MS40NCBNSHogc28gNDgga0h6IGRpdmlkZXMgZXhhY3RseSAoNjEuNDQgTUh6IC8gMjU2ZnMgLyA1KS4KICAgIGxldCBtdXQgcmNjID0gcAogICAgICAgIC5SQ0MKICAgICAgICAuZnJlZXplKENvbmZpZzo6aHNpKCkuc3lzY2xrKDk2Lk1IeigpKS5pMnNfY2xrKDYxNDQwLmtIeigpKSk7CiAgICBsZXQgbXV0IGRlbGF5ID0gY3AuU1lTVC5kZWxheSgmcmNjLmNsb2Nrcyk7CgogICAgbGV0IGdwaW9hID0gcC5HUElPQS5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2IgPSBwLkdQSU9CLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvYyA9IHAuR1BJT0Muc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9kID0gcC5HUElPRC5zcGxpdCgmbXV0IHJjYyk7CgogICAgLy8gVVNFUiBidXR0b24gKEIxKTogcmlzaW5nLWVkZ2UgaW50ZXJydXB0IG9uIEVYVEkwLgogICAgbGV0IG11dCBzeXNjZmcgPSBwLlNZU0NGRy5jb25zdHJhaW4oJm11dCByY2MpOwogICAgbGV0IG11dCBidXR0b24gPSBCdXR0b246Om5ldyhncGlvYS5wYTApOwogICAgYnV0dG9uLmxpc3RlbigmbXV0IHN5c2NmZywgJm11dCBwLkVYVEkpOwogICAgY29ydGV4X206OmludGVycnVwdDo6ZnJlZSh8Y3N8IEJVVFRPTi5ib3Jyb3coY3MpLnJlcGxhY2UoU29tZShidXR0b24pKSk7CiAgICB1bnNhZmUgeyBwYWM6Ok5WSUM6OnVubWFzayhwYWM6OkludGVycnVwdDo6RVhUSTApIH07CgogICAgLy8gQ1M0M0wyMiBjb2RlYzogY29udHJvbCBwb3J0ICsgcmVzZXQgdmlhIHRoZSBib2FyZC1zdXBwb3J0IGRyaXZlci4KICAgIGxldCBpMmMgPSBJMmM6Om5ldygKICAgICAgICBwLkkyQzEsCiAgICAgICAgKGdwaW9iLnBiNiwgZ3Bpb2IucGI5KSwKICAgICAgICBNb2RlOjpzdGFuZGFyZCgxMDAua0h6KCkpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKICAgIGxldCBtdXQgY29kZWMgPSBDczQzbDIyOjpuZXcoaTJjLCBncGlvZC5wZDQuaW50b19wdXNoX3B1bGxfb3V0cHV0KCkpOwogICAgbWF0Y2ggY29kZWMuaW5pdCgmbXV0IGRlbGF5KSB7CiAgICAgICAgT2soaWQpID0+IGRlZm10OjppbmZvISgiY29kZWMgdXAsIElEIHJlZyB7PXU4OiMwNHh9IiwgaWQpLAogICAgICAgIEVycihlKSA9PiBkZWZtdDo6ZXJyb3IhKCJjb2RlYyBpbml0IGZhaWxlZDoge30iLCBkZWZtdDo6RGVidWcyRm9ybWF0KCZlKSksCiAgICB9CgogICAgbGV0IG11dCB0cmFuc2ZlciA9IGF1ZGlvX291dCgKICAgICAgICBwLlNQSTMsCiAgICAgICAgKGdwaW9hLnBhNCwgZ3Bpb2MucGMxMCwgU29tZShncGlvYy5wYzcpLCBncGlvYy5wYzEyKSwKICAgICAgICAmbXV0IHJjYywKICAgICk7CgogICAgZGVmbXQ6OmluZm8hKAogICAgICAgICJzYXc6IHt9IEh6LCBzYW1wbGUgcmF0ZSB7fSBIeiAoe30gc2FtcGxlcy9jeWNsZSkiLAogICAgICAgIFNBV19IWiwKICAgICAgICB0cmFuc2Zlci5zYW1wbGVfcmF0ZSgpLAogICAgICAgIFNBTVBMRVNfUEVSX0NZQ0xFCiAgICApOwoKICAgIC8vIE9uLWJvYXJkIExFRHM6IHNvdXRoIChMRDYsIGJsdWUpID0gMSBIeiBoZWFydGJlYXQgc28gaXQncyB2aXNpYmxlIHRoZQogICAgLy8gZmlybXdhcmUgaXMgYWxpdmUgd2l0aG91dCBhIGRlYnVnZ2VyOyB3ZXN0IChMRDQsIGdyZWVuKSA9IHNhdyBwbGF5aW5nLgogICAgbGV0IGNvbXBhc3MgPSBMZWRDb21wYXNzOjpuZXcoZ3Bpb2QucGQxMiwgZ3Bpb2QucGQxMywgZ3Bpb2QucGQxNCwgZ3Bpb2QucGQxNSk7CiAgICBsZXQgbXV0IGhlYXJ0YmVhdCA9IGNvbXBhc3MuczsKICAgIGxldCBtdXQgc2F3X2xlZCA9IGNvbXBhc3MudzsKCiAgICBsZXQgbXV0IGkgPSAwOwogICAgbGV0IG11dCBmcmFtZXM6IHUzMiA9IDA7CiAgICBsZXQgbXV0IG9uID0gZmFsc2U7IC8vIHNpbGVudCBhdCBib290OyBVU0VSIGJ1dHRvbiB0b2dnbGVzIHRoZSBzYXcgb24KICAgIGxldCBtdXQgaG9sZG9mZjogdTMyID0gMDsKICAgIC8vIGxvb3AgewogICAgLy8gICAgIC8vIENvbnN1bWUgYW55IHByZXNzIGZsYWcgZXZlcnkgZnJhbWUgKHNvIGJvdW5jZSBkdXJpbmcgdGhlIGhvbGQtb2ZmCiAgICAvLyAgICAgLy8gd2luZG93IGlzIGRpc2NhcmRlZCksIGFwcGx5IGl0IG9ubHkgb3V0c2lkZSB0aGUgd2luZG93LgogICAgLy8gICAgIGhvbGRvZmYgPSBob2xkb2ZmLnNhdHVyYXRpbmdfc3ViKDEpOwogICAgLy8gICAgIGlmIFRPR0dMRV9SRVEuc3dhcChmYWxzZSwgT3JkZXJpbmc6OkFjcVJlbCkgJiYgaG9sZG9mZiA9PSAwIHsKICAgIC8vICAgICAgICAgb24gPSAhb247CiAgICAvLyAgICAgICAgIGhvbGRvZmYgPSBERUJPVU5DRV9TQU1QTEVTOwogICAgLy8gICAgICAgICBzYXdfbGVkLnNldChvbik7CiAgICAvLyAgICAgICAgIGRlZm10OjppbmZvISgic2F3IHt9IiwgaWYgb24geyAiT04iIH0gZWxzZSB7ICJPRkYiIH0pOwogICAgLy8gICAgIH0KCiAgICAvLyAgICAgbGV0IHNhbXBsZSA9IG1hdGNoIG9uIHsKICAgIC8vICAgICAgICAgdHJ1ZSA9PiBzYXdfc2FtcGxlKGkpLAogICAgLy8gICAgICAgICBmYWxzZSA9PiAwLAogICAgLy8gICAgIH07CiAgICAvLyAgICAgYmxvY2shKHRyYW5zZmVyLndyaXRlKChzYW1wbGUsIHNhbXBsZSkpKS51bndyYXAoKTsKICAgIC8vICAgICBpID0gKGkgKyAxKSAlIFNBTVBMRVNfUEVSX0NZQ0xFOwoKICAgIC8vICAgICBmcmFtZXMgKz0gMTsKICAgIC8vICAgICBpZiBmcmFtZXMgPT0gU0FNUExFX1JBVEVfSFogewogICAgLy8gICAgICAgICBmcmFtZXMgPSAwOwogICAgLy8gICAgICAgICBoZWFydGJlYXQudG9nZ2xlKCk7CiAgICAvLyAgICAgfQogICAgLy8gfQoKICAgIGxvb3AgewogICAgICAgIC8vIFJhbXAgLUFNUExJVFVERSDihpIgK0FNUExJVFVERSBvdmVyIG9uZSBjeWNsZSwgdGhlbiB3cmFwLgogICAgICAgIGxldCBzYW1wbGUgPSAoaSBhcyBpMzIgKiAyICogQU1QTElUVURFIC8gU0FNUExFU19QRVJfQ1lDTEUgYXMgaTMyIC0gQU1QTElUVURFKSBhcyBpMTY7CiAgICAgICAgYmxvY2shKHRyYW5zZmVyLndyaXRlKChzYW1wbGUsIHNhbXBsZSkpKS51bndyYXAoKTsKICAgICAgICBpID0gKGkgKyAxKSAlIFNBTVBMRVNfUEVSX0NZQ0xFOwogICAgfQp9CgojW2ludGVycnVwdF0KZm4gRVhUSTAoKSB7CiAgICBjb3J0ZXhfbTo6aW50ZXJydXB0OjpmcmVlKHxjc3wgewogICAgICAgIGlmIGxldCBTb21lKHBpbikgPSBCVVRUT04uYm9ycm93KGNzKS5ib3Jyb3dfbXV0KCkuYXNfbXV0KCkgewogICAgICAgICAgICBwaW4uY2xlYXJfaW50ZXJydXB0X3BlbmRpbmdfYml0KCk7CiAgICAgICAgfQogICAgfSk7CiAgICBUT0dHTEVfUkVRLnN0b3JlKHRydWUsIE9yZGVyaW5nOjpSZWxlYXNlKTsKfQoAAAAAAAAAAFwYAAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFgMAAAAAAAAWAwAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
405,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAABfGAAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGJ1dHRvbjo6QnV0dG9uLAogICAgY29kZWM6OkNzNDNsMjIsCiAgICBsZWQ6OkxlZENvbXBhc3MsCiAgICBoYWw6OnsKICAgICAgICBncGlvOjp7Z3Bpb2EsIGdwaW9jfSwKICAgICAgICBpMmM6OntJMmMsIE1vZGV9LAogICAgICAgIGkyczo6c3RtMzJfaTJzX3YxMng6OnRyYW5zZmVyOjoqLAogICAgICAgIGkyczo6STJzLAogICAgICAgIG5iOjpibG9jaywKICAgICAgICBwYWMsCiAgICAgICAgcGFjOjppbnRlcnJ1cHQsCiAgICAgICAgcHJlbHVkZTo6KiwKICAgICAgICByY2M6OntDb25maWcsIFJjY30sCiAgICB9LAp9OwoKLy8gLS0tLSB0b25lIC0tLS0KY29uc3QgU0FXX0haOiB1MzIgPSA0MDA7CmNvbnN0IFNBTVBMRV9SQVRFX0haOiB1MzIgPSA0OF8wMDA7CmNvbnN0IFNBTVBMRVNfUEVSX0NZQ0xFOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIFNBV19IWjsgLy8gMTIwCi8vIEZ1bGwtc2NhbGUgaXMgcGFpbmZ1bGx5IGxvdWQgb24gaGVhZHBob25lczsgcnVuIHRoZSBzYXcgYXQgfjEvOCBhbXBsaXR1ZGUuCmNvbnN0IEFNUExJVFVERTogaTMyID0gaTE2OjpNQVggYXMgaTMyIC8gODsKCi8vIC0tLS0gYnV0dG9uIC0tLS0KLy8gQWZ0ZXIgYSB0b2dnbGUsIGlnbm9yZSBmdXJ0aGVyIHByZXNzZXMgZm9yIH4yMCBtcyBvZiBzYW1wbGVzIChib3VuY2UpLgpjb25zdCBERUJPVU5DRV9TQU1QTEVTOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIDUwOwoKLy8vIEJ1dHRvbiwgcGFya2VkIGhlcmUgc28gdGhlIEVYVEkwIGhhbmRsZXIgY2FuIGNsZWFyIGl0cyBwZW5kaW5nIGJpdC4Kc3RhdGljIEJVVFRPTjogTXV0ZXg8UmVmQ2VsbDxPcHRpb248QnV0dG9uPj4+ID0gTXV0ZXg6Om5ldyhSZWZDZWxsOjpuZXcoTm9uZSkpOwovLy8gU2V0IGJ5IEVYVEkwIG9uIGEgcHJlc3MgZWRnZSwgY29uc3VtZWQgYnkgdGhlIGF1ZGlvIGxvb3AuCnN0YXRpYyBUT0dHTEVfUkVROiBBdG9taWNCb29sID0gQXRvbWljQm9vbDo6bmV3KGZhbHNlKTsKCnR5cGUgQXVkaW9PdXQgPSBJMnNUcmFuc2ZlcjxJMnM8cGFjOjpTUEkzPiwgTWFzdGVyLCBUcmFuc21pdCwgUGhpbGlwcywgRGF0YTE2Q2hhbm5lbDE2PjsKCi8vLyBJMlMzIG1hc3RlciB0cmFuc21pdCwgMTYtYml0IHN0ZXJlbywgTUNMSyBvdXQgZm9yIHRoZSBjb2RlYy4KZm4gYXVkaW9fb3V0KAogICAgc3BpOiBwYWM6OlNQSTMsCiAgICBwaW5zOiAoZ3Bpb2E6OlBBNCwgZ3Bpb2M6OlBDMTAsIE9wdGlvbjxncGlvYzo6UEM3PiwgZ3Bpb2M6OlBDMTIpLAogICAgcmNjOiAmbXV0IFJjYywKKSAtPiBBdWRpb091dCB7CiAgICBsZXQgaTJzID0gSTJzOjpuZXcoc3BpLCBwaW5zLCByY2MpOwogICAgbGV0IGNvbmZpZyA9IEkyc1RyYW5zZmVyQ29uZmlnOjpuZXdfbWFzdGVyKCkKICAgICAgICAudHJhbnNtaXQoKQogICAgICAgIC5zdGFuZGFyZChQaGlsaXBzKQogICAgICAgIC5kYXRhX2Zvcm1hdChEYXRhMTZDaGFubmVsMTYpCiAgICAgICAgLm1hc3Rlcl9jbG9jayh0cnVlKQogICAgICAgIC5yZXF1ZXN0X2ZyZXF1ZW5jeShTQU1QTEVfUkFURV9IWik7CiAgICBJMnNUcmFuc2Zlcjo6bmV3KGkycywgY29uZmlnKQp9CgovLy8gU2FtcGxlIGBpYCAob2YgU0FNUExFU19QRVJfQ1lDTEUpIG9mIHRoZSBzYXd0b290aDogYSBsaW5lYXIgcmFtcCBmcm9tCi8vLyAtQU1QTElUVURFIHRvICtBTVBMSVRVREUsIHdyYXBwaW5nIGVhY2ggY3ljbGUuCmZuIHNhd19zYW1wbGUoaTogdTMyKSAtPiBpMTYgewogICAgKGkgYXMgaTMyICogMiAqIEFNUExJVFVERSAvIFNBTVBMRVNfUEVSX0NZQ0xFIGFzIGkzMiAtIEFNUExJVFVERSkgYXMgaTE2Cn0KCiNbZW50cnldCmZuIG1haW4oKSAtPiAhIHsKICAgIGxldCBjcCA9IGNvcnRleF9tOjpQZXJpcGhlcmFsczo6dGFrZSgpLnVud3JhcCgpOwogICAgbGV0IG11dCBwID0gcGFjOjpQZXJpcGhlcmFsczo6dGFrZSgpLnVud3JhcCgpOwoKICAgIC8vIFBMTEkyUyB0dW5lZCB0byA2MS40NCBNSHogc28gNDgga0h6IGRpdmlkZXMgZXhhY3RseSAoNjEuNDQgTUh6IC8gMjU2ZnMgLyA1KS4KICAgIGxldCBtdXQgcmNjID0gcAogICAgICAgIC5SQ0MKICAgICAgICAuZnJlZXplKENvbmZpZzo6aHNpKCkuc3lzY2xrKDk2Lk1IeigpKS5pMnNfY2xrKDYxNDQwLmtIeigpKSk7CiAgICBsZXQgbXV0IGRlbGF5ID0gY3AuU1lTVC5kZWxheSgmcmNjLmNsb2Nrcyk7CgogICAgbGV0IGdwaW9hID0gcC5HUElPQS5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2IgPSBwLkdQSU9CLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvYyA9IHAuR1BJT0Muc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9kID0gcC5HUElPRC5zcGxpdCgmbXV0IHJjYyk7CgogICAgLy8gVVNFUiBidXR0b24gKEIxKTogcmlzaW5nLWVkZ2UgaW50ZXJydXB0IG9uIEVYVEkwLgogICAgbGV0IG11dCBzeXNjZmcgPSBwLlNZU0NGRy5jb25zdHJhaW4oJm11dCByY2MpOwogICAgbGV0IG11dCBidXR0b24gPSBCdXR0b246Om5ldyhncGlvYS5wYTApOwogICAgYnV0dG9uLmxpc3RlbigmbXV0IHN5c2NmZywgJm11dCBwLkVYVEkpOwogICAgY29ydGV4X206OmludGVycnVwdDo6ZnJlZSh8Y3N8IEJVVFRPTi5ib3Jyb3coY3MpLnJlcGxhY2UoU29tZShidXR0b24pKSk7CiAgICB1bnNhZmUgeyBwYWM6Ok5WSUM6OnVubWFzayhwYWM6OkludGVycnVwdDo6RVhUSTApIH07CgogICAgLy8gQ1M0M0wyMiBjb2RlYzogY29udHJvbCBwb3J0ICsgcmVzZXQgdmlhIHRoZSBib2FyZC1zdXBwb3J0IGRyaXZlci4KICAgIGxldCBpMmMgPSBJMmM6Om5ldygKICAgICAgICBwLkkyQzEsCiAgICAgICAgKGdwaW9iLnBiNiwgZ3Bpb2IucGI5KSwKICAgICAgICBNb2RlOjpzdGFuZGFyZCgxMDAua0h6KCkpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKICAgIGxldCBtdXQgY29kZWMgPSBDczQzbDIyOjpuZXcoaTJjLCBncGlvZC5wZDQuaW50b19wdXNoX3B1bGxfb3V0cHV0KCkpOwogICAgbWF0Y2ggY29kZWMuaW5pdCgmbXV0IGRlbGF5KSB7CiAgICAgICAgT2soaWQpID0+IGRlZm10OjppbmZvISgiY29kZWMgdXAsIElEIHJlZyB7PXU4OiMwNHh9IiwgaWQpLAogICAgICAgIEVycihlKSA9PiBkZWZtdDo6ZXJyb3IhKCJjb2RlYyBpbml0IGZhaWxlZDoge30iLCBkZWZtdDo6RGVidWcyRm9ybWF0KCZlKSksCiAgICB9CgogICAgbGV0IG11dCB0cmFuc2ZlciA9IGF1ZGlvX291dCgKICAgICAgICBwLlNQSTMsCiAgICAgICAgKGdwaW9hLnBhNCwgZ3Bpb2MucGMxMCwgU29tZShncGlvYy5wYzcpLCBncGlvYy5wYzEyKSwKICAgICAgICAmbXV0IHJjYywKICAgICk7CgogICAgZGVmbXQ6OmluZm8hKAogICAgICAgICJzYXc6IHt9IEh6LCBzYW1wbGUgcmF0ZSB7fSBIeiAoe30gc2FtcGxlcy9jeWNsZSkiLAogICAgICAgIFNBV19IWiwKICAgICAgICB0cmFuc2Zlci5zYW1wbGVfcmF0ZSgpLAogICAgICAgIFNBTVBMRVNfUEVSX0NZQ0xFCiAgICApOwoKICAgIC8vIE9uLWJvYXJkIExFRHM6IHNvdXRoIChMRDYsIGJsdWUpID0gMSBIeiBoZWFydGJlYXQgc28gaXQncyB2aXNpYmxlIHRoZQogICAgLy8gZmlybXdhcmUgaXMgYWxpdmUgd2l0aG91dCBhIGRlYnVnZ2VyOyB3ZXN0IChMRDQsIGdyZWVuKSA9IHNhdyBwbGF5aW5nLgogICAgbGV0IGNvbXBhc3MgPSBMZWRDb21wYXNzOjpuZXcoZ3Bpb2QucGQxMiwgZ3Bpb2QucGQxMywgZ3Bpb2QucGQxNCwgZ3Bpb2QucGQxNSk7CiAgICBsZXQgbXV0IGhlYXJ0YmVhdCA9IGNvbXBhc3MuczsKICAgIGxldCBtdXQgc2F3X2xlZCA9IGNvbXBhc3MudzsKCiAgICBsZXQgbXV0IGkgPSAwOwogICAgbGV0IG11dCBmcmFtZXM6IHUzMiA9IDA7CiAgICBsZXQgbXV0IG9uID0gZmFsc2U7IC8vIHNpbGVudCBhdCBib290OyBVU0VSIGJ1dHRvbiB0b2dnbGVzIHRoZSBzYXcgb24KICAgIGxldCBtdXQgaG9sZG9mZjogdTMyID0gMDsKICAgIC8vIGxvb3AgewogICAgLy8gICAgIC8vIENvbnN1bWUgYW55IHByZXNzIGZsYWcgZXZlcnkgZnJhbWUgKHNvIGJvdW5jZSBkdXJpbmcgdGhlIGhvbGQtb2ZmCiAgICAvLyAgICAgLy8gd2luZG93IGlzIGRpc2NhcmRlZCksIGFwcGx5IGl0IG9ubHkgb3V0c2lkZSB0aGUgd2luZG93LgogICAgLy8gICAgIGhvbGRvZmYgPSBob2xkb2ZmLnNhdHVyYXRpbmdfc3ViKDEpOwogICAgLy8gICAgIGlmIFRPR0dMRV9SRVEuc3dhcChmYWxzZSwgT3JkZXJpbmc6OkFjcVJlbCkgJiYgaG9sZG9mZiA9PSAwIHsKICAgIC8vICAgICAgICAgb24gPSAhb247CiAgICAvLyAgICAgICAgIGhvbGRvZmYgPSBERUJPVU5DRV9TQU1QTEVTOwogICAgLy8gICAgICAgICBzYXdfbGVkLnNldChvbik7CiAgICAvLyAgICAgICAgIGRlZm10OjppbmZvISgic2F3IHt9IiwgaWYgb24geyAiT04iIH0gZWxzZSB7ICJPRkYiIH0pOwogICAgLy8gICAgIH0KCiAgICAvLyAgICAgbGV0IHNhbXBsZSA9IG1hdGNoIG9uIHsKICAgIC8vICAgICAgICAgdHJ1ZSA9PiBzYXdfc2FtcGxlKGkpLAogICAgLy8gICAgICAgICBmYWxzZSA9PiAwLAogICAgLy8gICAgIH07CiAgICAvLyAgICAgYmxvY2shKHRyYW5zZmVyLndyaXRlKChzYW1wbGUsIHNhbXBsZSkpKS51bndyYXAoKTsKICAgIC8vICAgICBpID0gKGkgKyAxKSAlIFNBTVBMRVNfUEVSX0NZQ0xFOwoKICAgIC8vICAgICBmcmFtZXMgKz0gMTsKICAgIC8vICAgICBpZiBmcmFtZXMgPT0gU0FNUExFX1JBVEVfSFogewogICAgLy8gICAgICAgICBmcmFtZXMgPSAwOwogICAgLy8gICAgICAgICBoZWFydGJlYXQudG9nZ2xlKCk7CiAgICAvLyAgICAgfQogICAgLy8gfQoKICAgIGxvb3AgewogICAgICAgIC8vIFJhbXAgLUFNUExJVFVERSDihpIgK0FNUExJVFVERSBvdmVyIG9uZSBjeWNsZSwgdGhlbiB3cmFwLgogICAgICAgIGxldCBzYW1wbGUgPSAoaSBhcyBpMzIgKiAyICogQU1QTElUVURFIC8gU0FNUExFU19QRVJfQ1lDTEUgYXMgaTMyIC0gQU1QTElUVURFKSBhcyBpMTY7CiAgICAgICAgYmxvY2shKHRyYW5zZmVyLndyaXRlKChzYW1wbGUsIHNhbXBsZSkpKS51bndyYXAoKTsKICAgICAgICBpID0gKGkgKyAxKSAlIFNBTVBMRVNfUEVSX0NZQ0xFOwogICAgfQp9CgojW2ludGVycnVwdF0KZm4gRVhUSTAoKSB7CiAgICBjb3J0ZXhfbTo6aW50ZXJydXB0OjpmcmVlKHxjc3wgewogICAgICAgIGlmIGxldCBTb21lKGJ1dHRvbikgPSBCVVRUT04uYm9ycm93KGNzKS5ib3Jyb3dfbXV0KCkuYXNfbXV0KCkgewogICAgICAgICAgICBidXR0b24uY2xlYXJfaW50ZXJydXB0KCk7CiAgICAgICAgfQogICAgfSk7CiAgICBUT0dHTEVfUkVRLnN0b3JlKHRydWUsIE9yZGVyaW5nOjpSZWxlYXNlKTsKfQoAAAAAAAAAAG0YAAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFgMAAAAAAAAWAwAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
428,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAABwGAAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGJ1dHRvbjo6e0J1dHRvbiwgQnV0dG9uc30sCiAgICBjb2RlYzo6Q3M0M2wyMiwKICAgIGxlZDo6TGVkQ29tcGFzcywKICAgIGhhbDo6ewogICAgICAgIGdwaW86OntncGlvYSwgZ3Bpb2N9LAogICAgICAgIGkyYzo6e0kyYywgTW9kZX0sCiAgICAgICAgaTJzOjpzdG0zMl9pMnNfdjEyeDo6dHJhbnNmZXI6OiosCiAgICAgICAgaTJzOjpJMnMsCiAgICAgICAgbmI6OmJsb2NrLAogICAgICAgIHBhYywKICAgICAgICBwYWM6OmludGVycnVwdCwKICAgICAgICBwcmVsdWRlOjoqLAogICAgICAgIHJjYzo6e0NvbmZpZywgUmNjfSwKICAgIH0sCn07CgovLyAtLS0tIHRvbmUgLS0tLQpjb25zdCBTQVdfSFo6IHUzMiA9IDQwMDsKY29uc3QgU0FNUExFX1JBVEVfSFo6IHUzMiA9IDQ4XzAwMDsKY29uc3QgU0FNUExFU19QRVJfQ1lDTEU6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gU0FXX0haOyAvLyAxMjAKLy8gRnVsbC1zY2FsZSBpcyBwYWluZnVsbHkgbG91ZCBvbiBoZWFkcGhvbmVzOyBydW4gdGhlIHNhdyBhdCB+MS84IGFtcGxpdHVkZS4KY29uc3QgQU1QTElUVURFOiBpMzIgPSBpMTY6Ok1BWCBhcyBpMzIgLyA4OwoKLy8gLS0tLSBidXR0b24gLS0tLQovLyBBZnRlciBhIHRvZ2dsZSwgaWdub3JlIGZ1cnRoZXIgcHJlc3NlcyBmb3IgfjIwIG1zIG9mIHNhbXBsZXMgKGJvdW5jZSkuCmNvbnN0IERFQk9VTkNFX1NBTVBMRVM6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gNTA7CgovLy8gQnV0dG9uLCBwYXJrZWQgaGVyZSBzbyB0aGUgRVhUSTAgaGFuZGxlciBjYW4gY2xlYXIgaXRzIHBlbmRpbmcgYml0LgpzdGF0aWMgQlVUVE9OOiBNdXRleDxSZWZDZWxsPE9wdGlvbjxCdXR0b24+Pj4gPSBNdXRleDo6bmV3KFJlZkNlbGw6Om5ldyhOb25lKSk7Ci8vLyBTZXQgYnkgRVhUSTAgb24gYSBwcmVzcyBlZGdlLCBjb25zdW1lZCBieSB0aGUgYXVkaW8gbG9vcC4Kc3RhdGljIFRPR0dMRV9SRVE6IEF0b21pY0Jvb2wgPSBBdG9taWNCb29sOjpuZXcoZmFsc2UpOwoKdHlwZSBBdWRpb091dCA9IEkyc1RyYW5zZmVyPEkyczxwYWM6OlNQSTM+LCBNYXN0ZXIsIFRyYW5zbWl0LCBQaGlsaXBzLCBEYXRhMTZDaGFubmVsMTY+OwoKLy8vIEkyUzMgbWFzdGVyIHRyYW5zbWl0LCAxNi1iaXQgc3RlcmVvLCBNQ0xLIG91dCBmb3IgdGhlIGNvZGVjLgpmbiBhdWRpb19vdXQoCiAgICBzcGk6IHBhYzo6U1BJMywKICAgIHBpbnM6IChncGlvYTo6UEE0LCBncGlvYzo6UEMxMCwgT3B0aW9uPGdwaW9jOjpQQzc+LCBncGlvYzo6UEMxMiksCiAgICByY2M6ICZtdXQgUmNjLAopIC0+IEF1ZGlvT3V0IHsKICAgIGxldCBpMnMgPSBJMnM6Om5ldyhzcGksIHBpbnMsIHJjYyk7CiAgICBsZXQgY29uZmlnID0gSTJzVHJhbnNmZXJDb25maWc6Om5ld19tYXN0ZXIoKQogICAgICAgIC50cmFuc21pdCgpCiAgICAgICAgLnN0YW5kYXJkKFBoaWxpcHMpCiAgICAgICAgLmRhdGFfZm9ybWF0KERhdGExNkNoYW5uZWwxNikKICAgICAgICAubWFzdGVyX2Nsb2NrKHRydWUpCiAgICAgICAgLnJlcXVlc3RfZnJlcXVlbmN5KFNBTVBMRV9SQVRFX0haKTsKICAgIEkyc1RyYW5zZmVyOjpuZXcoaTJzLCBjb25maWcpCn0KCi8vLyBTYW1wbGUgYGlgIChvZiBTQU1QTEVTX1BFUl9DWUNMRSkgb2YgdGhlIHNhd3Rvb3RoOiBhIGxpbmVhciByYW1wIGZyb20KLy8vIC1BTVBMSVRVREUgdG8gK0FNUExJVFVERSwgd3JhcHBpbmcgZWFjaCBjeWNsZS4KZm4gc2F3X3NhbXBsZShpOiB1MzIpIC0+IGkxNiB7CiAgICAoaSBhcyBpMzIgKiAyICogQU1QTElUVURFIC8gU0FNUExFU19QRVJfQ1lDTEUgYXMgaTMyIC0gQU1QTElUVURFKSBhcyBpMTYKfQoKI1tlbnRyeV0KZm4gbWFpbigpIC0+ICEgewogICAgbGV0IGNwID0gY29ydGV4X206OlBlcmlwaGVyYWxzOjp0YWtlKCkudW53cmFwKCk7CiAgICBsZXQgbXV0IHAgPSBwYWM6OlBlcmlwaGVyYWxzOjp0YWtlKCkudW53cmFwKCk7CgogICAgLy8gUExMSTJTIHR1bmVkIHRvIDYxLjQ0IE1IeiBzbyA0OCBrSHogZGl2aWRlcyBleGFjdGx5ICg2MS40NCBNSHogLyAyNTZmcyAvIDUpLgogICAgbGV0IG11dCByY2MgPSBwCiAgICAgICAgLlJDQwogICAgICAgIC5mcmVlemUoQ29uZmlnOjpoc2koKS5zeXNjbGsoOTYuTUh6KCkpLmkyc19jbGsoNjE0NDAua0h6KCkpKTsKICAgIGxldCBtdXQgZGVsYXkgPSBjcC5TWVNULmRlbGF5KCZyY2MuY2xvY2tzKTsKCiAgICBsZXQgZ3Bpb2EgPSBwLkdQSU9BLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvYiA9IHAuR1BJT0Iuc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9jID0gcC5HUElPQy5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2QgPSBwLkdQSU9ELnNwbGl0KCZtdXQgcmNjKTsKCiAgICAvLyBVU0VSIGJ1dHRvbiAoQjEpOiByaXNpbmctZWRnZSBpbnRlcnJ1cHQgb24gRVhUSTAuCiAgICBsZXQgbXV0IHN5c2NmZyA9IHAuU1lTQ0ZHLmNvbnN0cmFpbigmbXV0IHJjYyk7CiAgICBsZXQgbXV0IGJ1dHRvbiA9IEJ1dHRvbnM6Om5ldyhncGlvYS5wYTApLnVzZXI7CiAgICBidXR0b24ubGlzdGVuKCZtdXQgc3lzY2ZnLCAmbXV0IHAuRVhUSSk7CiAgICBjb3J0ZXhfbTo6aW50ZXJydXB0OjpmcmVlKHxjc3wgQlVUVE9OLmJvcnJvdyhjcykucmVwbGFjZShTb21lKGJ1dHRvbikpKTsKICAgIHVuc2FmZSB7IHBhYzo6TlZJQzo6dW5tYXNrKHBhYzo6SW50ZXJydXB0OjpFWFRJMCkgfTsKCiAgICAvLyBDUzQzTDIyIGNvZGVjOiBjb250cm9sIHBvcnQgKyByZXNldCB2aWEgdGhlIGJvYXJkLXN1cHBvcnQgZHJpdmVyLgogICAgbGV0IGkyYyA9IEkyYzo6bmV3KAogICAgICAgIHAuSTJDMSwKICAgICAgICAoZ3Bpb2IucGI2LCBncGlvYi5wYjkpLAogICAgICAgIE1vZGU6OnN0YW5kYXJkKDEwMC5rSHooKSksCiAgICAgICAgJm11dCByY2MsCiAgICApOwogICAgbGV0IG11dCBjb2RlYyA9IENzNDNsMjI6Om5ldyhpMmMsIGdwaW9kLnBkNC5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKSk7CiAgICBtYXRjaCBjb2RlYy5pbml0KCZtdXQgZGVsYXkpIHsKICAgICAgICBPayhpZCkgPT4gZGVmbXQ6OmluZm8hKCJjb2RlYyB1cCwgSUQgcmVnIHs9dTg6IzA0eH0iLCBpZCksCiAgICAgICAgRXJyKGUpID0+IGRlZm10OjplcnJvciEoImNvZGVjIGluaXQgZmFpbGVkOiB7fSIsIGRlZm10OjpEZWJ1ZzJGb3JtYXQoJmUpKSwKICAgIH0KCiAgICBsZXQgbXV0IHRyYW5zZmVyID0gYXVkaW9fb3V0KAogICAgICAgIHAuU1BJMywKICAgICAgICAoZ3Bpb2EucGE0LCBncGlvYy5wYzEwLCBTb21lKGdwaW9jLnBjNyksIGdwaW9jLnBjMTIpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKCiAgICBkZWZtdDo6aW5mbyEoCiAgICAgICAgInNhdzoge30gSHosIHNhbXBsZSByYXRlIHt9IEh6ICh7fSBzYW1wbGVzL2N5Y2xlKSIsCiAgICAgICAgU0FXX0haLAogICAgICAgIHRyYW5zZmVyLnNhbXBsZV9yYXRlKCksCiAgICAgICAgU0FNUExFU19QRVJfQ1lDTEUKICAgICk7CgogICAgLy8gT24tYm9hcmQgTEVEczogc291dGggKExENiwgYmx1ZSkgPSAxIEh6IGhlYXJ0YmVhdCBzbyBpdCdzIHZpc2libGUgdGhlCiAgICAvLyBmaXJtd2FyZSBpcyBhbGl2ZSB3aXRob3V0IGEgZGVidWdnZXI7IHdlc3QgKExENCwgZ3JlZW4pID0gc2F3IHBsYXlpbmcuCiAgICBsZXQgY29tcGFzcyA9IExlZENvbXBhc3M6Om5ldyhncGlvZC5wZDEyLCBncGlvZC5wZDEzLCBncGlvZC5wZDE0LCBncGlvZC5wZDE1KTsKICAgIGxldCBtdXQgaGVhcnRiZWF0ID0gY29tcGFzcy5zOwogICAgbGV0IG11dCBzYXdfbGVkID0gY29tcGFzcy53OwoKICAgIGxldCBtdXQgaSA9IDA7CiAgICBsZXQgbXV0IGZyYW1lczogdTMyID0gMDsKICAgIGxldCBtdXQgb24gPSBmYWxzZTsgLy8gc2lsZW50IGF0IGJvb3Q7IFVTRVIgYnV0dG9uIHRvZ2dsZXMgdGhlIHNhdyBvbgogICAgbGV0IG11dCBob2xkb2ZmOiB1MzIgPSAwOwogICAgLy8gbG9vcCB7CiAgICAvLyAgICAgLy8gQ29uc3VtZSBhbnkgcHJlc3MgZmxhZyBldmVyeSBmcmFtZSAoc28gYm91bmNlIGR1cmluZyB0aGUgaG9sZC1vZmYKICAgIC8vICAgICAvLyB3aW5kb3cgaXMgZGlzY2FyZGVkKSwgYXBwbHkgaXQgb25seSBvdXRzaWRlIHRoZSB3aW5kb3cuCiAgICAvLyAgICAgaG9sZG9mZiA9IGhvbGRvZmYuc2F0dXJhdGluZ19zdWIoMSk7CiAgICAvLyAgICAgaWYgVE9HR0xFX1JFUS5zd2FwKGZhbHNlLCBPcmRlcmluZzo6QWNxUmVsKSAmJiBob2xkb2ZmID09IDAgewogICAgLy8gICAgICAgICBvbiA9ICFvbjsKICAgIC8vICAgICAgICAgaG9sZG9mZiA9IERFQk9VTkNFX1NBTVBMRVM7CiAgICAvLyAgICAgICAgIHNhd19sZWQuc2V0KG9uKTsKICAgIC8vICAgICAgICAgZGVmbXQ6OmluZm8hKCJzYXcge30iLCBpZiBvbiB7ICJPTiIgfSBlbHNlIHsgIk9GRiIgfSk7CiAgICAvLyAgICAgfQoKICAgIC8vICAgICBsZXQgc2FtcGxlID0gbWF0Y2ggb24gewogICAgLy8gICAgICAgICB0cnVlID0+IHNhd19zYW1wbGUoaSksCiAgICAvLyAgICAgICAgIGZhbHNlID0+IDAsCiAgICAvLyAgICAgfTsKICAgIC8vICAgICBibG9jayEodHJhbnNmZXIud3JpdGUoKHNhbXBsZSwgc2FtcGxlKSkpLnVud3JhcCgpOwogICAgLy8gICAgIGkgPSAoaSArIDEpICUgU0FNUExFU19QRVJfQ1lDTEU7CgogICAgLy8gICAgIGZyYW1lcyArPSAxOwogICAgLy8gICAgIGlmIGZyYW1lcyA9PSBTQU1QTEVfUkFURV9IWiB7CiAgICAvLyAgICAgICAgIGZyYW1lcyA9IDA7CiAgICAvLyAgICAgICAgIGhlYXJ0YmVhdC50b2dnbGUoKTsKICAgIC8vICAgICB9CiAgICAvLyB9CgogICAgbG9vcCB7CiAgICAgICAgLy8gUmFtcCAtQU1QTElUVURFIOKGkiArQU1QTElUVURFIG92ZXIgb25lIGN5Y2xlLCB0aGVuIHdyYXAuCiAgICAgICAgbGV0IHNhbXBsZSA9IChpIGFzIGkzMiAqIDIgKiBBTVBMSVRVREUgLyBTQU1QTEVTX1BFUl9DWUNMRSBhcyBpMzIgLSBBTVBMSVRVREUpIGFzIGkxNjsKICAgICAgICBibG9jayEodHJhbnNmZXIud3JpdGUoKHNhbXBsZSwgc2FtcGxlKSkpLnVud3JhcCgpOwogICAgICAgIGkgPSAoaSArIDEpICUgU0FNUExFU19QRVJfQ1lDTEU7CiAgICB9Cn0KCiNbaW50ZXJydXB0XQpmbiBFWFRJMCgpIHsKICAgIGNvcnRleF9tOjppbnRlcnJ1cHQ6OmZyZWUofGNzfCB7CiAgICAgICAgaWYgbGV0IFNvbWUoYnV0dG9uKSA9IEJVVFRPTi5ib3Jyb3coY3MpLmJvcnJvd19tdXQoKS5hc19tdXQoKSB7CiAgICAgICAgICAgIGJ1dHRvbi5jbGVhcl9pbnRlcnJ1cHQoKTsKICAgICAgICB9CiAgICB9KTsKICAgIFRPR0dMRV9SRVEuc3RvcmUodHJ1ZSwgT3JkZXJpbmc6OlJlbGVhc2UpOwp9CgAAAAAAAAAANBgAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAEPAAAAAAAAAQ8AAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
434,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAAA3GAAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZSB2aWEgRVhUSTA6IHRoZQovLyEgaW50ZXJydXB0IG9ubHkgc2V0cyBhIGZsYWcsIHRoZSBhdWRpbyBsb29wIGFwcGxpZXMgaXQgKHdpdGggYSBkZWJvdW5jZQovLyEgaG9sZC1vZmYpLCBzbyBubyBHUElPIHBvbGxpbmcgb3IgSTJDIHRyYWZmaWMgaGFwcGVucyBpbiB0aGUgc2FtcGxlIHBhdGguCi8vISBXaGlsZSBvZmYsIHNpbGVuY2UgaXMgc3RyZWFtZWQgc28gdGhlIGNvZGVjIGtlZXBzIGl0cyBjbG9ja3MuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3JlOjpjZWxsOjpSZWZDZWxsOwp1c2UgY29yZTo6c3luYzo6YXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9OwoKdXNlIGNvcnRleF9tOjppbnRlcnJ1cHQ6Ok11dGV4Owp1c2UgY29ydGV4X21fcnQ6OmVudHJ5OwovLyB0aGUgSEFMIGlzIHJlLWV4cG9ydGVkIGJ5IHRoZSBmNDExIGJvYXJkLXN1cHBvcnQgY3JhdGUgYXMgYGY0MTE6OmhhbGAKdXNlIGY0MTE6OnsKICAgIGJ1dHRvbjo6e0J1dHRvbiwgQnV0dG9uc30sCiAgICBjb2RlYzo6Q3M0M2wyMiwKICAgIGxlZDo6TGVkQ29tcGFzcywKICAgIGhhbDo6ewogICAgICAgIGdwaW86OntncGlvYSwgZ3Bpb2N9LAogICAgICAgIGkyYzo6e0kyYywgTW9kZX0sCiAgICAgICAgaTJzOjpzdG0zMl9pMnNfdjEyeDo6dHJhbnNmZXI6OiosCiAgICAgICAgaTJzOjpJMnMsCiAgICAgICAgbmI6OmJsb2NrLAogICAgICAgIHBhYywKICAgICAgICBwYWM6OmludGVycnVwdCwKICAgICAgICBwcmVsdWRlOjoqLAogICAgICAgIHJjYzo6e0NvbmZpZywgUmNjfSwKICAgIH0sCn07CgovLyAtLS0tIHRvbmUgLS0tLQpjb25zdCBTQVdfSFo6IHUzMiA9IDQwMDsKY29uc3QgU0FNUExFX1JBVEVfSFo6IHUzMiA9IDQ4XzAwMDsKY29uc3QgU0FNUExFU19QRVJfQ1lDTEU6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gU0FXX0haOyAvLyAxMjAKLy8gRnVsbC1zY2FsZSBpcyBwYWluZnVsbHkgbG91ZCBvbiBoZWFkcGhvbmVzOyBydW4gdGhlIHNhdyBhdCB+MS84IGFtcGxpdHVkZS4KY29uc3QgQU1QTElUVURFOiBpMzIgPSBpMTY6Ok1BWCBhcyBpMzIgLyA4OwoKLy8gLS0tLSBidXR0b24gLS0tLQovLyBBZnRlciBhIHRvZ2dsZSwgaWdub3JlIGZ1cnRoZXIgcHJlc3NlcyBmb3IgfjIwIG1zIG9mIHNhbXBsZXMgKGJvdW5jZSkuCmNvbnN0IERFQk9VTkNFX1NBTVBMRVM6IHUzMiA9IFNBTVBMRV9SQVRFX0haIC8gNTA7CgovLy8gQnV0dG9uLCBwYXJrZWQgaGVyZSBzbyB0aGUgRVhUSTAgaGFuZGxlciBjYW4gY2xlYXIgaXRzIHBlbmRpbmcgYml0LgpzdGF0aWMgQlVUVE9OOiBNdXRleDxSZWZDZWxsPE9wdGlvbjxCdXR0b24+Pj4gPSBNdXRleDo6bmV3KFJlZkNlbGw6Om5ldyhOb25lKSk7Ci8vLyBTZXQgYnkgRVhUSTAgb24gYSBwcmVzcyBlZGdlLCBjb25zdW1lZCBieSB0aGUgYXVkaW8gbG9vcC4Kc3RhdGljIFRPR0dMRV9SRVE6IEF0b21pY0Jvb2wgPSBBdG9taWNCb29sOjpuZXcoZmFsc2UpOwoKdHlwZSBBdWRpb091dCA9IEkyc1RyYW5zZmVyPEkyczxwYWM6OlNQSTM+LCBNYXN0ZXIsIFRyYW5zbWl0LCBQaGlsaXBzLCBEYXRhMTZDaGFubmVsMTY+OwoKLy8vIEkyUzMgbWFzdGVyIHRyYW5zbWl0LCAxNi1iaXQgc3RlcmVvLCBNQ0xLIG91dCBmb3IgdGhlIGNvZGVjLgpmbiBhdWRpb19vdXQoCiAgICBzcGk6IHBhYzo6U1BJMywKICAgIHBpbnM6IChncGlvYTo6UEE0LCBncGlvYzo6UEMxMCwgT3B0aW9uPGdwaW9jOjpQQzc+LCBncGlvYzo6UEMxMiksCiAgICByY2M6ICZtdXQgUmNjLAopIC0+IEF1ZGlvT3V0IHsKICAgIGxldCBpMnMgPSBJMnM6Om5ldyhzcGksIHBpbnMsIHJjYyk7CiAgICBsZXQgY29uZmlnID0gSTJzVHJhbnNmZXJDb25maWc6Om5ld19tYXN0ZXIoKQogICAgICAgIC50cmFuc21pdCgpCiAgICAgICAgLnN0YW5kYXJkKFBoaWxpcHMpCiAgICAgICAgLmRhdGFfZm9ybWF0KERhdGExNkNoYW5uZWwxNikKICAgICAgICAubWFzdGVyX2Nsb2NrKHRydWUpCiAgICAgICAgLnJlcXVlc3RfZnJlcXVlbmN5KFNBTVBMRV9SQVRFX0haKTsKICAgIEkyc1RyYW5zZmVyOjpuZXcoaTJzLCBjb25maWcpCn0KCi8vLyBTYW1wbGUgYGlgIChvZiBTQU1QTEVTX1BFUl9DWUNMRSkgb2YgdGhlIHNhd3Rvb3RoOiBhIGxpbmVhciByYW1wIGZyb20KLy8vIC1BTVBMSVRVREUgdG8gK0FNUExJVFVERSwgd3JhcHBpbmcgZWFjaCBjeWNsZS4KZm4gc2F3X3NhbXBsZShpOiB1MzIpIC0+IGkxNiB7CiAgICAoaSBhcyBpMzIgKiAyICogQU1QTElUVURFIC8gU0FNUExFU19QRVJfQ1lDTEUgYXMgaTMyIC0gQU1QTElUVURFKSBhcyBpMTYKfQoKI1tlbnRyeV0KZm4gbWFpbigpIC0+ICEgewogICAgbGV0IGNwID0gY29ydGV4X206OlBlcmlwaGVyYWxzOjp0YWtlKCkudW53cmFwKCk7CiAgICBsZXQgbXV0IHAgPSBwYWM6OlBlcmlwaGVyYWxzOjp0YWtlKCkudW53cmFwKCk7CgogICAgLy8gUExMSTJTIHR1bmVkIHRvIDYxLjQ0IE1IeiBzbyA0OCBrSHogZGl2aWRlcyBleGFjdGx5ICg2MS40NCBNSHogLyAyNTZmcyAvIDUpLgogICAgbGV0IG11dCByY2MgPSBwCiAgICAgICAgLlJDQwogICAgICAgIC5mcmVlemUoQ29uZmlnOjpoc2koKS5zeXNjbGsoOTYuTUh6KCkpLmkyc19jbGsoNjE0NDAua0h6KCkpKTsKICAgIGxldCBtdXQgZGVsYXkgPSBjcC5TWVNULmRlbGF5KCZyY2MuY2xvY2tzKTsKCiAgICBsZXQgZ3Bpb2EgPSBwLkdQSU9BLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvYiA9IHAuR1BJT0Iuc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9jID0gcC5HUElPQy5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2QgPSBwLkdQSU9ELnNwbGl0KCZtdXQgcmNjKTsKCiAgICAvLyBVU0VSIGJ1dHRvbiAoQjEpOiByaXNpbmctZWRnZSBpbnRlcnJ1cHQgb24gRVhUSTAuCiAgICBsZXQgbXV0IHN5c2NmZyA9IHAuU1lTQ0ZHLmNvbnN0cmFpbigmbXV0IHJjYyk7CiAgICBsZXQgbXV0IGJ1dHRvbiA9IEJ1dHRvbnM6Om5ldyhncGlvYS5wYTApLnVzZXI7CiAgICBidXR0b24ubGlzdGVuKCZtdXQgc3lzY2ZnLCAmbXV0IHAuRVhUSSk7CiAgICBjb3J0ZXhfbTo6aW50ZXJydXB0OjpmcmVlKHxjc3wgQlVUVE9OLmJvcnJvdyhjcykucmVwbGFjZShTb21lKGJ1dHRvbikpKTsKCiAgICAvLyBDUzQzTDIyIGNvZGVjOiBjb250cm9sIHBvcnQgKyByZXNldCB2aWEgdGhlIGJvYXJkLXN1cHBvcnQgZHJpdmVyLgogICAgbGV0IGkyYyA9IEkyYzo6bmV3KAogICAgICAgIHAuSTJDMSwKICAgICAgICAoZ3Bpb2IucGI2LCBncGlvYi5wYjkpLAogICAgICAgIE1vZGU6OnN0YW5kYXJkKDEwMC5rSHooKSksCiAgICAgICAgJm11dCByY2MsCiAgICApOwogICAgbGV0IG11dCBjb2RlYyA9IENzNDNsMjI6Om5ldyhpMmMsIGdwaW9kLnBkNC5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKSk7CiAgICBtYXRjaCBjb2RlYy5pbml0KCZtdXQgZGVsYXkpIHsKICAgICAgICBPayhpZCkgPT4gZGVmbXQ6OmluZm8hKCJjb2RlYyB1cCwgSUQgcmVnIHs9dTg6IzA0eH0iLCBpZCksCiAgICAgICAgRXJyKGUpID0+IGRlZm10OjplcnJvciEoImNvZGVjIGluaXQgZmFpbGVkOiB7fSIsIGRlZm10OjpEZWJ1ZzJGb3JtYXQoJmUpKSwKICAgIH0KCiAgICBsZXQgbXV0IHRyYW5zZmVyID0gYXVkaW9fb3V0KAogICAgICAgIHAuU1BJMywKICAgICAgICAoZ3Bpb2EucGE0LCBncGlvYy5wYzEwLCBTb21lKGdwaW9jLnBjNyksIGdwaW9jLnBjMTIpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKCiAgICBkZWZtdDo6aW5mbyEoCiAgICAgICAgInNhdzoge30gSHosIHNhbXBsZSByYXRlIHt9IEh6ICh7fSBzYW1wbGVzL2N5Y2xlKSIsCiAgICAgICAgU0FXX0haLAogICAgICAgIHRyYW5zZmVyLnNhbXBsZV9yYXRlKCksCiAgICAgICAgU0FNUExFU19QRVJfQ1lDTEUKICAgICk7CgogICAgLy8gT24tYm9hcmQgTEVEczogc291dGggKExENiwgYmx1ZSkgPSAxIEh6IGhlYXJ0YmVhdCBzbyBpdCdzIHZpc2libGUgdGhlCiAgICAvLyBmaXJtd2FyZSBpcyBhbGl2ZSB3aXRob3V0IGEgZGVidWdnZXI7IHdlc3QgKExENCwgZ3JlZW4pID0gc2F3IHBsYXlpbmcuCiAgICBsZXQgY29tcGFzcyA9IExlZENvbXBhc3M6Om5ldyhncGlvZC5wZDEyLCBncGlvZC5wZDEzLCBncGlvZC5wZDE0LCBncGlvZC5wZDE1KTsKICAgIGxldCBtdXQgaGVhcnRiZWF0ID0gY29tcGFzcy5zOwogICAgbGV0IG11dCBzYXdfbGVkID0gY29tcGFzcy53OwoKICAgIGxldCBtdXQgaSA9IDA7CiAgICBsZXQgbXV0IGZyYW1lczogdTMyID0gMDsKICAgIGxldCBtdXQgb24gPSBmYWxzZTsgLy8gc2lsZW50IGF0IGJvb3Q7IFVTRVIgYnV0dG9uIHRvZ2dsZXMgdGhlIHNhdyBvbgogICAgbGV0IG11dCBob2xkb2ZmOiB1MzIgPSAwOwogICAgLy8gbG9vcCB7CiAgICAvLyAgICAgLy8gQ29uc3VtZSBhbnkgcHJlc3MgZmxhZyBldmVyeSBmcmFtZSAoc28gYm91bmNlIGR1cmluZyB0aGUgaG9sZC1vZmYKICAgIC8vICAgICAvLyB3aW5kb3cgaXMgZGlzY2FyZGVkKSwgYXBwbHkgaXQgb25seSBvdXRzaWRlIHRoZSB3aW5kb3cuCiAgICAvLyAgICAgaG9sZG9mZiA9IGhvbGRvZmYuc2F0dXJhdGluZ19zdWIoMSk7CiAgICAvLyAgICAgaWYgVE9HR0xFX1JFUS5zd2FwKGZhbHNlLCBPcmRlcmluZzo6QWNxUmVsKSAmJiBob2xkb2ZmID09IDAgewogICAgLy8gICAgICAgICBvbiA9ICFvbjsKICAgIC8vICAgICAgICAgaG9sZG9mZiA9IERFQk9VTkNFX1NBTVBMRVM7CiAgICAvLyAgICAgICAgIHNhd19sZWQuc2V0KG9uKTsKICAgIC8vICAgICAgICAgZGVmbXQ6OmluZm8hKCJzYXcge30iLCBpZiBvbiB7ICJPTiIgfSBlbHNlIHsgIk9GRiIgfSk7CiAgICAvLyAgICAgfQoKICAgIC8vICAgICBsZXQgc2FtcGxlID0gbWF0Y2ggb24gewogICAgLy8gICAgICAgICB0cnVlID0+IHNhd19zYW1wbGUoaSksCiAgICAvLyAgICAgICAgIGZhbHNlID0+IDAsCiAgICAvLyAgICAgfTsKICAgIC8vICAgICBibG9jayEodHJhbnNmZXIud3JpdGUoKHNhbXBsZSwgc2FtcGxlKSkpLnVud3JhcCgpOwogICAgLy8gICAgIGkgPSAoaSArIDEpICUgU0FNUExFU19QRVJfQ1lDTEU7CgogICAgLy8gICAgIGZyYW1lcyArPSAxOwogICAgLy8gICAgIGlmIGZyYW1lcyA9PSBTQU1QTEVfUkFURV9IWiB7CiAgICAvLyAgICAgICAgIGZyYW1lcyA9IDA7CiAgICAvLyAgICAgICAgIGhlYXJ0YmVhdC50b2dnbGUoKTsKICAgIC8vICAgICB9CiAgICAvLyB9CgogICAgbG9vcCB7CiAgICAgICAgLy8gUmFtcCAtQU1QTElUVURFIOKGkiArQU1QTElUVURFIG92ZXIgb25lIGN5Y2xlLCB0aGVuIHdyYXAuCiAgICAgICAgbGV0IHNhbXBsZSA9IChpIGFzIGkzMiAqIDIgKiBBTVBMSVRVREUgLyBTQU1QTEVTX1BFUl9DWUNMRSBhcyBpMzIgLSBBTVBMSVRVREUpIGFzIGkxNjsKICAgICAgICBibG9jayEodHJhbnNmZXIud3JpdGUoKHNhbXBsZSwgc2FtcGxlKSkpLnVud3JhcCgpOwogICAgICAgIGkgPSAoaSArIDEpICUgU0FNUExFU19QRVJfQ1lDTEU7CiAgICB9Cn0KCiNbaW50ZXJydXB0XQpmbiBFWFRJMCgpIHsKICAgIGNvcnRleF9tOjppbnRlcnJ1cHQ6OmZyZWUofGNzfCB7CiAgICAgICAgaWYgbGV0IFNvbWUoYnV0dG9uKSA9IEJVVFRPTi5ib3Jyb3coY3MpLmJvcnJvd19tdXQoKS5hc19tdXQoKSB7CiAgICAgICAgICAgIGJ1dHRvbi5jbGVhcl9pbnRlcnJ1cHQoKTsKICAgICAgICB9CiAgICB9KTsKICAgIFRPR0dMRV9SRVEuc3RvcmUodHJ1ZSwgT3JkZXJpbmc6OlJlbGVhc2UpOwp9CgAAAAAAAAAAoBMAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAKkJAAAAAAAAqQkAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
454,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAAChEwAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZTogdGhlIGF1ZGlvCi8vISBsb29wIHBvbGxzIGl0IG9uY2UgcGVyIGZyYW1lIChhIHByZXNzIGVkZ2Ugb3V0c2lkZSB0aGUgZGVib3VuY2UgaG9sZC1vZmYKLy8hIGZsaXBzIHRoZSB0b25lKS4gV2hpbGUgb2ZmLCBzaWxlbmNlIGlzIHN0cmVhbWVkIHNvIHRoZSBjb2RlYyBrZWVwcyBpdHMKLy8hIGNsb2Nrcy4gR3JlZW4gTEVEIChMRDQpIG1pcnJvcnMgdGhlIHRvbmUgc3RhdGU7IGJsdWUgKExENikgaXMgYSAxIEh6Ci8vISBmaXJtd2FyZSBoZWFydGJlYXQuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3J0ZXhfbV9ydDo6ZW50cnk7Ci8vIHRoZSBIQUwgaXMgcmUtZXhwb3J0ZWQgYnkgdGhlIGY0MTEgYm9hcmQtc3VwcG9ydCBjcmF0ZSBhcyBgZjQxMTo6aGFsYAp1c2UgZjQxMTo6ewogICAgYnV0dG9uOjpCdXR0b25zLAogICAgY29kZWM6OkNzNDNsMjIsCiAgICBsZWQ6OkxlZENvbXBhc3MsCiAgICBoYWw6OnsKICAgICAgICBncGlvOjp7Z3Bpb2EsIGdwaW9jfSwKICAgICAgICBpMmM6OntJMmMsIE1vZGV9LAogICAgICAgIGkyczo6c3RtMzJfaTJzX3YxMng6OnRyYW5zZmVyOjoqLAogICAgICAgIGkyczo6STJzLAogICAgICAgIG5iOjpibG9jaywKICAgICAgICBwYWMsCiAgICAgICAgcHJlbHVkZTo6KiwKICAgICAgICByY2M6OntDb25maWcsIFJjY30sCiAgICB9LAp9OwoKLy8gLS0tLSB0b25lIC0tLS0KY29uc3QgU0FXX0haOiB1MzIgPSA0MDA7CmNvbnN0IFNBTVBMRV9SQVRFX0haOiB1MzIgPSA0OF8wMDA7CmNvbnN0IFNBTVBMRVNfUEVSX0NZQ0xFOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIFNBV19IWjsgLy8gMTIwCi8vIEZ1bGwtc2NhbGUgaXMgcGFpbmZ1bGx5IGxvdWQgb24gaGVhZHBob25lczsgcnVuIHRoZSBzYXcgYXQgfjEvOCBhbXBsaXR1ZGUuCmNvbnN0IEFNUExJVFVERTogaTMyID0gaTE2OjpNQVggYXMgaTMyIC8gODsKCi8vIC0tLS0gYnV0dG9uIC0tLS0KLy8gQWZ0ZXIgYSB0b2dnbGUsIGlnbm9yZSBmdXJ0aGVyIHByZXNzZXMgZm9yIH4yMCBtcyBvZiBzYW1wbGVzIChib3VuY2UpLgpjb25zdCBERUJPVU5DRV9TQU1QTEVTOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIDUwOwoKdHlwZSBBdWRpb091dCA9IEkyc1RyYW5zZmVyPEkyczxwYWM6OlNQSTM+LCBNYXN0ZXIsIFRyYW5zbWl0LCBQaGlsaXBzLCBEYXRhMTZDaGFubmVsMTY+OwoKLy8vIEkyUzMgbWFzdGVyIHRyYW5zbWl0LCAxNi1iaXQgc3RlcmVvLCBNQ0xLIG91dCBmb3IgdGhlIGNvZGVjLgpmbiBhdWRpb19vdXQoCiAgICBzcGk6IHBhYzo6U1BJMywKICAgIHBpbnM6IChncGlvYTo6UEE0LCBncGlvYzo6UEMxMCwgT3B0aW9uPGdwaW9jOjpQQzc+LCBncGlvYzo6UEMxMiksCiAgICByY2M6ICZtdXQgUmNjLAopIC0+IEF1ZGlvT3V0IHsKICAgIGxldCBpMnMgPSBJMnM6Om5ldyhzcGksIHBpbnMsIHJjYyk7CiAgICBsZXQgY29uZmlnID0gSTJzVHJhbnNmZXJDb25maWc6Om5ld19tYXN0ZXIoKQogICAgICAgIC50cmFuc21pdCgpCiAgICAgICAgLnN0YW5kYXJkKFBoaWxpcHMpCiAgICAgICAgLmRhdGFfZm9ybWF0KERhdGExNkNoYW5uZWwxNikKICAgICAgICAubWFzdGVyX2Nsb2NrKHRydWUpCiAgICAgICAgLnJlcXVlc3RfZnJlcXVlbmN5KFNBTVBMRV9SQVRFX0haKTsKICAgIEkyc1RyYW5zZmVyOjpuZXcoaTJzLCBjb25maWcpCn0KCi8vLyBTYW1wbGUgYGlgIChvZiBTQU1QTEVTX1BFUl9DWUNMRSkgb2YgdGhlIHNhd3Rvb3RoOiBhIGxpbmVhciByYW1wIGZyb20KLy8vIC1BTVBMSVRVREUgdG8gK0FNUExJVFVERSwgd3JhcHBpbmcgZWFjaCBjeWNsZS4KZm4gc2F3X3NhbXBsZShpOiB1MzIpIC0+IGkxNiB7CiAgICAoaSBhcyBpMzIgKiAyICogQU1QTElUVURFIC8gU0FNUExFU19QRVJfQ1lDTEUgYXMgaTMyIC0gQU1QTElUVURFKSBhcyBpMTYKfQoKI1tlbnRyeV0KZm4gbWFpbigpIC0+ICEgewogICAgbGV0IGNwID0gY29ydGV4X206OlBlcmlwaGVyYWxzOjp0YWtlKCkudW53cmFwKCk7CiAgICBsZXQgcCA9IHBhYzo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKCiAgICAvLyBQTExJMlMgdHVuZWQgdG8gNjEuNDQgTUh6IHNvIDQ4IGtIeiBkaXZpZGVzIGV4YWN0bHkgKDYxLjQ0IE1IeiAvIDI1NmZzIC8gNSkuCiAgICBsZXQgbXV0IHJjYyA9IHAKICAgICAgICAuUkNDCiAgICAgICAgLmZyZWV6ZShDb25maWc6OmhzaSgpLnN5c2Nsayg5Ni5NSHooKSkuaTJzX2Nsayg2MTQ0MC5rSHooKSkpOwogICAgbGV0IG11dCBkZWxheSA9IGNwLlNZU1QuZGVsYXkoJnJjYy5jbG9ja3MpOwoKICAgIGxldCBncGlvYSA9IHAuR1BJT0Euc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9iID0gcC5HUElPQi5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2MgPSBwLkdQSU9DLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvZCA9IHAuR1BJT0Quc3BsaXQoJm11dCByY2MpOwoKICAgIC8vIFVTRVIgYnV0dG9uIChCMSksIHBvbGxlZCBieSB0aGUgYXVkaW8gbG9vcC4KICAgIGxldCBtdXQgYnV0dG9uID0gQnV0dG9uczo6bmV3KGdwaW9hLnBhMCkudXNlcjsKCiAgICAvLyBDUzQzTDIyIGNvZGVjOiBjb250cm9sIHBvcnQgKyByZXNldCB2aWEgdGhlIGJvYXJkLXN1cHBvcnQgZHJpdmVyLgogICAgbGV0IGkyYyA9IEkyYzo6bmV3KAogICAgICAgIHAuSTJDMSwKICAgICAgICAoZ3Bpb2IucGI2LCBncGlvYi5wYjkpLAogICAgICAgIE1vZGU6OnN0YW5kYXJkKDEwMC5rSHooKSksCiAgICAgICAgJm11dCByY2MsCiAgICApOwogICAgbGV0IG11dCBjb2RlYyA9IENzNDNsMjI6Om5ldyhpMmMsIGdwaW9kLnBkNC5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKSk7CiAgICBtYXRjaCBjb2RlYy5pbml0KCZtdXQgZGVsYXkpIHsKICAgICAgICBPayhpZCkgPT4gZGVmbXQ6OmluZm8hKCJjb2RlYyB1cCwgSUQgcmVnIHs9dTg6IzA0eH0iLCBpZCksCiAgICAgICAgRXJyKGUpID0+IGRlZm10OjplcnJvciEoImNvZGVjIGluaXQgZmFpbGVkOiB7fSIsIGRlZm10OjpEZWJ1ZzJGb3JtYXQoJmUpKSwKICAgIH0KCiAgICBsZXQgbXV0IHRyYW5zZmVyID0gYXVkaW9fb3V0KAogICAgICAgIHAuU1BJMywKICAgICAgICAoZ3Bpb2EucGE0LCBncGlvYy5wYzEwLCBTb21lKGdwaW9jLnBjNyksIGdwaW9jLnBjMTIpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKCiAgICBkZWZtdDo6aW5mbyEoCiAgICAgICAgInNhdzoge30gSHosIHNhbXBsZSByYXRlIHt9IEh6ICh7fSBzYW1wbGVzL2N5Y2xlKSIsCiAgICAgICAgU0FXX0haLAogICAgICAgIHRyYW5zZmVyLnNhbXBsZV9yYXRlKCksCiAgICAgICAgU0FNUExFU19QRVJfQ1lDTEUKICAgICk7CgogICAgLy8gT24tYm9hcmQgTEVEczogc291dGggKExENiwgYmx1ZSkgPSAxIEh6IGhlYXJ0YmVhdCBzbyBpdCdzIHZpc2libGUgdGhlCiAgICAvLyBmaXJtd2FyZSBpcyBhbGl2ZSB3aXRob3V0IGEgZGVidWdnZXI7IHdlc3QgKExENCwgZ3JlZW4pID0gc2F3IHBsYXlpbmcuCiAgICBsZXQgY29tcGFzcyA9IExlZENvbXBhc3M6Om5ldyhncGlvZC5wZDEyLCBncGlvZC5wZDEzLCBncGlvZC5wZDE0LCBncGlvZC5wZDE1KTsKICAgIGxldCBtdXQgaGVhcnRiZWF0ID0gY29tcGFzcy5zOwogICAgbGV0IG11dCBzYXdfbGVkID0gY29tcGFzcy53OwoKICAgIGxldCBtdXQgaSA9IDA7CiAgICBsZXQgbXV0IGZyYW1lczogdTMyID0gMDsKICAgIGxldCBtdXQgb24gPSBmYWxzZTsgLy8gc2lsZW50IGF0IGJvb3Q7IFVTRVIgYnV0dG9uIHRvZ2dsZXMgdGhlIHNhdyBvbgogICAgbGV0IG11dCBob2xkb2ZmOiB1MzIgPSAwOwogICAgbG9vcCB7CiAgICAgICAgLy8gUG9sbCBldmVyeSBmcmFtZSAoc28gYm91bmNlIGR1cmluZyB0aGUgaG9sZC1vZmYgd2luZG93IGlzCiAgICAgICAgLy8gY29uc3VtZWQgYW5kIGRpc2NhcmRlZCk7IGFwcGx5IHRoZSBlZGdlIG9ubHkgb3V0c2lkZSB0aGUgd2luZG93LgogICAgICAgIGhvbGRvZmYgPSBob2xkb2ZmLnNhdHVyYXRpbmdfc3ViKDEpOwogICAgICAgIGlmIGJ1dHRvbi5qdXN0X3ByZXNzZWQoKSAmJiBob2xkb2ZmID09IDAgewogICAgICAgICAgICBvbiA9ICFvbjsKICAgICAgICAgICAgaG9sZG9mZiA9IERFQk9VTkNFX1NBTVBMRVM7CiAgICAgICAgICAgIHNhd19sZWQuc2V0KG9uKTsKICAgICAgICAgICAgZGVmbXQ6OmluZm8hKCJzYXcge30iLCBpZiBvbiB7ICJPTiIgfSBlbHNlIHsgIk9GRiIgfSk7CiAgICAgICAgfQoKICAgICAgICBsZXQgc2FtcGxlID0gbWF0Y2ggb24gewogICAgICAgICAgICB0cnVlID0+IHNhd19zYW1wbGUoaSksCiAgICAgICAgICAgIGZhbHNlID0+IDAsCiAgICAgICAgfTsKICAgICAgICBibG9jayEodHJhbnNmZXIud3JpdGUoKHNhbXBsZSwgc2FtcGxlKSkpLnVud3JhcCgpOwogICAgICAgIGkgPSAoaSArIDEpICUgU0FNUExFU19QRVJfQ1lDTEU7CgogICAgICAgIGZyYW1lcyArPSAxOwogICAgICAgIGlmIGZyYW1lcyA9PSBTQU1QTEVfUkFURV9IWiB7CiAgICAgICAgICAgIGZyYW1lcyA9IDA7CiAgICAgICAgICAgIGhlYXJ0YmVhdC50b2dnbGUoKTsKICAgICAgICB9CiAgICB9Cn0KAAAAAAAAAACjEwAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAMIPAAAAAAAAwg8AAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
463,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAACkEwAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZTogdGhlIGF1ZGlvCi8vISBsb29wIHBvbGxzIGl0IG9uY2UgcGVyIGZyYW1lIChhIHByZXNzIGVkZ2Ugb3V0c2lkZSB0aGUgZGVib3VuY2UgaG9sZC1vZmYKLy8hIGZsaXBzIHRoZSB0b25lKS4gV2hpbGUgb2ZmLCBzaWxlbmNlIGlzIHN0cmVhbWVkIHNvIHRoZSBjb2RlYyBrZWVwcyBpdHMKLy8hIGNsb2Nrcy4gR3JlZW4gTEVEIChMRDQpIG1pcnJvcnMgdGhlIHRvbmUgc3RhdGU7IGJsdWUgKExENikgaXMgYSAxIEh6Ci8vISBmaXJtd2FyZSBoZWFydGJlYXQuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3J0ZXhfbV9ydDo6ZW50cnk7Ci8vIHRoZSBIQUwgaXMgcmUtZXhwb3J0ZWQgYnkgdGhlIGY0MTEgYm9hcmQtc3VwcG9ydCBjcmF0ZSBhcyBgZjQxMTo6aGFsYAp1c2UgZjQxMTo6ewogICAgYnV0dG9uOjpCdXR0b25zLAogICAgY29kZWM6OkNzNDNsMjIsCiAgICBsZWQ6OkxlZENvbXBhc3MsCiAgICBoYWw6OnsKICAgICAgICBncGlvOjp7Z3Bpb2EsIGdwaW9jfSwKICAgICAgICBpMmM6OntJMmMsIE1vZGV9LAogICAgICAgIGkyczo6c3RtMzJfaTJzX3YxMng6OnRyYW5zZmVyOjoqLAogICAgICAgIGkyczo6STJzLAogICAgICAgIG5iOjpibG9jaywKICAgICAgICBwYWMsCiAgICAgICAgcHJlbHVkZTo6KiwKICAgICAgICByY2M6OntDb25maWcsIFJjY30sCiAgICB9LAp9OwoKLy8gLS0tLSB0b25lIC0tLS0KY29uc3QgU0FXX0haOiB1MzIgPSA0MDA7CmNvbnN0IFNBTVBMRV9SQVRFX0haOiB1MzIgPSA0OF8wMDA7CmNvbnN0IFNBTVBMRVNfUEVSX0NZQ0xFOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIFNBV19IWjsgLy8gMTIwCi8vIEZ1bGwtc2NhbGUgaXMgcGFpbmZ1bGx5IGxvdWQgb24gaGVhZHBob25lczsgcnVuIHRoZSBzYXcgYXQgfjEvOCBhbXBsaXR1ZGUuCmNvbnN0IEFNUExJVFVERTogaTMyID0gaTE2OjpNQVggYXMgaTMyIC8gODsKCi8vIC0tLS0gYnV0dG9uIC0tLS0KLy8gQWZ0ZXIgYSB0b2dnbGUsIGlnbm9yZSBmdXJ0aGVyIHByZXNzZXMgZm9yIH4yMCBtcyBvZiBzYW1wbGVzIChib3VuY2UpLgpjb25zdCBERUJPVU5DRV9TQU1QTEVTOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIDUwOwoKdHlwZSBBdWRpb091dCA9IEkyc1RyYW5zZmVyPEkyczxwYWM6OlNQSTM+LCBNYXN0ZXIsIFRyYW5zbWl0LCBQaGlsaXBzLCBEYXRhMTZDaGFubmVsMTY+OwoKLy8vIEkyUzMgbWFzdGVyIHRyYW5zbWl0LCAxNi1iaXQgc3RlcmVvLCBNQ0xLIG91dCBmb3IgdGhlIGNvZGVjLgpmbiBhdWRpb19vdXQoCiAgICBzcGk6IHBhYzo6U1BJMywKICAgIHBpbnM6IChncGlvYTo6UEE0LCBncGlvYzo6UEMxMCwgT3B0aW9uPGdwaW9jOjpQQzc+LCBncGlvYzo6UEMxMiksCiAgICByY2M6ICZtdXQgUmNjLAopIC0+IEF1ZGlvT3V0IHsKICAgIGxldCBpMnMgPSBJMnM6Om5ldyhzcGksIHBpbnMsIHJjYyk7CiAgICBsZXQgY29uZmlnID0gSTJzVHJhbnNmZXJDb25maWc6Om5ld19tYXN0ZXIoKQogICAgICAgIC50cmFuc21pdCgpCiAgICAgICAgLnN0YW5kYXJkKFBoaWxpcHMpCiAgICAgICAgLmRhdGFfZm9ybWF0KERhdGExNkNoYW5uZWwxNikKICAgICAgICAubWFzdGVyX2Nsb2NrKHRydWUpCiAgICAgICAgLnJlcXVlc3RfZnJlcXVlbmN5KFNBTVBMRV9SQVRFX0haKTsKICAgIEkyc1RyYW5zZmVyOjpuZXcoaTJzLCBjb25maWcpCn0KCi8vLyBTYW1wbGUgYGlgIChvZiBTQU1QTEVTX1BFUl9DWUNMRSkgb2YgdGhlIHNhd3Rvb3RoOiBhIGxpbmVhciByYW1wIGZyb20KLy8vIC1BTVBMSVRVREUgdG8gK0FNUExJVFVERSwgd3JhcHBpbmcgZWFjaCBjeWNsZS4KZm4gc2F3X3NhbXBsZShpOiB1MzIpIC0+IGkxNiB7CiAgICAoaSBhcyBpMzIgKiAyICogQU1QTElUVURFIC8gU0FNUExFU19QRVJfQ1lDTEUgYXMgaTMyIC0gQU1QTElUVURFKSBhcyBpMTYKfQoKI1tlbnRyeV0KZm4gbWFpbigpIC0+ICEgewogICAgbGV0IGNwID0gY29ydGV4X206OlBlcmlwaGVyYWxzOjp0YWtlKCkudW53cmFwKCk7CiAgICBsZXQgcCA9IHBhYzo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKCiAgICAvLyBQTExJMlMgdHVuZWQgdG8gNjEuNDQgTUh6IHNvIDQ4IGtIeiBkaXZpZGVzIGV4YWN0bHkgKDYxLjQ0IE1IeiAvIDI1NmZzIC8gNSkuCiAgICBsZXQgbXV0IHJjYyA9IHAKICAgICAgICAuUkNDCiAgICAgICAgLmZyZWV6ZShDb25maWc6OmhzaSgpLnN5c2Nsayg5Ni5NSHooKSkuaTJzX2Nsayg2MTQ0MC5rSHooKSkpOwogICAgbGV0IG11dCBkZWxheSA9IGNwLlNZU1QuZGVsYXkoJnJjYy5jbG9ja3MpOwoKICAgIGxldCBncGlvYSA9IHAuR1BJT0Euc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9iID0gcC5HUElPQi5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2MgPSBwLkdQSU9DLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvZCA9IHAuR1BJT0Quc3BsaXQoJm11dCByY2MpOwoKICAgIC8vIFVTRVIgYnV0dG9uIChCMSksIHBvbGxlZCBieSB0aGUgYXVkaW8gbG9vcC4KICAgIC8vIGxldCBtdXQgYnV0dG9uID0gQnV0dG9uczo6bmV3KGdwaW9hLnBhMCkudXNlcjsKCiAgICAvLyBDUzQzTDIyIGNvZGVjOiBjb250cm9sIHBvcnQgKyByZXNldCB2aWEgdGhlIGJvYXJkLXN1cHBvcnQgZHJpdmVyLgogICAgbGV0IGkyYyA9IEkyYzo6bmV3KAogICAgICAgIHAuSTJDMSwKICAgICAgICAoZ3Bpb2IucGI2LCBncGlvYi5wYjkpLAogICAgICAgIE1vZGU6OnN0YW5kYXJkKDEwMC5rSHooKSksCiAgICAgICAgJm11dCByY2MsCiAgICApOwogICAgbGV0IG11dCBjb2RlYyA9IENzNDNsMjI6Om5ldyhpMmMsIGdwaW9kLnBkNC5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKSk7CiAgICBtYXRjaCBjb2RlYy5pbml0KCZtdXQgZGVsYXkpIHsKICAgICAgICBPayhpZCkgPT4gZGVmbXQ6OmluZm8hKCJjb2RlYyB1cCwgSUQgcmVnIHs9dTg6IzA0eH0iLCBpZCksCiAgICAgICAgRXJyKGUpID0+IGRlZm10OjplcnJvciEoImNvZGVjIGluaXQgZmFpbGVkOiB7fSIsIGRlZm10OjpEZWJ1ZzJGb3JtYXQoJmUpKSwKICAgIH0KCiAgICBsZXQgbXV0IHRyYW5zZmVyID0gYXVkaW9fb3V0KAogICAgICAgIHAuU1BJMywKICAgICAgICAoZ3Bpb2EucGE0LCBncGlvYy5wYzEwLCBTb21lKGdwaW9jLnBjNyksIGdwaW9jLnBjMTIpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKCiAgICBkZWZtdDo6aW5mbyEoCiAgICAgICAgInNhdzoge30gSHosIHNhbXBsZSByYXRlIHt9IEh6ICh7fSBzYW1wbGVzL2N5Y2xlKSIsCiAgICAgICAgU0FXX0haLAogICAgICAgIHRyYW5zZmVyLnNhbXBsZV9yYXRlKCksCiAgICAgICAgU0FNUExFU19QRVJfQ1lDTEUKICAgICk7CgogICAgLy8gT24tYm9hcmQgTEVEczogc291dGggKExENiwgYmx1ZSkgPSAxIEh6IGhlYXJ0YmVhdCBzbyBpdCdzIHZpc2libGUgdGhlCiAgICAvLyBmaXJtd2FyZSBpcyBhbGl2ZSB3aXRob3V0IGEgZGVidWdnZXI7IHdlc3QgKExENCwgZ3JlZW4pID0gc2F3IHBsYXlpbmcuCiAgICBsZXQgY29tcGFzcyA9IExlZENvbXBhc3M6Om5ldyhncGlvZC5wZDEyLCBncGlvZC5wZDEzLCBncGlvZC5wZDE0LCBncGlvZC5wZDE1KTsKICAgIGxldCBtdXQgaGVhcnRiZWF0ID0gY29tcGFzcy5zOwogICAgbGV0IG11dCBzYXdfbGVkID0gY29tcGFzcy53OwoKICAgIGxldCBtdXQgaSA9IDA7CiAgICBsZXQgbXV0IGZyYW1lczogdTMyID0gMDsKICAgIGxldCBtdXQgb24gPSBmYWxzZTsgLy8gc2lsZW50IGF0IGJvb3Q7IFVTRVIgYnV0dG9uIHRvZ2dsZXMgdGhlIHNhdyBvbgogICAgbGV0IG11dCBob2xkb2ZmOiB1MzIgPSAwOwogICAgbG9vcCB7CiAgICAgICAgLy8gUG9sbCBldmVyeSBmcmFtZSAoc28gYm91bmNlIGR1cmluZyB0aGUgaG9sZC1vZmYgd2luZG93IGlzCiAgICAgICAgLy8gY29uc3VtZWQgYW5kIGRpc2NhcmRlZCk7IGFwcGx5IHRoZSBlZGdlIG9ubHkgb3V0c2lkZSB0aGUgd2luZG93LgogICAgICAgIGhvbGRvZmYgPSBob2xkb2ZmLnNhdHVyYXRpbmdfc3ViKDEpOwogICAgICAgIGlmIGJ1dHRvbi5qdXN0X3ByZXNzZWQoKSAmJiBob2xkb2ZmID09IDAgewogICAgICAgICAgICBvbiA9ICFvbjsKICAgICAgICAgICAgaG9sZG9mZiA9IERFQk9VTkNFX1NBTVBMRVM7CiAgICAgICAgICAgIHNhd19sZWQuc2V0KG9uKTsKICAgICAgICAgICAgZGVmbXQ6OmluZm8hKCJzYXcge30iLCBpZiBvbiB7ICJPTiIgfSBlbHNlIHsgIk9GRiIgfSk7CiAgICAgICAgfQoKICAgICAgICBsZXQgc2FtcGxlID0gbWF0Y2ggb24gewogICAgICAgICAgICB0cnVlID0+IHNhd19zYW1wbGUoaSksCiAgICAgICAgICAgIGZhbHNlID0+IDAsCiAgICAgICAgfTsKICAgICAgICBibG9jayEodHJhbnNmZXIud3JpdGUoKHNhbXBsZSwgc2FtcGxlKSkpLnVud3JhcCgpOwogICAgICAgIGkgPSAoaSArIDEpICUgU0FNUExFU19QRVJfQ1lDTEU7CgogICAgICAgIGZyYW1lcyArPSAxOwogICAgICAgIGlmIGZyYW1lcyA9PSBTQU1QTEVfUkFURV9IWiB7CiAgICAgICAgICAgIGZyYW1lcyA9IDA7CiAgICAgICAgICAgIGhlYXJ0YmVhdC50b2dnbGUoKTsKICAgICAgICB9CiAgICB9Cn0KAAAAAAAAAAC7EwAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAIIRAAAAAAAAiBEAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
466,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"BAAAAAAAAAAAAAAAAAAAAAAAAAC+EwAALy8hIDQwMCBIeiBzYXd0b290aCBvdXQgdGhlIEY0MTFFLURJU0NPJ3MgMy41IG1tIGphY2suCi8vIQovLyEgVGhlIGphY2sgaXMgZHJpdmVuIGJ5IHRoZSBvbi1ib2FyZCBDUzQzTDIyIGNvZGVjIChzZWUgYGY0MTE6OmNvZGVjYCBmb3IKLy8hIHRoZSBjb250cm9sIGludGVyZmFjZSBhbmQgd2lyaW5nKS4gSTJTMyBydW5zIG1hc3RlciB0cmFuc21pdCBhdCA0OCBrSHoKLy8hIHdpdGggTUNMSyAoMjU2w5dmcykgZW5hYmxlZDsgdGhlIG1haW4gbG9vcCBzdHJlYW1zIGEgNDAwIEh6IHNhd3Rvb3RoCi8vISAoNDggMDAwIC8gNDAwID0gMTIwIHNhbXBsZXMgcGVyIGN5Y2xlKSBpbnRvIGJvdGggY2hhbm5lbHMuCi8vIQovLyEgVGhlIFVTRVIgYnV0dG9uIChCMSwgUEEwLCBoaWdoID0gcHJlc3NlZCkgdG9nZ2xlcyB0aGUgdG9uZTogdGhlIGF1ZGlvCi8vISBsb29wIHBvbGxzIGl0IG9uY2UgcGVyIGZyYW1lIChhIHByZXNzIGVkZ2Ugb3V0c2lkZSB0aGUgZGVib3VuY2UgaG9sZC1vZmYKLy8hIGZsaXBzIHRoZSB0b25lKS4gV2hpbGUgb2ZmLCBzaWxlbmNlIGlzIHN0cmVhbWVkIHNvIHRoZSBjb2RlYyBrZWVwcyBpdHMKLy8hIGNsb2Nrcy4gR3JlZW4gTEVEIChMRDQpIG1pcnJvcnMgdGhlIHRvbmUgc3RhdGU7IGJsdWUgKExENikgaXMgYSAxIEh6Ci8vISBmaXJtd2FyZSBoZWFydGJlYXQuCgojIVtub19zdGRdCiMhW25vX21haW5dCgovLyBkZWZtdCBnbG9iYWwgbG9nZ2VyIChSVFQgdHJhbnNwb3J0KSArIHBhbmljIGhhbmRsZXIKdXNlIGRlZm10X3J0dCBhcyBfOwp1c2UgcGFuaWNfcHJvYmUgYXMgXzsKCnVzZSBjb3J0ZXhfbV9ydDo6ZW50cnk7Ci8vIHRoZSBIQUwgaXMgcmUtZXhwb3J0ZWQgYnkgdGhlIGY0MTEgYm9hcmQtc3VwcG9ydCBjcmF0ZSBhcyBgZjQxMTo6aGFsYAp1c2UgZjQxMTo6ewogICAgYnV0dG9uOjpCdXR0b25zLAogICAgY29kZWM6OkNzNDNsMjIsCiAgICBsZWQ6OkxlZENvbXBhc3MsCiAgICBoYWw6OnsKICAgICAgICBncGlvOjp7Z3Bpb2EsIGdwaW9jfSwKICAgICAgICBpMmM6OntJMmMsIE1vZGV9LAogICAgICAgIGkyczo6c3RtMzJfaTJzX3YxMng6OnRyYW5zZmVyOjoqLAogICAgICAgIGkyczo6STJzLAogICAgICAgIG5iOjpibG9jaywKICAgICAgICBwYWMsCiAgICAgICAgcHJlbHVkZTo6KiwKICAgICAgICByY2M6OntDb25maWcsIFJjY30sCiAgICB9LAp9OwoKLy8gLS0tLSB0b25lIC0tLS0KY29uc3QgU0FXX0haOiB1MzIgPSA0MDA7CmNvbnN0IFNBTVBMRV9SQVRFX0haOiB1MzIgPSA0OF8wMDA7CmNvbnN0IFNBTVBMRVNfUEVSX0NZQ0xFOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIFNBV19IWjsgLy8gMTIwCi8vIEZ1bGwtc2NhbGUgaXMgcGFpbmZ1bGx5IGxvdWQgb24gaGVhZHBob25lczsgcnVuIHRoZSBzYXcgYXQgfjEvOCBhbXBsaXR1ZGUuCmNvbnN0IEFNUExJVFVERTogaTMyID0gaTE2OjpNQVggYXMgaTMyIC8gODsKCi8vIC0tLS0gYnV0dG9uIC0tLS0KLy8gQWZ0ZXIgYSB0b2dnbGUsIGlnbm9yZSBmdXJ0aGVyIHByZXNzZXMgZm9yIH4yMCBtcyBvZiBzYW1wbGVzIChib3VuY2UpLgpjb25zdCBERUJPVU5DRV9TQU1QTEVTOiB1MzIgPSBTQU1QTEVfUkFURV9IWiAvIDUwOwoKdHlwZSBBdWRpb091dCA9IEkyc1RyYW5zZmVyPEkyczxwYWM6OlNQSTM+LCBNYXN0ZXIsIFRyYW5zbWl0LCBQaGlsaXBzLCBEYXRhMTZDaGFubmVsMTY+OwoKLy8vIEkyUzMgbWFzdGVyIHRyYW5zbWl0LCAxNi1iaXQgc3RlcmVvLCBNQ0xLIG91dCBmb3IgdGhlIGNvZGVjLgpmbiBhdWRpb19vdXQoCiAgICBzcGk6IHBhYzo6U1BJMywKICAgIHBpbnM6IChncGlvYTo6UEE0LCBncGlvYzo6UEMxMCwgT3B0aW9uPGdwaW9jOjpQQzc+LCBncGlvYzo6UEMxMiksCiAgICByY2M6ICZtdXQgUmNjLAopIC0+IEF1ZGlvT3V0IHsKICAgIGxldCBpMnMgPSBJMnM6Om5ldyhzcGksIHBpbnMsIHJjYyk7CiAgICBsZXQgY29uZmlnID0gSTJzVHJhbnNmZXJDb25maWc6Om5ld19tYXN0ZXIoKQogICAgICAgIC50cmFuc21pdCgpCiAgICAgICAgLnN0YW5kYXJkKFBoaWxpcHMpCiAgICAgICAgLmRhdGFfZm9ybWF0KERhdGExNkNoYW5uZWwxNikKICAgICAgICAubWFzdGVyX2Nsb2NrKHRydWUpCiAgICAgICAgLnJlcXVlc3RfZnJlcXVlbmN5KFNBTVBMRV9SQVRFX0haKTsKICAgIEkyc1RyYW5zZmVyOjpuZXcoaTJzLCBjb25maWcpCn0KCi8vLyBTYW1wbGUgYGlgIChvZiBTQU1QTEVTX1BFUl9DWUNMRSkgb2YgdGhlIHNhd3Rvb3RoOiBhIGxpbmVhciByYW1wIGZyb20KLy8vIC1BTVBMSVRVREUgdG8gK0FNUExJVFVERSwgd3JhcHBpbmcgZWFjaCBjeWNsZS4KZm4gc2F3X3NhbXBsZShpOiB1MzIpIC0+IGkxNiB7CiAgICAoaSBhcyBpMzIgKiAyICogQU1QTElUVURFIC8gU0FNUExFU19QRVJfQ1lDTEUgYXMgaTMyIC0gQU1QTElUVURFKSBhcyBpMTYKfQoKI1tlbnRyeV0KZm4gbWFpbigpIC0+ICEgewogICAgbGV0IGNwID0gY29ydGV4X206OlBlcmlwaGVyYWxzOjp0YWtlKCkudW53cmFwKCk7CiAgICBsZXQgcCA9IHBhYzo6UGVyaXBoZXJhbHM6OnRha2UoKS51bndyYXAoKTsKCiAgICAvLyBQTExJMlMgdHVuZWQgdG8gNjEuNDQgTUh6IHNvIDQ4IGtIeiBkaXZpZGVzIGV4YWN0bHkgKDYxLjQ0IE1IeiAvIDI1NmZzIC8gNSkuCiAgICBsZXQgbXV0IHJjYyA9IHAKICAgICAgICAuUkNDCiAgICAgICAgLmZyZWV6ZShDb25maWc6OmhzaSgpLnN5c2Nsayg5Ni5NSHooKSkuaTJzX2Nsayg2MTQ0MC5rSHooKSkpOwogICAgbGV0IG11dCBkZWxheSA9IGNwLlNZU1QuZGVsYXkoJnJjYy5jbG9ja3MpOwoKICAgIGxldCBncGlvYSA9IHAuR1BJT0Euc3BsaXQoJm11dCByY2MpOwogICAgbGV0IGdwaW9iID0gcC5HUElPQi5zcGxpdCgmbXV0IHJjYyk7CiAgICBsZXQgZ3Bpb2MgPSBwLkdQSU9DLnNwbGl0KCZtdXQgcmNjKTsKICAgIGxldCBncGlvZCA9IHAuR1BJT0Quc3BsaXQoJm11dCByY2MpOwoKICAgIC8vIFVTRVIgYnV0dG9uIChCMSksIHBvbGxlZCBieSB0aGUgYXVkaW8gbG9vcC4KICAgIC8vIGxldCBtdXQgYnV0dG9uID0gQnV0dG9uczo6bmV3KGdwaW9hLnBhMCkudXNlcjsKCiAgICAvLyBDUzQzTDIyIGNvZGVjOiBjb250cm9sIHBvcnQgKyByZXNldCB2aWEgdGhlIGJvYXJkLXN1cHBvcnQgZHJpdmVyLgogICAgbGV0IGkyYyA9IEkyYzo6bmV3KAogICAgICAgIHAuSTJDMSwKICAgICAgICAoZ3Bpb2IucGI2LCBncGlvYi5wYjkpLAogICAgICAgIE1vZGU6OnN0YW5kYXJkKDEwMC5rSHooKSksCiAgICAgICAgJm11dCByY2MsCiAgICApOwogICAgbGV0IG11dCBjb2RlYyA9IENzNDNsMjI6Om5ldyhpMmMsIGdwaW9kLnBkNC5pbnRvX3B1c2hfcHVsbF9vdXRwdXQoKSk7CiAgICBtYXRjaCBjb2RlYy5pbml0KCZtdXQgZGVsYXkpIHsKICAgICAgICBPayhpZCkgPT4gZGVmbXQ6OmluZm8hKCJjb2RlYyB1cCwgSUQgcmVnIHs9dTg6IzA0eH0iLCBpZCksCiAgICAgICAgRXJyKGUpID0+IGRlZm10OjplcnJvciEoImNvZGVjIGluaXQgZmFpbGVkOiB7fSIsIGRlZm10OjpEZWJ1ZzJGb3JtYXQoJmUpKSwKICAgIH0KCiAgICBsZXQgbXV0IHRyYW5zZmVyID0gYXVkaW9fb3V0KAogICAgICAgIHAuU1BJMywKICAgICAgICAoZ3Bpb2EucGE0LCBncGlvYy5wYzEwLCBTb21lKGdwaW9jLnBjNyksIGdwaW9jLnBjMTIpLAogICAgICAgICZtdXQgcmNjLAogICAgKTsKCiAgICBkZWZtdDo6aW5mbyEoCiAgICAgICAgInNhdzoge30gSHosIHNhbXBsZSByYXRlIHt9IEh6ICh7fSBzYW1wbGVzL2N5Y2xlKSIsCiAgICAgICAgU0FXX0haLAogICAgICAgIHRyYW5zZmVyLnNhbXBsZV9yYXRlKCksCiAgICAgICAgU0FNUExFU19QRVJfQ1lDTEUKICAgICk7CgogICAgLy8gT24tYm9hcmQgTEVEczogc291dGggKExENiwgYmx1ZSkgPSAxIEh6IGhlYXJ0YmVhdCBzbyBpdCdzIHZpc2libGUgdGhlCiAgICAvLyBmaXJtd2FyZSBpcyBhbGl2ZSB3aXRob3V0IGEgZGVidWdnZXI7IHdlc3QgKExENCwgZ3JlZW4pID0gc2F3IHBsYXlpbmcuCiAgICBsZXQgY29tcGFzcyA9IExlZENvbXBhc3M6Om5ldyhncGlvZC5wZDEyLCBncGlvZC5wZDEzLCBncGlvZC5wZDE0LCBncGlvZC5wZDE1KTsKICAgIGxldCBtdXQgaGVhcnRiZWF0ID0gY29tcGFzcy5zOwogICAgbGV0IG11dCBzYXdfbGVkID0gY29tcGFzcy53OwoKICAgIGxldCBtdXQgaSA9IDA7CiAgICBsZXQgbXV0IGZyYW1lczogdTMyID0gMDsKICAgIGxldCBtdXQgb24gPSBmYWxzZTsKICAgIC8vIGxldCBtdXQgaG9sZG9mZjogdTMyID0gMDsKICAgIGxvb3AgewogICAgICAgIC8vIEJVVFRPTiBESVNBQkxFRCBGT1IgVEVTVCDigJQgc2F3IHNlbGYtdG9nZ2xlcyBldmVyeSBzZWNvbmQgaW5zdGVhZC4KICAgICAgICAvLyBob2xkb2ZmID0gaG9sZG9mZi5zYXR1cmF0aW5nX3N1YigxKTsKICAgICAgICAvLyBpZiBidXR0b24uanVzdF9wcmVzc2VkKCkgJiYgaG9sZG9mZiA9PSAwIHsKICAgICAgICAvLyAgICAgb24gPSAhb247CiAgICAgICAgLy8gICAgIGhvbGRvZmYgPSBERUJPVU5DRV9TQU1QTEVTOwogICAgICAgIC8vICAgICBzYXdfbGVkLnNldChvbik7CiAgICAgICAgLy8gICAgIGRlZm10OjppbmZvISgic2F3IHt9IiwgaWYgb24geyAiT04iIH0gZWxzZSB7ICJPRkYiIH0pOwogICAgICAgIC8vIH0KCiAgICAgICAgbGV0IHNhbXBsZSA9IG1hdGNoIG9uIHsKICAgICAgICAgICAgdHJ1ZSA9PiBzYXdfc2FtcGxlKGkpLAogICAgICAgICAgICBmYWxzZSA9PiAwLAogICAgICAgIH07CiAgICAgICAgYmxvY2shKHRyYW5zZmVyLndyaXRlKChzYW1wbGUsIHNhbXBsZSkpKS51bndyYXAoKTsKICAgICAgICBpID0gKGkgKyAxKSAlIFNBTVBMRVNfUEVSX0NZQ0xFOwoKICAgICAgICBmcmFtZXMgKz0gMTsKICAgICAgICBpZiBmcmFtZXMgPT0gU0FNUExFX1JBVEVfSFogewogICAgICAgICAgICBmcmFtZXMgPSAwOwogICAgICAgICAgICBoZWFydGJlYXQudG9nZ2xlKCk7CiAgICAgICAgICAgIG9uID0gIW9uOwogICAgICAgICAgICBzYXdfbGVkLnNldChvbik7CiAgICAgICAgICAgIGRlZm10OjppbmZvISgic2F3IHt9IiwgaWYgb24geyAiT04iIH0gZWxzZSB7ICJPRkYiIH0pOwogICAgICAgIH0KICAgIH0KfQoAAAAAAAAAAPQUAAAAAAAAAAAAAAAAAAAAAAAA9BQAAAAAAAAAAAAAAAAAAAAAAAD0FAAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAMRAAAAAAAAAxEAAAAAAAAAAAAAAADwvw"
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"file": "etc/inventory.md",
|
|
"settings":
|
|
{
|
|
"buffer_size": 3092,
|
|
"encoding": "UTF-8",
|
|
"line_ending": "Unix"
|
|
},
|
|
"undo_stack":
|
|
[
|
|
[
|
|
10,
|
|
1,
|
|
"run_macro_file",
|
|
{
|
|
"file": "res://Packages/Default/Add Line.sublime-macro",
|
|
"register": "\""
|
|
},
|
|
"AQAAAPEEAAAAAAAA8gQAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADTBAAAAAAAANMEAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
12,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": "lots"
|
|
},
|
|
"BAAAAPIEAAAAAAAA8wQAAAAAAAAAAAAA8wQAAAAAAAD0BAAAAAAAAAAAAAD0BAAAAAAAAPUEAAAAAAAAAAAAAPUEAAAAAAAA9gQAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADyBAAAAAAAAPIEAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
13,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " of"
|
|
},
|
|
"AwAAAPYEAAAAAAAA9wQAAAAAAAAAAAAA9wQAAAAAAAD4BAAAAAAAAAAAAAD4BAAAAAAAAPkEAAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD2BAAAAAAAAPYEAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
14,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " wima"
|
|
},
|
|
"BQAAAPkEAAAAAAAA+gQAAAAAAAAAAAAA+gQAAAAAAAD7BAAAAAAAAAAAAAD7BAAAAAAAAPwEAAAAAAAAAAAAAPwEAAAAAAAA/QQAAAAAAAAAAAAA/QQAAAAAAAD+BAAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD5BAAAAAAAAPkEAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
15,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " "
|
|
},
|
|
"AQAAAP4EAAAAAAAA/wQAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD+BAAAAAAAAP4EAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
16,
|
|
1,
|
|
"run_macro_file",
|
|
{
|
|
"file": "res://Packages/Default/Delete to Hard BOL.sublime-macro"
|
|
},
|
|
"AQAAAPIEAAAAAAAA8gQAAAAAAAANAAAAbG90cyBvZiB3aW1hIA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD/BAAAAAAAAP8EAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
17,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": "lots"
|
|
},
|
|
"BAAAAPIEAAAAAAAA8wQAAAAAAAAAAAAA8wQAAAAAAAD0BAAAAAAAAAAAAAD0BAAAAAAAAPUEAAAAAAAAAAAAAPUEAAAAAAAA9gQAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADyBAAAAAAAAPIEAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
18,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " and"
|
|
},
|
|
"BAAAAPYEAAAAAAAA9wQAAAAAAAAAAAAA9wQAAAAAAAD4BAAAAAAAAAAAAAD4BAAAAAAAAPkEAAAAAAAAAAAAAPkEAAAAAAAA+gQAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD2BAAAAAAAAPYEAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
19,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " lots"
|
|
},
|
|
"BQAAAPoEAAAAAAAA+wQAAAAAAAAAAAAA+wQAAAAAAAD8BAAAAAAAAAAAAAD8BAAAAAAAAP0EAAAAAAAAAAAAAP0EAAAAAAAA/gQAAAAAAAAAAAAA/gQAAAAAAAD/BAAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD6BAAAAAAAAPoEAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
20,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " of"
|
|
},
|
|
"AwAAAP8EAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAABBQAAAAAAAAAAAAABBQAAAAAAAAIFAAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD/BAAAAAAAAP8EAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
21,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " eleo"
|
|
},
|
|
"BQAAAAIFAAAAAAAAAwUAAAAAAAAAAAAAAwUAAAAAAAAEBQAAAAAAAAAAAAAEBQAAAAAAAAUFAAAAAAAAAAAAAAUFAAAAAAAABgUAAAAAAAAAAAAABgUAAAAAAAAHBQAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAACBQAAAAAAAAIFAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
22,
|
|
1,
|
|
"left_delete",
|
|
null,
|
|
"AQAAAAYFAAAAAAAABgUAAAAAAAABAAAAbw",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAHBQAAAAAAAAcFAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
23,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": "trolytic"
|
|
},
|
|
"CAAAAAYFAAAAAAAABwUAAAAAAAAAAAAABwUAAAAAAAAIBQAAAAAAAAAAAAAIBQAAAAAAAAkFAAAAAAAAAAAAAAkFAAAAAAAACgUAAAAAAAAAAAAACgUAAAAAAAALBQAAAAAAAAAAAAALBQAAAAAAAAwFAAAAAAAAAAAAAAwFAAAAAAAADQUAAAAAAAAAAAAADQUAAAAAAAAOBQAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAGBQAAAAAAAAYFAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
24,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " caps"
|
|
},
|
|
"BQAAAA4FAAAAAAAADwUAAAAAAAAAAAAADwUAAAAAAAAQBQAAAAAAAAAAAAAQBQAAAAAAABEFAAAAAAAAAAAAABEFAAAAAAAAEgUAAAAAAAAAAAAAEgUAAAAAAAATBQAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAOBQAAAAAAAA4FAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
25,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " up"
|
|
},
|
|
"AwAAABMFAAAAAAAAFAUAAAAAAAAAAAAAFAUAAAAAAAAVBQAAAAAAAAAAAAAVBQAAAAAAABYFAAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAATBQAAAAAAABMFAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
26,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " to"
|
|
},
|
|
"AwAAABYFAAAAAAAAFwUAAAAAAAAAAAAAFwUAAAAAAAAYBQAAAAAAAAAAAAAYBQAAAAAAABkFAAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAWBQAAAAAAABYFAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
27,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " 10uf"
|
|
},
|
|
"BQAAABkFAAAAAAAAGgUAAAAAAAAAAAAAGgUAAAAAAAAbBQAAAAAAAAAAAAAbBQAAAAAAABwFAAAAAAAAAAAAABwFAAAAAAAAHQUAAAAAAAAAAAAAHQUAAAAAAAAeBQAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAZBQAAAAAAABkFAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
28,
|
|
2,
|
|
"left_delete",
|
|
null,
|
|
"AgAAAB0FAAAAAAAAHQUAAAAAAAABAAAAZhwFAAAAAAAAHAUAAAAAAAABAAAAdQ",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAeBQAAAAAAAB4FAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
29,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": "0uf"
|
|
},
|
|
"AwAAABwFAAAAAAAAHQUAAAAAAAAAAAAAHQUAAAAAAAAeBQAAAAAAAAAAAAAeBQAAAAAAAB8FAAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAcBQAAAAAAABwFAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
30,
|
|
1,
|
|
"left_delete",
|
|
null,
|
|
"AQAAAB4FAAAAAAAAHgUAAAAAAAABAAAAZg",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAfBQAAAAAAAB8FAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
31,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": "F"
|
|
},
|
|
"AQAAAB4FAAAAAAAAHwUAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAeBQAAAAAAAB4FAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
34,
|
|
1,
|
|
"ensure_newline_at_eof",
|
|
null,
|
|
"AQAAAP0LAAAAAAAA/gsAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAeBQAAAAAAAB4FAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
38,
|
|
1,
|
|
"run_macro_file",
|
|
{
|
|
"file": "res://Packages/Default/Add Line.sublime-macro",
|
|
"register": "\""
|
|
},
|
|
"AQAAAB8FAAAAAAAAIAUAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAeBQAAAAAAAB4FAAAAAAAAAAAAAADAeEA"
|
|
],
|
|
[
|
|
39,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": "wima"
|
|
},
|
|
"BAAAACAFAAAAAAAAIQUAAAAAAAAAAAAAIQUAAAAAAAAiBQAAAAAAAAAAAAAiBQAAAAAAACMFAAAAAAAAAAAAACMFAAAAAAAAJAUAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAgBQAAAAAAACAFAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
40,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " x2"
|
|
},
|
|
"AwAAACQFAAAAAAAAJQUAAAAAAAAAAAAAJQUAAAAAAAAmBQAAAAAAAAAAAAAmBQAAAAAAACcFAAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAkBQAAAAAAACQFAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
41,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " caps"
|
|
},
|
|
"BQAAACcFAAAAAAAAKAUAAAAAAAAAAAAAKAUAAAAAAAApBQAAAAAAAAAAAAApBQAAAAAAACoFAAAAAAAAAAAAACoFAAAAAAAAKwUAAAAAAAAAAAAAKwUAAAAAAAAsBQAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAnBQAAAAAAACcFAAAAAAAAAAAAAAAA8L8"
|
|
],
|
|
[
|
|
42,
|
|
1,
|
|
"insert",
|
|
{
|
|
"characters": " assorted"
|
|
},
|
|
"CQAAACwFAAAAAAAALQUAAAAAAAAAAAAALQUAAAAAAAAuBQAAAAAAAAAAAAAuBQAAAAAAAC8FAAAAAAAAAAAAAC8FAAAAAAAAMAUAAAAAAAAAAAAAMAUAAAAAAAAxBQAAAAAAAAAAAAAxBQAAAAAAADIFAAAAAAAAAAAAADIFAAAAAAAAMwUAAAAAAAAAAAAAMwUAAAAAAAA0BQAAAAAAAAAAAAA0BQAAAAAAADUFAAAAAAAAAAAAAA",
|
|
"AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAsBQAAAAAAACwFAAAAAAAAAAAAAAAA8L8"
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"file": "etc/diy/diy-bom.md",
|
|
"settings":
|
|
{
|
|
"buffer_size": 6094,
|
|
"encoding": "UTF-8",
|
|
"line_ending": "Unix"
|
|
},
|
|
"undo_stack":
|
|
[
|
|
]
|
|
},
|
|
{
|
|
"file": "/Users/nathanrashleigh/code/f411/src/lib.rs",
|
|
"settings":
|
|
{
|
|
"buffer_size": 588,
|
|
"line_ending": "Unix"
|
|
},
|
|
"undo_stack":
|
|
[
|
|
[
|
|
12,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAAAtAgAAIyFbbm9fc3RkXQovLyAjIVtkZW55KG1pc3NpbmdfZG9jcyldCgpwdWIgZXh0ZXJuIGNyYXRlIGwzZ2QyMDsKcHViIGV4dGVybiBjcmF0ZSBsc20zMDNkbGhjOwpwdWIgZXh0ZXJuIGNyYXRlIHN0bTMyZjR4eF9oYWwgYXMgaGFsOwoKdXNlIGhhbDo6Z3Bpbzo6Z3Bpb2U6OlBFMzsKdXNlIGhhbDo6Z3Bpbzo6e091dHB1dCwgUHVzaFB1bGx9Owp1c2UgaGFsOjppMmM6OkkyYzsKdXNlIGhhbDo6c3BpOjpTcGk7CnVzZSBoYWw6OnBhYzo6e0kyQzEsIFNQSTF9OwoKcHViIG1vZCBsZWQ7CgovLy8gT24gYm9hcmQgTDNHRDIwIGNvbm5lY3RlZCB0byB0aGUgU1BJMSBidXMgdmlhIHRoZSBwaW5zIFBBNSwgUEE2LCBQQTcgYW5kIFBFMwpwdWIgdHlwZSBMM2dkMjAgPSBsM2dkMjA6OkwzZ2QyMDxTcGk8U1BJMT4sIFBFMzxPdXRwdXQ8UHVzaFB1bGw+Pj47CgovLy8gT24gYm9hcmQgTFNNMzAzRExIQyBjb25uZWN0ZWQgdG8gdGhlIEkyQzEgYnVzIHZpYSB0aGUgUEI2IGFuZCBQQjkgcGlucwpwdWIgdHlwZSBMc20zMDNkbGhjID0gbHNtMzAzZGxoYzo6THNtMzAzZGxoYzxJMmM8STJDMT4+OwoAAAAAAAAAADwCAAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAC0CAAAAAAAALQIAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
14,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"BAAAAAAAAAAAAAAAAAAAAAAAAAA8AgAAIyFbbm9fc3RkXQovLyAjIVtkZW55KG1pc3NpbmdfZG9jcyldCgpwdWIgZXh0ZXJuIGNyYXRlIGwzZ2QyMDsKcHViIGV4dGVybiBjcmF0ZSBsc20zMDNkbGhjOwpwdWIgZXh0ZXJuIGNyYXRlIHN0bTMyZjR4eF9oYWwgYXMgaGFsOwoKdXNlIGhhbDo6Z3Bpbzo6Z3Bpb2U6OlBFMzsKdXNlIGhhbDo6Z3Bpbzo6e091dHB1dCwgUHVzaFB1bGx9Owp1c2UgaGFsOjppMmM6OkkyYzsKdXNlIGhhbDo6c3BpOjpTcGk7CnVzZSBoYWw6OnBhYzo6e0kyQzEsIFNQSTF9OwoKcHViIG1vZCBjb2RlYzsKcHViIG1vZCBsZWQ7CgovLy8gT24gYm9hcmQgTDNHRDIwIGNvbm5lY3RlZCB0byB0aGUgU1BJMSBidXMgdmlhIHRoZSBwaW5zIFBBNSwgUEE2LCBQQTcgYW5kIFBFMwpwdWIgdHlwZSBMM2dkMjAgPSBsM2dkMjA6OkwzZ2QyMDxTcGk8U1BJMT4sIFBFMzxPdXRwdXQ8UHVzaFB1bGw+Pj47CgovLy8gT24gYm9hcmQgTFNNMzAzRExIQyBjb25uZWN0ZWQgdG8gdGhlIEkyQzEgYnVzIHZpYSB0aGUgUEI2IGFuZCBQQjkgcGlucwpwdWIgdHlwZSBMc20zMDNkbGhjID0gbHNtMzAzZGxoYzo6THNtMzAzZGxoYzxJMmM8STJDMT4+OwoAAAAAAAAAAEwCAAAAAAAAAAAAAAAAAAAAAAAATAIAAAAAAAAAAAAAAAAAAAAAAABMAgAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAC0CAAAAAAAALQIAAAAAAAAAAAAAAADwvw"
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"file": "/Users/nathanrashleigh/code/f411/src/button.rs",
|
|
"settings":
|
|
{
|
|
"buffer_size": 2180,
|
|
"encoding": "UTF-8",
|
|
"line_ending": "Unix"
|
|
},
|
|
"undo_stack":
|
|
[
|
|
[
|
|
6,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAAAqCAAALy8gIyBPbi1ib2FyZCBVU0VSIGJ1dHRvbgovLwovLyBgQjE6UEEwYCwgaGlnaCA9IHByZXNzZWQgKGV4dGVybmFsIHB1bGwtZG93biArIFJDIG9uIHRoZSBib2FyZDsgdGhlCi8vIGludGVybmFsIHB1bGwtZG93biBpcyBlbmFibGVkIHRvbyBzbyB0aGUgcGluIG5ldmVyIGZsb2F0cykuCgp1c2UgaGFsOjpncGlvOjpncGlvYTo6UEEwOwp1c2UgaGFsOjpncGlvOjp7RWRnZSwgRXh0aVBpbiwgSW5wdXR9Owp1c2UgaGFsOjpwYWM6OkVYVEk7CnVzZSBoYWw6OnN5c2NmZzo6U3lzQ2ZnOwoKLy8vIGBCMTpQQTBgIFVTRVIgYnV0dG9uLCBoaWdoID0gcHJlc3NlZApwdWIgdHlwZSBCMSA9IFBBMDxJbnB1dD47CgovLy8gRWRnZSBzZWVuIGJ5IFtgQnV0dG9uOjpwb2xsYF0gc2luY2UgdGhlIHByZXZpb3VzIGNhbGwKI1tkZXJpdmUoQ2xvbmUsIENvcHksIFBhcnRpYWxFcSldCnB1YiBlbnVtIEV2ZW50IHsKICAgIE5vbmUsCiAgICBQcmVzc2VkLAogICAgUmVsZWFzZWQsCn0KCi8vLyBUaGUgVVNFUiBidXR0b24sIHRyYWNraW5nIGl0cyBvd24gcHJldmlvdXMgbGV2ZWwgZm9yIGVkZ2UgZGV0ZWN0aW9uCnB1YiBzdHJ1Y3QgQnV0dG9uIHsKICAgIHBpbjogQjEsCiAgICBwcmV2X3ByZXNzZWQ6IGJvb2wsCn0KCmltcGwgQnV0dG9uIHsKICAgIC8vLyBDb25maWd1cmVzIFBBMCBhcyBhIHB1bGwtZG93biBpbnB1dCBhbmQgY2FwdHVyZXMgdGhlIGluaXRpYWwgbGV2ZWwKICAgIHB1YiBmbiBuZXcocGEwOiBQQTApIC0+IFNlbGYgewogICAgICAgIGxldCBwaW4gPSBwYTAuaW50b19wdWxsX2Rvd25faW5wdXQoKTsKICAgICAgICBsZXQgcHJldl9wcmVzc2VkID0gcGluLmlzX2hpZ2goKTsKICAgICAgICBCdXR0b24geyBwaW4sIHByZXZfcHJlc3NlZCB9CiAgICB9CgogICAgLy8vIEN1cnJlbnQgbGV2ZWw6IGlzIHRoZSBidXR0b24gaGVsZCBkb3duIHJpZ2h0IG5vdz8KICAgIHB1YiBmbiBwcmVzc2VkKCZzZWxmKSAtPiBib29sIHsKICAgICAgICBzZWxmLnBpbi5pc19oaWdoKCkKICAgIH0KCiAgICAvLy8gU2FtcGxlcyB0aGUgcGluIGFuZCByZXR1cm5zIHRoZSBlZGdlIHNpbmNlIHRoZSBsYXN0IHBvbGwKICAgIHB1YiBmbiBwb2xsKCZtdXQgc2VsZikgLT4gRXZlbnQgewogICAgICAgIGxldCBwcmVzc2VkID0gc2VsZi5waW4uaXNfaGlnaCgpOwogICAgICAgIGxldCBldmVudCA9IG1hdGNoIChzZWxmLnByZXZfcHJlc3NlZCwgcHJlc3NlZCkgewogICAgICAgICAgICAoZmFsc2UsIHRydWUpID0+IEV2ZW50OjpQcmVzc2VkLAogICAgICAgICAgICAodHJ1ZSwgZmFsc2UpID0+IEV2ZW50OjpSZWxlYXNlZCwKICAgICAgICAgICAgXyA9PiBFdmVudDo6Tm9uZSwKICAgICAgICB9OwogICAgICAgIHNlbGYucHJldl9wcmVzc2VkID0gcHJlc3NlZDsKICAgICAgICBldmVudAogICAgfQoKICAgIC8vLyBDb252ZW5pZW5jZTogZGlkIGEgcHJlc3MgZWRnZSBoYXBwZW4gc2luY2UgdGhlIGxhc3QgcG9sbD8KICAgIHB1YiBmbiBqdXN0X3ByZXNzZWQoJm11dCBzZWxmKSAtPiBib29sIHsKICAgICAgICBzZWxmLnBvbGwoKSA9PSBFdmVudDo6UHJlc3NlZAogICAgfQoKICAgIC8vLyBSb3V0ZSB0aGUgcGluIHRvIEVYVEkwIGFuZCBmaXJlIG9uIHRoZSBwcmVzcyAocmlzaW5nKSBlZGdlLgogICAgLy8vIFVubWFza2luZyBgcGFjOjpJbnRlcnJ1cHQ6OkVYVEkwYCBpbiB0aGUgTlZJQyBpcyBsZWZ0IHRvIHRoZSBjYWxsZXIuCiAgICBwdWIgZm4gbGlzdGVuKCZtdXQgc2VsZiwgc3lzY2ZnOiAmbXV0IFN5c0NmZywgZXh0aTogJm11dCBFWFRJKSB7CiAgICAgICAgc2VsZi5waW4ubWFrZV9pbnRlcnJ1cHRfc291cmNlKHN5c2NmZyk7CiAgICAgICAgc2VsZi5waW4udHJpZ2dlcl9vbl9lZGdlKGV4dGksIEVkZ2U6OlJpc2luZyk7CiAgICAgICAgc2VsZi5waW4uZW5hYmxlX2ludGVycnVwdChleHRpKTsKICAgIH0KCiAgICAvLy8gQ2xlYXJzIHRoZSBwZW5kaW5nIEVYVEkgYml0IOKAlCBjYWxsIHRoaXMgaW4gdGhlIGBFWFRJMGAgaGFuZGxlcgogICAgcHViIGZuIGNsZWFyX2ludGVycnVwdCgmbXV0IHNlbGYpIHsKICAgICAgICBzZWxmLnBpbi5jbGVhcl9pbnRlcnJ1cHRfcGVuZGluZ19iaXQoKTsKICAgIH0KfQoAAAAAAAAAANQKAAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALoEAAAAAAAAugQAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
17,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAADcCgAALy8gIyBPbi1ib2FyZCBwdXNoIGJ1dHRvbnMKLy8KLy8gYEIxOlBBMGAgVVNFUiwgaGlnaCA9IHByZXNzZWQgKGV4dGVybmFsIHB1bGwtZG93biArIFJDIG9uIHRoZSBib2FyZDsgdGhlCi8vIGludGVybmFsIHB1bGwtZG93biBpcyBlbmFibGVkIHRvbyBzbyB0aGUgcGluIG5ldmVyIGZsb2F0cykuCi8vIGBCMjpOUlNUYCBSRVNFVCBpcyBoYXJkLXdpcmVkIHRvIHRoZSBNQ1UgcmVzZXQgbGluZSDigJQgaXQgaXMgbm90IGEgR1BJTyBhbmQKLy8gY2Fubm90IGJlIHJlYWQ7IHByZXNzaW5nIGl0IHJlc3RhcnRzIHRoZSBmaXJtd2FyZS4KCnVzZSBoYWw6OmdwaW86OmdwaW9hOjpQQTA7CnVzZSBoYWw6OmdwaW86OntFZGdlLCBFeHRpUGluLCBJbnB1dH07CnVzZSBoYWw6OnBhYzo6RVhUSTsKdXNlIGhhbDo6c3lzY2ZnOjpTeXNDZmc7CgovLy8gYEIxOlBBMGAgVVNFUiBidXR0b24sIGhpZ2ggPSBwcmVzc2VkCnB1YiB0eXBlIEIxID0gUEEwPElucHV0PjsKCi8vLyBUaGUgYm9hcmQncyBwdXNoIGJ1dHRvbnMKcHViIGVudW0gQnV0dG9uSWQgewogICAgLy8vIGBCMTpQQTBgIOKAlCByZWFkYWJsZSBHUElPLCBzZWUgW2BCdXR0b25zOjp1c2VyYF0KICAgIFVzZXIsCiAgICAvLy8gYEIyOk5SU1RgIOKAlCByZXNldHMgdGhlIE1DVTsgbm90IHJlYWRhYmxlCiAgICBSZXNldCwKfQoKLy8vIFRoZSBvbi1ib2FyZCBidXR0b25zIChvbmx5IFVTRVIgaXMgYSByZWFkYWJsZSBHUElPKQpwdWIgc3RydWN0IEJ1dHRvbnMgewogICAgLy8vIGBCMTpQQTBgIFVTRVIKICAgIHB1YiB1c2VyOiBCdXR0b24sCn0KCmltcGwgQnV0dG9ucyB7CiAgICAvLy8gSW5pdGlhbGl6ZXMgdGhlIHJlYWRhYmxlIGJ1dHRvbnMuIFRha2VzIGp1c3QgUEEwIHNvIHRoZSByZXN0IG9mCiAgICAvLy8gR1BJT0Egc3RheXMgYXZhaWxhYmxlIHRvIHRoZSBjYWxsZXIuCiAgICBwdWIgZm4gbmV3KHBhMDogUEEwKSAtPiBTZWxmIHsKICAgICAgICBCdXR0b25zIHsKICAgICAgICAgICAgdXNlcjogQnV0dG9uOjpuZXcocGEwKSwKICAgICAgICB9CiAgICB9Cn0KCi8vLyBFZGdlIHNlZW4gYnkgW2BCdXR0b246OnBvbGxgXSBzaW5jZSB0aGUgcHJldmlvdXMgY2FsbAojW2Rlcml2ZShDbG9uZSwgQ29weSwgUGFydGlhbEVxKV0KcHViIGVudW0gRXZlbnQgewogICAgTm9uZSwKICAgIFByZXNzZWQsCiAgICBSZWxlYXNlZCwKfQoKLy8vIE9uZSByZWFkYWJsZSBidXR0b24sIHRyYWNraW5nIGl0cyBvd24gcHJldmlvdXMgbGV2ZWwgZm9yIGVkZ2UgZGV0ZWN0aW9uCnB1YiBzdHJ1Y3QgQnV0dG9uIHsKICAgIHBpbjogQjEsCiAgICBwcmV2X3ByZXNzZWQ6IGJvb2wsCn0KCmltcGwgQnV0dG9uIHsKICAgIC8vLyBDb25maWd1cmVzIFBBMCBhcyBhIHB1bGwtZG93biBpbnB1dCBhbmQgY2FwdHVyZXMgdGhlIGluaXRpYWwgbGV2ZWwKICAgIHB1YiBmbiBuZXcocGEwOiBQQTApIC0+IFNlbGYgewogICAgICAgIGxldCBwaW4gPSBwYTAuaW50b19wdWxsX2Rvd25faW5wdXQoKTsKICAgICAgICBsZXQgcHJldl9wcmVzc2VkID0gcGluLmlzX2hpZ2goKTsKICAgICAgICBCdXR0b24geyBwaW4sIHByZXZfcHJlc3NlZCB9CiAgICB9CgogICAgLy8vIEN1cnJlbnQgbGV2ZWw6IGlzIHRoZSBidXR0b24gaGVsZCBkb3duIHJpZ2h0IG5vdz8KICAgIHB1YiBmbiBwcmVzc2VkKCZzZWxmKSAtPiBib29sIHsKICAgICAgICBzZWxmLnBpbi5pc19oaWdoKCkKICAgIH0KCiAgICAvLy8gU2FtcGxlcyB0aGUgcGluIGFuZCByZXR1cm5zIHRoZSBlZGdlIHNpbmNlIHRoZSBsYXN0IHBvbGwKICAgIHB1YiBmbiBwb2xsKCZtdXQgc2VsZikgLT4gRXZlbnQgewogICAgICAgIGxldCBwcmVzc2VkID0gc2VsZi5waW4uaXNfaGlnaCgpOwogICAgICAgIGxldCBldmVudCA9IG1hdGNoIChzZWxmLnByZXZfcHJlc3NlZCwgcHJlc3NlZCkgewogICAgICAgICAgICAoZmFsc2UsIHRydWUpID0+IEV2ZW50OjpQcmVzc2VkLAogICAgICAgICAgICAodHJ1ZSwgZmFsc2UpID0+IEV2ZW50OjpSZWxlYXNlZCwKICAgICAgICAgICAgXyA9PiBFdmVudDo6Tm9uZSwKICAgICAgICB9OwogICAgICAgIHNlbGYucHJldl9wcmVzc2VkID0gcHJlc3NlZDsKICAgICAgICBldmVudAogICAgfQoKICAgIC8vLyBDb252ZW5pZW5jZTogZGlkIGEgcHJlc3MgZWRnZSBoYXBwZW4gc2luY2UgdGhlIGxhc3QgcG9sbD8KICAgIHB1YiBmbiBqdXN0X3ByZXNzZWQoJm11dCBzZWxmKSAtPiBib29sIHsKICAgICAgICBzZWxmLnBvbGwoKSA9PSBFdmVudDo6UHJlc3NlZAogICAgfQoKICAgIC8vLyBSb3V0ZSB0aGUgcGluIHRvIEVYVEkwIGFuZCBmaXJlIG9uIHRoZSBwcmVzcyAocmlzaW5nKSBlZGdlLgogICAgLy8vIFVubWFza2luZyBgcGFjOjpJbnRlcnJ1cHQ6OkVYVEkwYCBpbiB0aGUgTlZJQyBpcyBsZWZ0IHRvIHRoZSBjYWxsZXIuCiAgICBwdWIgZm4gbGlzdGVuKCZtdXQgc2VsZiwgc3lzY2ZnOiAmbXV0IFN5c0NmZywgZXh0aTogJm11dCBFWFRJKSB7CiAgICAgICAgc2VsZi5waW4ubWFrZV9pbnRlcnJ1cHRfc291cmNlKHN5c2NmZyk7CiAgICAgICAgc2VsZi5waW4udHJpZ2dlcl9vbl9lZGdlKGV4dGksIEVkZ2U6OlJpc2luZyk7CiAgICAgICAgc2VsZi5waW4uZW5hYmxlX2ludGVycnVwdChleHRpKTsKICAgIH0KCiAgICAvLy8gQ2xlYXJzIHRoZSBwZW5kaW5nIEVYVEkgYml0IOKAlCBjYWxsIHRoaXMgaW4gdGhlIGBFWFRJMGAgaGFuZGxlcgogICAgcHViIGZuIGNsZWFyX2ludGVycnVwdCgmbXV0IHNlbGYpIHsKICAgICAgICBzZWxmLnBpbi5jbGVhcl9pbnRlcnJ1cHRfcGVuZGluZ19iaXQoKTsKICAgIH0KfQoAAAAAAAAAAOcKAAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAI8CAAAAAAAAjwIAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
18,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"AgAAAAAAAAAAAAAAAAAAAAAAAADvCgAALy8gIyBPbi1ib2FyZCBwdXNoIGJ1dHRvbnMKLy8KLy8gYEIxOlBBMGAgVVNFUiwgaGlnaCA9IHByZXNzZWQgKGV4dGVybmFsIHB1bGwtZG93biArIFJDIG9uIHRoZSBib2FyZDsgdGhlCi8vIGludGVybmFsIHB1bGwtZG93biBpcyBlbmFibGVkIHRvbyBzbyB0aGUgcGluIG5ldmVyIGZsb2F0cykuCi8vIGBCMjpOUlNUYCBSRVNFVCBpcyBoYXJkLXdpcmVkIHRvIHRoZSBNQ1UgcmVzZXQgbGluZSDigJQgaXQgaXMgbm90IGEgR1BJTyBhbmQKLy8gY2Fubm90IGJlIHJlYWQ7IHByZXNzaW5nIGl0IHJlc3RhcnRzIHRoZSBmaXJtd2FyZS4KCnVzZSBoYWw6OmdwaW86OmdwaW9hOjpQQTA7CnVzZSBoYWw6OmdwaW86OntFZGdlLCBFeHRpUGluLCBJbnB1dH07CnVzZSBoYWw6OnBhYzo6e0ludGVycnVwdCwgRVhUSSwgTlZJQ307CnVzZSBoYWw6OnN5c2NmZzo6U3lzQ2ZnOwoKLy8vIGBCMTpQQTBgIFVTRVIgYnV0dG9uLCBoaWdoID0gcHJlc3NlZApwdWIgdHlwZSBCMSA9IFBBMDxJbnB1dD47CgovLy8gVGhlIGJvYXJkJ3MgcHVzaCBidXR0b25zCnB1YiBlbnVtIEJ1dHRvbklkIHsKICAgIC8vLyBgQjE6UEEwYCDigJQgcmVhZGFibGUgR1BJTywgc2VlIFtgQnV0dG9uczo6dXNlcmBdCiAgICBVc2VyLAogICAgLy8vIGBCMjpOUlNUYCDigJQgcmVzZXRzIHRoZSBNQ1U7IG5vdCByZWFkYWJsZQogICAgUmVzZXQsCn0KCi8vLyBUaGUgb24tYm9hcmQgYnV0dG9ucyAob25seSBVU0VSIGlzIGEgcmVhZGFibGUgR1BJTykKcHViIHN0cnVjdCBCdXR0b25zIHsKICAgIC8vLyBgQjE6UEEwYCBVU0VSCiAgICBwdWIgdXNlcjogQnV0dG9uLAp9CgppbXBsIEJ1dHRvbnMgewogICAgLy8vIEluaXRpYWxpemVzIHRoZSByZWFkYWJsZSBidXR0b25zLiBUYWtlcyBqdXN0IFBBMCBzbyB0aGUgcmVzdCBvZgogICAgLy8vIEdQSU9BIHN0YXlzIGF2YWlsYWJsZSB0byB0aGUgY2FsbGVyLgogICAgcHViIGZuIG5ldyhwYTA6IFBBMCkgLT4gU2VsZiB7CiAgICAgICAgQnV0dG9ucyB7CiAgICAgICAgICAgIHVzZXI6IEJ1dHRvbjo6bmV3KHBhMCksCiAgICAgICAgfQogICAgfQp9CgovLy8gRWRnZSBzZWVuIGJ5IFtgQnV0dG9uOjpwb2xsYF0gc2luY2UgdGhlIHByZXZpb3VzIGNhbGwKI1tkZXJpdmUoQ2xvbmUsIENvcHksIFBhcnRpYWxFcSldCnB1YiBlbnVtIEV2ZW50IHsKICAgIE5vbmUsCiAgICBQcmVzc2VkLAogICAgUmVsZWFzZWQsCn0KCi8vLyBPbmUgcmVhZGFibGUgYnV0dG9uLCB0cmFja2luZyBpdHMgb3duIHByZXZpb3VzIGxldmVsIGZvciBlZGdlIGRldGVjdGlvbgpwdWIgc3RydWN0IEJ1dHRvbiB7CiAgICBwaW46IEIxLAogICAgcHJldl9wcmVzc2VkOiBib29sLAp9CgppbXBsIEJ1dHRvbiB7CiAgICAvLy8gQ29uZmlndXJlcyBQQTAgYXMgYSBwdWxsLWRvd24gaW5wdXQgYW5kIGNhcHR1cmVzIHRoZSBpbml0aWFsIGxldmVsCiAgICBwdWIgZm4gbmV3KHBhMDogUEEwKSAtPiBTZWxmIHsKICAgICAgICBsZXQgcGluID0gcGEwLmludG9fcHVsbF9kb3duX2lucHV0KCk7CiAgICAgICAgbGV0IHByZXZfcHJlc3NlZCA9IHBpbi5pc19oaWdoKCk7CiAgICAgICAgQnV0dG9uIHsgcGluLCBwcmV2X3ByZXNzZWQgfQogICAgfQoKICAgIC8vLyBDdXJyZW50IGxldmVsOiBpcyB0aGUgYnV0dG9uIGhlbGQgZG93biByaWdodCBub3c/CiAgICBwdWIgZm4gcHJlc3NlZCgmc2VsZikgLT4gYm9vbCB7CiAgICAgICAgc2VsZi5waW4uaXNfaGlnaCgpCiAgICB9CgogICAgLy8vIFNhbXBsZXMgdGhlIHBpbiBhbmQgcmV0dXJucyB0aGUgZWRnZSBzaW5jZSB0aGUgbGFzdCBwb2xsCiAgICBwdWIgZm4gcG9sbCgmbXV0IHNlbGYpIC0+IEV2ZW50IHsKICAgICAgICBsZXQgcHJlc3NlZCA9IHNlbGYucGluLmlzX2hpZ2goKTsKICAgICAgICBsZXQgZXZlbnQgPSBtYXRjaCAoc2VsZi5wcmV2X3ByZXNzZWQsIHByZXNzZWQpIHsKICAgICAgICAgICAgKGZhbHNlLCB0cnVlKSA9PiBFdmVudDo6UHJlc3NlZCwKICAgICAgICAgICAgKHRydWUsIGZhbHNlKSA9PiBFdmVudDo6UmVsZWFzZWQsCiAgICAgICAgICAgIF8gPT4gRXZlbnQ6Ok5vbmUsCiAgICAgICAgfTsKICAgICAgICBzZWxmLnByZXZfcHJlc3NlZCA9IHByZXNzZWQ7CiAgICAgICAgZXZlbnQKICAgIH0KCiAgICAvLy8gQ29udmVuaWVuY2U6IGRpZCBhIHByZXNzIGVkZ2UgaGFwcGVuIHNpbmNlIHRoZSBsYXN0IHBvbGw/CiAgICBwdWIgZm4ganVzdF9wcmVzc2VkKCZtdXQgc2VsZikgLT4gYm9vbCB7CiAgICAgICAgc2VsZi5wb2xsKCkgPT0gRXZlbnQ6OlByZXNzZWQKICAgIH0KCiAgICAvLy8gUm91dGUgdGhlIHBpbiB0byBFWFRJMCBhbmQgZmlyZSBvbiB0aGUgcHJlc3MgKHJpc2luZykgZWRnZS4KICAgIC8vLyBVbm1hc2tpbmcgYHBhYzo6SW50ZXJydXB0OjpFWFRJMGAgaW4gdGhlIE5WSUMgaXMgbGVmdCB0byB0aGUgY2FsbGVyLgogICAgcHViIGZuIGxpc3RlbigmbXV0IHNlbGYsIHN5c2NmZzogJm11dCBTeXNDZmcsIGV4dGk6ICZtdXQgRVhUSSkgewogICAgICAgIHNlbGYucGluLm1ha2VfaW50ZXJydXB0X3NvdXJjZShzeXNjZmcpOwogICAgICAgIHNlbGYucGluLnRyaWdnZXJfb25fZWRnZShleHRpLCBFZGdlOjpSaXNpbmcpOwogICAgICAgIHNlbGYucGluLmVuYWJsZV9pbnRlcnJ1cHQoZXh0aSk7CiAgICB9CgogICAgLy8vIENsZWFycyB0aGUgcGVuZGluZyBFWFRJIGJpdCDigJQgY2FsbCB0aGlzIGluIHRoZSBgRVhUSTBgIGhhbmRsZXIKICAgIHB1YiBmbiBjbGVhcl9pbnRlcnJ1cHQoJm11dCBzZWxmKSB7CiAgICAgICAgc2VsZi5waW4uY2xlYXJfaW50ZXJydXB0X3BlbmRpbmdfYml0KCk7CiAgICB9Cn0KAAAAAAAAAACbDAAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAI8CAAAAAAAAjwIAAAAAAAAAAAAAAADwvw"
|
|
],
|
|
[
|
|
19,
|
|
1,
|
|
"revert",
|
|
null,
|
|
"BAAAAAAAAAAAAAAAAAAAAAAAAAClDAAALy8gIyBPbi1ib2FyZCBwdXNoIGJ1dHRvbnMKLy8KLy8gYEIxOlBBMGAgVVNFUiwgaGlnaCA9IHByZXNzZWQgKGV4dGVybmFsIHB1bGwtZG93biArIFJDIG9uIHRoZSBib2FyZDsgdGhlCi8vIGludGVybmFsIHB1bGwtZG93biBpcyBlbmFibGVkIHRvbyBzbyB0aGUgcGluIG5ldmVyIGZsb2F0cykuCi8vIGBCMjpOUlNUYCBSRVNFVCBpcyBoYXJkLXdpcmVkIHRvIHRoZSBNQ1UgcmVzZXQgbGluZSDigJQgaXQgaXMgbm90IGEgR1BJTyBhbmQKLy8gY2Fubm90IGJlIHJlYWQ7IHByZXNzaW5nIGl0IHJlc3RhcnRzIHRoZSBmaXJtd2FyZS4KCnVzZSBoYWw6OmdwaW86OmdwaW9hOjpQQTA7CnVzZSBoYWw6OmdwaW86OntFZGdlLCBFeHRpUGluLCBJbnB1dH07CnVzZSBoYWw6OnBhYzo6e0ludGVycnVwdCwgRVhUSSwgTlZJQ307CnVzZSBoYWw6OnN5c2NmZzo6U3lzQ2ZnOwoKLy8vIGBCMTpQQTBgIFVTRVIgYnV0dG9uLCBoaWdoID0gcHJlc3NlZApwdWIgdHlwZSBCMSA9IFBBMDxJbnB1dD47CgovLy8gVGhlIGJvYXJkJ3MgcHVzaCBidXR0b25zCnB1YiBlbnVtIEJ1dHRvbklkIHsKICAgIC8vLyBgQjE6UEEwYCDigJQgcmVhZGFibGUgR1BJTywgc2VlIFtgQnV0dG9uczo6dXNlcmBdCiAgICBVc2VyLAogICAgLy8vIGBCMjpOUlNUYCDigJQgcmVzZXRzIHRoZSBNQ1U7IG5vdCByZWFkYWJsZQogICAgUmVzZXQsCn0KCi8vLyBUaGUgb24tYm9hcmQgYnV0dG9ucyAob25seSBVU0VSIGlzIGEgcmVhZGFibGUgR1BJTykKcHViIHN0cnVjdCBCdXR0b25zIHsKICAgIC8vLyBgQjE6UEEwYCBVU0VSCiAgICBwdWIgdXNlcjogQnV0dG9uLAp9CgppbXBsIEJ1dHRvbnMgewogICAgLy8vIEluaXRpYWxpemVzIHRoZSByZWFkYWJsZSBidXR0b25zLiBUYWtlcyBqdXN0IFBBMCBzbyB0aGUgcmVzdCBvZgogICAgLy8vIEdQSU9BIHN0YXlzIGF2YWlsYWJsZSB0byB0aGUgY2FsbGVyLgogICAgcHViIGZuIG5ldyhwYTA6IFBBMCkgLT4gU2VsZiB7CiAgICAgICAgQnV0dG9ucyB7CiAgICAgICAgICAgIHVzZXI6IEJ1dHRvbjo6bmV3KHBhMCksCiAgICAgICAgfQogICAgfQp9CgovLy8gRWRnZSBzZWVuIGJ5IFtgQnV0dG9uOjpwb2xsYF0gc2luY2UgdGhlIHByZXZpb3VzIGNhbGwKI1tkZXJpdmUoQ2xvbmUsIENvcHksIFBhcnRpYWxFcSldCnB1YiBlbnVtIEV2ZW50IHsKICAgIE5vbmUsCiAgICBQcmVzc2VkLAogICAgUmVsZWFzZWQsCn0KCi8vLyBPbmUgcmVhZGFibGUgYnV0dG9uLCB0cmFja2luZyBpdHMgb3duIHByZXZpb3VzIGxldmVsIGZvciBlZGdlIGRldGVjdGlvbgpwdWIgc3RydWN0IEJ1dHRvbiB7CiAgICBwaW46IEIxLAogICAgcHJldl9wcmVzc2VkOiBib29sLAp9CgppbXBsIEJ1dHRvbiB7CiAgICAvLy8gQ29uZmlndXJlcyBQQTAgYXMgYSBwdWxsLWRvd24gaW5wdXQgYW5kIGNhcHR1cmVzIHRoZSBpbml0aWFsIGxldmVsCiAgICBwdWIgZm4gbmV3KHBhMDogUEEwKSAtPiBTZWxmIHsKICAgICAgICBsZXQgcGluID0gcGEwLmludG9fcHVsbF9kb3duX2lucHV0KCk7CiAgICAgICAgbGV0IHByZXZfcHJlc3NlZCA9IHBpbi5pc19oaWdoKCk7CiAgICAgICAgQnV0dG9uIHsgcGluLCBwcmV2X3ByZXNzZWQgfQogICAgfQoKICAgIC8vLyBDdXJyZW50IGxldmVsOiBpcyB0aGUgYnV0dG9uIGhlbGQgZG93biByaWdodCBub3c/CiAgICBwdWIgZm4gcHJlc3NlZCgmc2VsZikgLT4gYm9vbCB7CiAgICAgICAgc2VsZi5waW4uaXNfaGlnaCgpCiAgICB9CgogICAgLy8vIFNhbXBsZXMgdGhlIHBpbiBhbmQgcmV0dXJucyB0aGUgZWRnZSBzaW5jZSB0aGUgbGFzdCBwb2xsCiAgICBwdWIgZm4gcG9sbCgmbXV0IHNlbGYpIC0+IEV2ZW50IHsKICAgICAgICBsZXQgcHJlc3NlZCA9IHNlbGYucGluLmlzX2hpZ2goKTsKICAgICAgICBsZXQgZXZlbnQgPSBtYXRjaCAoc2VsZi5wcmV2X3ByZXNzZWQsIHByZXNzZWQpIHsKICAgICAgICAgICAgKGZhbHNlLCB0cnVlKSA9PiBFdmVudDo6UHJlc3NlZCwKICAgICAgICAgICAgKHRydWUsIGZhbHNlKSA9PiBFdmVudDo6UmVsZWFzZWQsCiAgICAgICAgICAgIF8gPT4gRXZlbnQ6Ok5vbmUsCiAgICAgICAgfTsKICAgICAgICBzZWxmLnByZXZfcHJlc3NlZCA9IHByZXNzZWQ7CiAgICAgICAgZXZlbnQKICAgIH0KCiAgICAvLy8gQ29udmVuaWVuY2U6IGRpZCBhIHByZXNzIGVkZ2UgaGFwcGVuIHNpbmNlIHRoZSBsYXN0IHBvbGw/CiAgICBwdWIgZm4ganVzdF9wcmVzc2VkKCZtdXQgc2VsZikgLT4gYm9vbCB7CiAgICAgICAgc2VsZi5wb2xsKCkgPT0gRXZlbnQ6OlByZXNzZWQKICAgIH0KCiAgICAvLy8gUm91dGUgdGhlIHBpbiB0byBFWFRJMCwgZmlyZSBvbiB0aGUgcHJlc3MgKHJpc2luZykgZWRnZSwgYW5kIHVubWFzawogICAgLy8vIHRoZSBpbnRlcnJ1cHQgaW4gdGhlIE5WSUMg4oCUIGFmdGVyIHRoaXMgdGhlIGBFWFRJMGAgaGFuZGxlciBydW5zIG9uCiAgICAvLy8gZXZlcnkgcHJlc3MuIENhbGwgW2BjbGVhcl9pbnRlcnJ1cHRgXShTZWxmOjpjbGVhcl9pbnRlcnJ1cHQpIGluc2lkZQogICAgLy8vIHRoYXQgaGFuZGxlci4KICAgIHB1YiBmbiBsaXN0ZW4oJm11dCBzZWxmLCBzeXNjZmc6ICZtdXQgU3lzQ2ZnLCBleHRpOiAmbXV0IEVYVEkpIHsKICAgICAgICBzZWxmLnBpbi5tYWtlX2ludGVycnVwdF9zb3VyY2Uoc3lzY2ZnKTsKICAgICAgICBzZWxmLnBpbi50cmlnZ2VyX29uX2VkZ2UoZXh0aSwgRWRnZTo6UmlzaW5nKTsKICAgICAgICBzZWxmLnBpbi5lbmFibGVfaW50ZXJydXB0KGV4dGkpOwogICAgICAgIC8vIE5WSUM6OnVubWFzayBpcyBgdW5zYWZlYCBvbmx5IGJlY2F1c2UgdW5tYXNraW5nIGNhbiBicmVhawogICAgICAgIC8vIG1hc2stYmFzZWQgY3JpdGljYWwgc2VjdGlvbnM7IFBSSU1BU0stYmFzZWQgc2VjdGlvbnMgKGkuZS4KICAgICAgICAvLyBgY29ydGV4X206OmludGVycnVwdDo6ZnJlZWAsIHRoZSBvbmx5IGtpbmQgdXNlZCBvbiB0aGlzIGJvYXJkKQogICAgICAgIC8vIG1hc2sgZXZlcnl0aGluZyByZWdhcmRsZXNzLCBzbyB0aGlzIGNhbm5vdCB2aW9sYXRlIHRoZW0uCiAgICAgICAgdW5zYWZlIHsgTlZJQzo6dW5tYXNrKEludGVycnVwdDo6RVhUSTApIH07CiAgICB9CgogICAgLy8vIENsZWFycyB0aGUgcGVuZGluZyBFWFRJIGJpdCDigJQgY2FsbCB0aGlzIGluIHRoZSBgRVhUSTBgIGhhbmRsZXIKICAgIHB1YiBmbiBjbGVhcl9pbnRlcnJ1cHQoJm11dCBzZWxmKSB7CiAgICAgICAgc2VsZi5waW4uY2xlYXJfaW50ZXJydXB0X3BlbmRpbmdfYml0KCk7CiAgICB9Cn0KAAAAAAAAAACECAAAAAAAAAAAAAAAAAAAAAAAAIQIAAAAAAAAAAAAAAAAAAAAAAAAhAgAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAI8CAAAAAAAAjwIAAAAAAAAAAAAAAADwvw"
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"file": "/Users/nathanrashleigh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lsm303dlhc-0.2.0/src/lib.rs",
|
|
"settings":
|
|
{
|
|
"buffer_size": 6702,
|
|
"line_ending": "Unix"
|
|
}
|
|
},
|
|
{
|
|
"file": "build.rs",
|
|
"settings":
|
|
{
|
|
"buffer_size": 590,
|
|
"encoding": "UTF-8",
|
|
"line_ending": "Unix",
|
|
"name": "use std::env;"
|
|
},
|
|
"undo_stack":
|
|
[
|
|
[
|
|
3,
|
|
1,
|
|
"paste",
|
|
null,
|
|
"AQAAAAAAAAAAAAAATgIAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvw"
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"file": ".cargo/config.toml",
|
|
"settings":
|
|
{
|
|
"buffer_size": 993,
|
|
"encoding": "UTF-8",
|
|
"line_ending": "Unix",
|
|
"name": "[target.'cfg(all(target_arch = \"arm\", target_os ="
|
|
},
|
|
"undo_stack":
|
|
[
|
|
[
|
|
1,
|
|
1,
|
|
"paste",
|
|
null,
|
|
"AQAAAAAAAAAAAAAA4QMAAAAAAAAAAAAA",
|
|
"AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvw"
|
|
]
|
|
]
|
|
}
|
|
],
|
|
"build_system": "",
|
|
"build_system_choices":
|
|
[
|
|
],
|
|
"build_varint": "",
|
|
"command_palette":
|
|
{
|
|
"height": 0.0,
|
|
"last_filter": "",
|
|
"selected_items":
|
|
[
|
|
[
|
|
"diag",
|
|
"LSP: Toggle Diagnostics Panel"
|
|
],
|
|
[
|
|
"lsp ",
|
|
"LSP: Troubleshoot Server"
|
|
],
|
|
[
|
|
"lsp",
|
|
"LSP: Toggle Diagnostics Panel"
|
|
],
|
|
[
|
|
"json",
|
|
"Pretty JSON: Format JSON"
|
|
],
|
|
[
|
|
"log",
|
|
"Git: Log Current File"
|
|
],
|
|
[
|
|
"diff",
|
|
"Git: Diff Current File"
|
|
],
|
|
[
|
|
"blame",
|
|
"Git: Blame"
|
|
],
|
|
[
|
|
"preview",
|
|
"Markdown Preview: Preview in Browser"
|
|
],
|
|
[
|
|
"balme",
|
|
"Git: Blame"
|
|
],
|
|
[
|
|
"form",
|
|
"Pretty JSON: Format JSON"
|
|
],
|
|
[
|
|
"check",
|
|
"Git: Checkout Current File"
|
|
],
|
|
[
|
|
"mark",
|
|
"Markdown Preview: Preview in Browser"
|
|
],
|
|
[
|
|
"install",
|
|
"Package Control: Install Package"
|
|
],
|
|
[
|
|
"remove",
|
|
"Package Control: Remove Package"
|
|
],
|
|
[
|
|
"bl",
|
|
"Git Blame: Show"
|
|
],
|
|
[
|
|
"forma",
|
|
"LSP: Format File"
|
|
],
|
|
[
|
|
"yaml",
|
|
"Set Syntax: YAML"
|
|
],
|
|
[
|
|
"format",
|
|
"LSP: Format File"
|
|
],
|
|
[
|
|
"source",
|
|
"LSP: Source Action"
|
|
],
|
|
[
|
|
"xml",
|
|
"Indent XML"
|
|
],
|
|
[
|
|
"pretty",
|
|
"Pretty JSON: Format JSON"
|
|
],
|
|
[
|
|
"action",
|
|
"LSP: Code Action"
|
|
],
|
|
[
|
|
"diagnost",
|
|
"LSP: Toggle Diagnostics Panel"
|
|
],
|
|
[
|
|
"sour",
|
|
"LSP: Source Action"
|
|
],
|
|
[
|
|
"dia",
|
|
"LSP: Toggle Diagnostics Panel"
|
|
],
|
|
[
|
|
"lsp sou",
|
|
"LSP: Source Action"
|
|
],
|
|
[
|
|
"lsp code",
|
|
"LSP: Code Action"
|
|
],
|
|
[
|
|
"for",
|
|
"LSP: Format File"
|
|
],
|
|
[
|
|
"diagno",
|
|
"LSP: Toggle Diagnostics Panel"
|
|
],
|
|
[
|
|
"lsp source",
|
|
"LSP: Source Action"
|
|
],
|
|
[
|
|
"code",
|
|
"LSP: Code Action"
|
|
],
|
|
[
|
|
"inden",
|
|
"Indent XML"
|
|
],
|
|
[
|
|
"pyt",
|
|
"Set Syntax: Python"
|
|
],
|
|
[
|
|
"ac",
|
|
"LSP: Code Action"
|
|
],
|
|
[
|
|
"f",
|
|
"LSP: Format File"
|
|
],
|
|
[
|
|
"fo",
|
|
"LSP: Format File"
|
|
],
|
|
[
|
|
"hapro",
|
|
"Set Syntax: Haproxy"
|
|
],
|
|
[
|
|
"edit",
|
|
"Project: Edit Project"
|
|
],
|
|
[
|
|
"lsp log",
|
|
"LSP: Toggle Log Panel"
|
|
],
|
|
[
|
|
"trouble",
|
|
"LSP: Troubleshoot Server"
|
|
],
|
|
[
|
|
"diagn",
|
|
"LSP: Toggle Diagnostics Panel"
|
|
],
|
|
[
|
|
"troubvle",
|
|
"LSP: Troubleshoot Server"
|
|
],
|
|
[
|
|
"spaces",
|
|
"Indentation: Convert to Spaces"
|
|
],
|
|
[
|
|
"ruff",
|
|
"Preferences: LSP-ruff Settings"
|
|
],
|
|
[
|
|
"enable",
|
|
"Package Control: Enable Package"
|
|
],
|
|
[
|
|
"restart",
|
|
"LSP: Restart Server"
|
|
],
|
|
[
|
|
"config",
|
|
"LSP-pyright: Create Pyright Configuration File"
|
|
],
|
|
[
|
|
"lspyright",
|
|
"LSP-pyright: Create Pyright Configuration File"
|
|
],
|
|
[
|
|
"editg",
|
|
"Code Folding: Fold Tag Attributes"
|
|
],
|
|
[
|
|
"lsp lo",
|
|
"LSP: Toggle Log Panel"
|
|
],
|
|
[
|
|
"project edit",
|
|
"Project: Edit Project"
|
|
],
|
|
[
|
|
"settings",
|
|
"Preferences: LSP-pyright Settings"
|
|
],
|
|
[
|
|
"create py",
|
|
"LSP-pyright: Create Pyright Configuration File"
|
|
],
|
|
[
|
|
"dif",
|
|
"Git: Diff Current File"
|
|
],
|
|
[
|
|
"jso",
|
|
"Set Syntax: JSON"
|
|
],
|
|
[
|
|
"prewview",
|
|
"Markdown Preview: Preview in Browser"
|
|
],
|
|
[
|
|
"disable",
|
|
"Package Control: Disable Package"
|
|
],
|
|
[
|
|
"haproxy",
|
|
"Set Syntax: Haproxy"
|
|
],
|
|
[
|
|
"debugg",
|
|
"Debugger: Add Configuration"
|
|
],
|
|
[
|
|
"debugger",
|
|
"Debugger: Open"
|
|
],
|
|
[
|
|
"debug",
|
|
"Debugger: Add Configuration"
|
|
],
|
|
[
|
|
"ch",
|
|
"Git: Checkout Current File"
|
|
],
|
|
[
|
|
"bash",
|
|
"Set Syntax: Bash"
|
|
],
|
|
[
|
|
"dockeril",
|
|
"Set Syntax: Dockerfile"
|
|
],
|
|
[
|
|
"dockerfil",
|
|
"Set Syntax: Dockerfile"
|
|
],
|
|
[
|
|
"word",
|
|
"Word Wrap: Toggle"
|
|
],
|
|
[
|
|
"wor",
|
|
"Word Wrap: Toggle"
|
|
],
|
|
[
|
|
"redin",
|
|
"Indentation: Reindent Lines"
|
|
],
|
|
[
|
|
"py",
|
|
"Set Syntax: Python"
|
|
],
|
|
[
|
|
"terr",
|
|
"Set Syntax: Terraform"
|
|
],
|
|
[
|
|
"ha",
|
|
"Set Syntax: Haproxy"
|
|
],
|
|
[
|
|
"haxp",
|
|
"Set Syntax: Haproxy"
|
|
],
|
|
[
|
|
"pyth",
|
|
"Set Syntax: Python"
|
|
],
|
|
[
|
|
"pytho",
|
|
"Set Syntax: Python"
|
|
],
|
|
[
|
|
"checkout",
|
|
"Git: Checkout Current File"
|
|
],
|
|
[
|
|
"ja",
|
|
"Set Syntax: JavaScript"
|
|
],
|
|
[
|
|
"javas",
|
|
"Set Syntax: JavaScript"
|
|
],
|
|
[
|
|
"di",
|
|
"Git: Diff Current File"
|
|
],
|
|
[
|
|
"ans",
|
|
"Set Syntax: Ansible"
|
|
],
|
|
[
|
|
"isntall",
|
|
"Package Control: Install Package"
|
|
],
|
|
[
|
|
"xm",
|
|
"Set Syntax: XML"
|
|
],
|
|
[
|
|
"ansibl",
|
|
"Set Syntax: Ansible"
|
|
],
|
|
[
|
|
"gru",
|
|
"gruvbox: Select Theme"
|
|
],
|
|
[
|
|
"an",
|
|
"Set Syntax: Ansible"
|
|
],
|
|
[
|
|
"ansible",
|
|
"Set Syntax: Ansible"
|
|
],
|
|
[
|
|
"inst",
|
|
"Package Control: Install Package"
|
|
],
|
|
[
|
|
"isntal",
|
|
"Package Control: Install Package"
|
|
],
|
|
[
|
|
"terra",
|
|
"Set Syntax: Terraform"
|
|
],
|
|
[
|
|
"git log",
|
|
"Git: Log Current File"
|
|
],
|
|
[
|
|
"pyright",
|
|
"LSP-pyright: Create Pyright Configuration File"
|
|
],
|
|
[
|
|
"syn py",
|
|
"Set Syntax: Python"
|
|
],
|
|
[
|
|
"goto",
|
|
"LSP: Goto Definition"
|
|
],
|
|
[
|
|
"git bla",
|
|
"Git Blame: Show"
|
|
],
|
|
[
|
|
"gruv",
|
|
"gruvbox: Select Theme"
|
|
]
|
|
],
|
|
"width": 0.0
|
|
},
|
|
"console":
|
|
{
|
|
"height": 912.0,
|
|
"history":
|
|
[
|
|
]
|
|
},
|
|
"distraction_free":
|
|
{
|
|
"menu_visible": true,
|
|
"show_minimap": false,
|
|
"show_open_files": false,
|
|
"show_tabs": false,
|
|
"side_bar_visible": false,
|
|
"status_bar_visible": false
|
|
},
|
|
"expanded_folders":
|
|
[
|
|
"/Users/nathanrashleigh/vlt/projects/ambium",
|
|
"/Users/nathanrashleigh/vlt/projects/ambium/.cargo",
|
|
"/Users/nathanrashleigh/vlt/projects/ambium/etc",
|
|
"/Users/nathanrashleigh/vlt/projects/ambium/etc/diy",
|
|
"/Users/nathanrashleigh/vlt/projects/ambium/src",
|
|
"/Users/nathanrashleigh/code/f411",
|
|
"/Users/nathanrashleigh/code/f411/examples",
|
|
"/Users/nathanrashleigh/code/f411/src"
|
|
],
|
|
"file_history":
|
|
[
|
|
"/Users/nathanrashleigh/vlt/projects/ambium/README.md",
|
|
"/Users/nathanrashleigh/code/f411/src/lib.rs",
|
|
"/Users/nathanrashleigh/vlt/projects/ambium/justfile",
|
|
"/Users/nathanrashleigh/vlt/projects/ambium/Cargo.toml",
|
|
"/Users/nathanrashleigh/vlt/projects/ambium/ambium.sublime-project",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/justfile",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/data_plane/telemetry_api_types.py",
|
|
"/Users/nathanrashleigh/switchdin/pants.toml",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/common/external_interfaces/kafka/kal_types.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/docker-compose-monitoring.yaml",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/pyproject.toml",
|
|
"/Users/nathanrashleigh/terraform_aws_infra/grafana/digitalcompliance_team.tf",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/docker-bake.hcl",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/.claude/settings.local.json",
|
|
"/Users/nathanrashleigh/switchdin/components/aws_bedrock/deployment/prod/data-lake/main.tf",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/prod/switchdin_main/rmq.tf",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/prod/switchdin_main/batchlayer_a.tf",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/docker-compose.yaml",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/docker-compose-infra.yaml",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/tests/services/aggregator.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/tests/cactus/Dockerfile",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/tests/cactus/dependencies/requirements.txt",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/tests/pki/pki.sh",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/docker-compose-dev.yaml",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/BUILD",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/data_plane/data_plane_api_types.py",
|
|
"/Users/nathanrashleigh/switchdin/components/lake/tools/telemetry_data_mapper/deployment/switchdin-main/production/main.tf",
|
|
"/Users/nathanrashleigh/switchdin/.github/workflows/telemetry-data-mapper.yaml",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/Dockerfile.pytest",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/derapi/entrypoints/dependencies.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/common/data_transfer_objects/devices_v2.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/derapi/entrypoints/derapi_app.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/derapi/entrypoints/middleware.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/derapi/use_cases/resource_request.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/common/entities/events/der_events.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/common/data_transfer_objects/oem_data.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/common/external_interfaces/kafka/kafka_async_listener.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/asyncapi/listeners/telemetry_listener.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/Dockerfile.base",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/common/listeners/listener_entrypoint.py",
|
|
"/Users/nathanrashleigh/switchdin/tools/dev/bin/activate_component.sh",
|
|
"/Users/nathanrashleigh/switchdin/tools/dev/bin/claude_pretool_check.sh",
|
|
"/Users/nathanrashleigh/terraform_aws_infra/switchdin-main/route53-switchdin-com.tf",
|
|
"/Users/nathanrashleigh/switchdin/components/aws_bedrock/deployment/prod/au_shared_vef_prod_1/main.tf",
|
|
"/Users/nathanrashleigh/switchdin/shared/python/resolves/standard_py312/requirements.in",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/dependencies/requirements.in",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/deployment/test/gsf-isvt/monitoring/04_alerts.tf",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/deployment/prod/au-horizonpower-flexgw-prod-1/aws/00_hpprod_main.tf",
|
|
"/Users/nathanrashleigh/switchdin/components/aws_bedrock/deployment/src/modules/aws_base/main.tf",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/roles/switchdin.docker_rabbitmq_proxy/templates/haproxy.cfg",
|
|
"/Users/nathanrashleigh/terraform_aws_infra/switchdin-main/security_groups.tf",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/environments/prod/group_vars/all/switchdin_users.yml",
|
|
"/Users/nathanrashleigh/switchdin/components/stormcloud-api/deployment/production/switchdin-main/prod_inventory.ini",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/401_rabbitMQBrokers.yml",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/environments/prod/production_inventory.ini",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/402_rabbitMQProxy.yml",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/roles/switchdin.docker_rabbitmq_proxy/defaults/main.yml",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/sshpi_test.tf",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/roles/switchdin.docker_haproxy/templates/haproxy.cfg",
|
|
"/Users/nathanrashleigh/code/droplet/local/haproxy/haproxy.cfg",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/roles/switchdin.docker_rabbitmq/tasks/main.yml",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/roles/switchdin.rabbitmq_users/tasks/main.yml",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/ansible/group_vars/all/switchdin_users.yml",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/roles/switchdin.user_management/README.md",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/roles/switchdin.sshpi/tasks/main.yml",
|
|
"/Users/nathanrashleigh/switchdin/components/stormcloud-api/src/switchdin/apps/devices/services/tests/droplet_v4_schemas_sample.json",
|
|
"/Users/nathanrashleigh/switchdin/tools/demo_data_copy/pyproject.toml",
|
|
"/Users/nathanrashleigh/switchdin/tools/demo_data_copy/src/demo_data_copy/cli.py",
|
|
"/Users/nathanrashleigh/switchdin/tools/demo_data_copy/copy.sh",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/.mcp.json",
|
|
"/private/tmp/claude-501/-Users-nathanrashleigh-switchdin-tools-demo-data-copy/3911ef89-05ff-4a90-8aca-d86b3b7e421a/scratchpad/insert.sql",
|
|
"/Users/nathanrashleigh/.claude.json",
|
|
"/Users/nathanrashleigh/switchdin/components/stormcloud-api/src/switchdin/apps/devices/services/tests/test_endpoint_config_data.py",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline_v2/deployment/prod/au_shared_vef_prod_1/main.tf",
|
|
"/Users/nathanrashleigh/terraform_aws_infra/switchdin-main/route53-switchdin-in.tf",
|
|
"/Users/nathanrashleigh/switchdin/tools/demo_data_copy/src/progress.py",
|
|
"/Users/nathanrashleigh/switchdin/tools/demo_data_copy/src/__init__.py",
|
|
"/Users/nathanrashleigh/switchdin/components/stormcloud-api/deployment/src/environments/prod.env",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/roles/switchdin.docker_haproxy_mqtt/templates/haproxy.cfg",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/deployment/prod/endeprod/aws/02_endeprod_k8s_auth.tf",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/deployment/prod/au-horizonpower-flexgw-prod-1/flexgw/03_hpprod_flexgw.tf",
|
|
"/Users/nathanrashleigh/code/droplet/local/docker-compose.vef-test.yml",
|
|
"/Users/nathanrashleigh/switchdin/components/stormcloud-api/src/switchdin/apps/devices/tests/test_endpoint_config.py",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/README.md",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/main.tf",
|
|
"/Users/nathanrashleigh/code/droplet/droplet/droplet.py",
|
|
"/Users/nathanrashleigh/code/droplet/droplet/util/networking.py",
|
|
"/Users/nathanrashleigh/code/droplet/droplet/discovery/connection_agent_ip.py",
|
|
"/Users/nathanrashleigh/code/gsf-pki/ende-prod/der/nepki/flexgateway-prod.endeavourenergy.com.au/key.pem",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/000_bootstrapEnvironment.yml",
|
|
"/Users/nathanrashleigh/switchdin/components/sites_simulator/deployment/test/au_shared_vef_test_1/ansible/group_vars/all/switchdin_users.yml",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/files/keys/NathanRashleigh.pub",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/environments/lab/group_vars/all/switchdin_users.yml",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/tools/find_ssh_finger_print.py",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/files/archived_keys/README.md",
|
|
"/Users/nathanrashleigh/switchdin/.github/workflows/ansible_run_common.yaml",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/ansible/group_vars/RMQMain.yml",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/deployment/test/endetest/gsf/terraform.tfvars",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/deployment/test/hp/flexgw/terraform.tfvars",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/deployment/prod/au-horizonpower-flexgw-prod-1/flexgw/terraform.tfvars",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/deployment/prod/endeprod/gsf/terraform.tfvars",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/prod/switchdin_main/terraform.tfvars",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/renewal_broker.tf",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/ansible/inventory.aws_ec2.yml",
|
|
"/Users/nathanrashleigh/switchdin/components/droplet-builder/deployment/src/ansible/inventory.aws_ec2.yml",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/deployment/src/control-plane/01_control_plane.tf",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/G00_PKI_Install.yml",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/350_ProxyServers_Web.yml",
|
|
"/Users/nathanrashleigh/switchdin/.github/workflows/telemetry_pipeline.yaml",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/ansible/group_vars/InsecureRabbitServers.yml",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/roles/switchdin.sshpi/files/cert-renew/cert_renew_droplet.sh",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/400_rabbitServers.yml",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/src/telemetry_pipeline_tf/rabbitmq/rabbitmq_proxy.tf",
|
|
"/Users/nathanrashleigh/switchdin/poc/mqtt-expired-cert-recovery/cert_renewal_flow.md",
|
|
"/Users/nathanrashleigh/switchdin/poc/mqtt-expired-cert-recovery/cert_renewal_flow.html",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/tools/configure_shovels.py",
|
|
"/Users/nathanrashleigh/switchdin/shared/ansible/roles/switchdin.docker_rabbitmq/templates/rabbitmq.conf",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/prod/switchdin_main/insecure_broker.tf",
|
|
"/Users/nathanrashleigh/switchdin/poc/mqtt-expired-cert-recovery/docker-compose.yml",
|
|
"/Users/nathanrashleigh/switchdin/poc/mqtt-expired-cert-recovery/src/test_concurrent.py",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/makefile",
|
|
"/Users/nathanrashleigh/switchdin/shared/lib/droplet_certificate_util/src/lib/droplet_certificate_util/pki.py",
|
|
"/Users/nathanrashleigh/switchdin/poc/mqtt-expired-cert-recovery/README.md",
|
|
"/Users/nathanrashleigh/switchdin/poc/mqtt-expired-cert-recovery/authz/poc_expiry_authz.erl",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/deployment/src/monitor/04_mimir.tf",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/src/grid_services_function/assurance/assurance.py",
|
|
"/Users/nathanrashleigh/switchdin/components/telemetry_pipeline/deployment/src/telemetry_pipeline_tf/variables.tf",
|
|
"/Users/nathanrashleigh/switchdin/components/grid_services_function/deployment/src/monitor/04_redpanda.tf"
|
|
],
|
|
"find":
|
|
{
|
|
"height": 29.0
|
|
},
|
|
"find_in_files":
|
|
{
|
|
"height": 188.0,
|
|
"where_history":
|
|
[
|
|
]
|
|
},
|
|
"find_state":
|
|
{
|
|
"case_sensitive": false,
|
|
"find_history":
|
|
[
|
|
"1N4148",
|
|
"SB140",
|
|
"2 k",
|
|
"2k",
|
|
"block",
|
|
"NOISE",
|
|
"flat",
|
|
"re",
|
|
"rf1",
|
|
"rin1",
|
|
"uf",
|
|
"noise",
|
|
"vref"
|
|
],
|
|
"highlight": true,
|
|
"in_selection": false,
|
|
"preserve_case": false,
|
|
"regex": false,
|
|
"replace_history":
|
|
[
|
|
],
|
|
"reverse": false,
|
|
"scrollbar_highlights": true,
|
|
"show_context": true,
|
|
"use_buffer2": true,
|
|
"use_gitignore": true,
|
|
"whole_word": false,
|
|
"wrap": true
|
|
},
|
|
"groups":
|
|
[
|
|
{
|
|
"sheets":
|
|
[
|
|
{
|
|
"buffer": 0,
|
|
"file": "src/main.rs",
|
|
"semi_transient": false,
|
|
"settings":
|
|
{
|
|
"buffer_size": 5364,
|
|
"regions":
|
|
{
|
|
},
|
|
"selection":
|
|
[
|
|
[
|
|
0,
|
|
4080
|
|
]
|
|
],
|
|
"settings":
|
|
{
|
|
"auto_complete_triggers":
|
|
[
|
|
{
|
|
"characters": "<",
|
|
"selector": "text.html, text.xml"
|
|
},
|
|
{
|
|
"rhs_empty": true,
|
|
"selector": "punctuation.accessor"
|
|
},
|
|
{
|
|
"characters": ":.'(",
|
|
"selector": "meta.tag, source - comment - string.quoted.double.block - string.quoted.single.block - string.unquoted.heredoc",
|
|
"server": "LSP-rust-analyzer"
|
|
}
|
|
],
|
|
"lsp_active": true,
|
|
"lsp_uri": "file:///Users/nathanrashleigh/vlt/projects/ambium/src/main.rs",
|
|
"show_definitions": false,
|
|
"syntax": "Packages/Rust/Rust.sublime-syntax",
|
|
"tab_size": 4,
|
|
"translate_tabs_to_spaces": true
|
|
},
|
|
"translation.x": 0.0,
|
|
"translation.y": 1536.0,
|
|
"zoom_level": 1.0
|
|
},
|
|
"stack_index": 3,
|
|
"stack_multiselect": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"buffer": 1,
|
|
"file": "etc/inventory.md",
|
|
"semi_transient": false,
|
|
"settings":
|
|
{
|
|
"buffer_size": 3092,
|
|
"regions":
|
|
{
|
|
},
|
|
"selection":
|
|
[
|
|
[
|
|
1674,
|
|
1674
|
|
]
|
|
],
|
|
"settings":
|
|
{
|
|
"lsp_uri": "file:///Users/nathanrashleigh/vlt/projects/ambium/etc/inventory.md",
|
|
"syntax": "Packages/Markdown/Markdown.sublime-syntax"
|
|
},
|
|
"translation.x": 0.0,
|
|
"translation.y": 1042.0,
|
|
"zoom_level": 1.0
|
|
},
|
|
"stack_index": 1,
|
|
"stack_multiselect": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"buffer": 2,
|
|
"file": "etc/diy/diy-bom.md",
|
|
"selected": true,
|
|
"semi_transient": true,
|
|
"settings":
|
|
{
|
|
"buffer_size": 6094,
|
|
"regions":
|
|
{
|
|
},
|
|
"selection":
|
|
[
|
|
[
|
|
5074,
|
|
5074
|
|
]
|
|
],
|
|
"settings":
|
|
{
|
|
"lsp_uri": "file:///Users/nathanrashleigh/vlt/projects/ambium/etc/diy/diy-bom.md",
|
|
"syntax": "Packages/Markdown/Markdown.sublime-syntax"
|
|
},
|
|
"translation.x": 0.0,
|
|
"translation.y": 2806.0,
|
|
"zoom_level": 1.0
|
|
},
|
|
"stack_index": 0,
|
|
"stack_multiselect": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"buffer": 3,
|
|
"file": "/Users/nathanrashleigh/code/f411/src/lib.rs",
|
|
"semi_transient": false,
|
|
"settings":
|
|
{
|
|
"buffer_size": 588,
|
|
"regions":
|
|
{
|
|
},
|
|
"selection":
|
|
[
|
|
[
|
|
588,
|
|
588
|
|
]
|
|
],
|
|
"settings":
|
|
{
|
|
"auto_complete_triggers":
|
|
[
|
|
{
|
|
"characters": "<",
|
|
"selector": "text.html, text.xml"
|
|
},
|
|
{
|
|
"rhs_empty": true,
|
|
"selector": "punctuation.accessor"
|
|
},
|
|
{
|
|
"characters": ":.'(",
|
|
"selector": "meta.tag, source - comment - string.quoted.double.block - string.quoted.single.block - string.unquoted.heredoc",
|
|
"server": "LSP-rust-analyzer"
|
|
}
|
|
],
|
|
"lsp_active": true,
|
|
"lsp_uri": "file:///Users/nathanrashleigh/code/f411/src/lib.rs",
|
|
"show_definitions": false,
|
|
"syntax": "Packages/Rust/Rust.sublime-syntax"
|
|
},
|
|
"translation.x": 0.0,
|
|
"translation.y": 0.0,
|
|
"zoom_level": 1.0
|
|
},
|
|
"stack_index": 2,
|
|
"stack_multiselect": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"buffer": 4,
|
|
"file": "/Users/nathanrashleigh/code/f411/src/button.rs",
|
|
"semi_transient": false,
|
|
"settings":
|
|
{
|
|
"buffer_size": 2180,
|
|
"regions":
|
|
{
|
|
},
|
|
"selection":
|
|
[
|
|
[
|
|
655,
|
|
655
|
|
]
|
|
],
|
|
"settings":
|
|
{
|
|
"auto_complete_triggers":
|
|
[
|
|
{
|
|
"characters": "<",
|
|
"selector": "text.html, text.xml"
|
|
},
|
|
{
|
|
"rhs_empty": true,
|
|
"selector": "punctuation.accessor"
|
|
},
|
|
{
|
|
"characters": ":.'(",
|
|
"selector": "meta.tag, source - comment - string.quoted.double.block - string.quoted.single.block - string.unquoted.heredoc",
|
|
"server": "LSP-rust-analyzer"
|
|
}
|
|
],
|
|
"lsp_active": true,
|
|
"lsp_uri": "file:///Users/nathanrashleigh/code/f411/src/button.rs",
|
|
"show_definitions": false,
|
|
"syntax": "Packages/Rust/Rust.sublime-syntax",
|
|
"tab_size": 4,
|
|
"translate_tabs_to_spaces": true
|
|
},
|
|
"translation.x": 0.0,
|
|
"translation.y": 0.0,
|
|
"zoom_level": 1.0
|
|
},
|
|
"stack_index": 4,
|
|
"stack_multiselect": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"buffer": 5,
|
|
"file": "/Users/nathanrashleigh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lsm303dlhc-0.2.0/src/lib.rs",
|
|
"semi_transient": false,
|
|
"settings":
|
|
{
|
|
"buffer_size": 6702,
|
|
"regions":
|
|
{
|
|
},
|
|
"selection":
|
|
[
|
|
[
|
|
6231,
|
|
6231
|
|
]
|
|
],
|
|
"settings":
|
|
{
|
|
"auto_complete_triggers":
|
|
[
|
|
{
|
|
"characters": "<",
|
|
"selector": "text.html, text.xml"
|
|
},
|
|
{
|
|
"rhs_empty": true,
|
|
"selector": "punctuation.accessor"
|
|
},
|
|
{
|
|
"characters": ":.'(",
|
|
"selector": "meta.tag, source - comment - string.quoted.double.block - string.quoted.single.block - string.unquoted.heredoc",
|
|
"server": "LSP-rust-analyzer"
|
|
}
|
|
],
|
|
"lsp_active": true,
|
|
"lsp_uri": "file:///Users/nathanrashleigh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lsm303dlhc-0.2.0/src/lib.rs",
|
|
"show_definitions": false,
|
|
"syntax": "Packages/Rust/Rust.sublime-syntax",
|
|
"tab_size": 4,
|
|
"translate_tabs_to_spaces": true
|
|
},
|
|
"translation.x": 0.0,
|
|
"translation.y": 917.0,
|
|
"zoom_level": 1.0
|
|
},
|
|
"stack_index": 5,
|
|
"stack_multiselect": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"buffer": 6,
|
|
"file": "build.rs",
|
|
"semi_transient": false,
|
|
"settings":
|
|
{
|
|
"buffer_size": 590,
|
|
"regions":
|
|
{
|
|
},
|
|
"selection":
|
|
[
|
|
[
|
|
590,
|
|
590
|
|
]
|
|
],
|
|
"settings":
|
|
{
|
|
"auto_complete_triggers":
|
|
[
|
|
{
|
|
"characters": "<",
|
|
"selector": "text.html, text.xml"
|
|
},
|
|
{
|
|
"rhs_empty": true,
|
|
"selector": "punctuation.accessor"
|
|
},
|
|
{
|
|
"characters": ":.'(",
|
|
"selector": "meta.tag, source - comment - string.quoted.double.block - string.quoted.single.block - string.unquoted.heredoc",
|
|
"server": "LSP-rust-analyzer"
|
|
}
|
|
],
|
|
"auto_name": "use std::env;",
|
|
"lsp_active": true,
|
|
"lsp_uri": "file:///Users/nathanrashleigh/vlt/projects/ambium/build.rs",
|
|
"show_definitions": false,
|
|
"syntax": "Packages/Rust/Rust.sublime-syntax",
|
|
"tab_size": 4,
|
|
"translate_tabs_to_spaces": true
|
|
},
|
|
"translation.x": 0.0,
|
|
"translation.y": 0.0,
|
|
"zoom_level": 1.0
|
|
},
|
|
"stack_index": 7,
|
|
"stack_multiselect": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"buffer": 7,
|
|
"file": ".cargo/config.toml",
|
|
"semi_transient": false,
|
|
"settings":
|
|
{
|
|
"buffer_size": 993,
|
|
"regions":
|
|
{
|
|
},
|
|
"selection":
|
|
[
|
|
[
|
|
993,
|
|
993
|
|
]
|
|
],
|
|
"settings":
|
|
{
|
|
"auto_complete_triggers":
|
|
[
|
|
{
|
|
"characters": "<",
|
|
"selector": "text.html, text.xml"
|
|
},
|
|
{
|
|
"rhs_empty": true,
|
|
"selector": "punctuation.accessor"
|
|
}
|
|
],
|
|
"auto_name": "[target.'cfg(all(target_arch = \"arm\", target_os =",
|
|
"lsp_uri": "file:///Users/nathanrashleigh/vlt/projects/ambium/.cargo/config.toml",
|
|
"syntax": "Packages/TOML/TOML.sublime-syntax",
|
|
"tab_size": 2,
|
|
"translate_tabs_to_spaces": true
|
|
},
|
|
"translation.x": 0.0,
|
|
"translation.y": 0.0,
|
|
"zoom_level": 1.0
|
|
},
|
|
"stack_index": 6,
|
|
"stack_multiselect": false,
|
|
"type": "text"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"incremental_find":
|
|
{
|
|
"height": 84.0
|
|
},
|
|
"input":
|
|
{
|
|
"height": 69.0
|
|
},
|
|
"layout":
|
|
{
|
|
"cells":
|
|
[
|
|
[
|
|
0,
|
|
0,
|
|
1,
|
|
1
|
|
]
|
|
],
|
|
"cols":
|
|
[
|
|
0.0,
|
|
1.0
|
|
],
|
|
"rows":
|
|
[
|
|
0.0,
|
|
1.0
|
|
]
|
|
},
|
|
"menu_visible": true,
|
|
"output.Debugger":
|
|
{
|
|
"height": 324.0
|
|
},
|
|
"output.Debugger Console":
|
|
{
|
|
"height": 324.0
|
|
},
|
|
"output.LSP Log Panel":
|
|
{
|
|
"height": 927.0,
|
|
"history":
|
|
[
|
|
]
|
|
},
|
|
"output.diagnostics":
|
|
{
|
|
"height": 1046.0,
|
|
"history":
|
|
[
|
|
]
|
|
},
|
|
"output.exec":
|
|
{
|
|
"height": 174.0,
|
|
"history":
|
|
[
|
|
]
|
|
},
|
|
"output.find_results":
|
|
{
|
|
"height": 0.0,
|
|
"history":
|
|
[
|
|
]
|
|
},
|
|
"output.git":
|
|
{
|
|
"height": 198.0,
|
|
"history":
|
|
[
|
|
]
|
|
},
|
|
"output.mdpopups":
|
|
{
|
|
"height": 0.0,
|
|
"history":
|
|
[
|
|
]
|
|
},
|
|
"output.mdpopups-dummy":
|
|
{
|
|
"height": 0.0,
|
|
"history":
|
|
[
|
|
]
|
|
},
|
|
"output.rename":
|
|
{
|
|
"height": 882.0
|
|
},
|
|
"pinned_build_system": "",
|
|
"project": "ambium.sublime-project",
|
|
"replace":
|
|
{
|
|
"height": 136.0
|
|
},
|
|
"save_all_on_build": true,
|
|
"select_file":
|
|
{
|
|
"height": 0.0,
|
|
"last_filter": "",
|
|
"selected_items":
|
|
[
|
|
[
|
|
"main.r",
|
|
"src/main.rs"
|
|
],
|
|
[
|
|
"justfile",
|
|
"switchdin/components/grid_services_function/justfile"
|
|
],
|
|
[
|
|
"telem",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/data_plane/telemetry_api_types.py"
|
|
],
|
|
[
|
|
"compose-inf",
|
|
"switchdin/components/grid_services_function/docker-compose-infra.yaml"
|
|
],
|
|
[
|
|
"aggregator.py",
|
|
"switchdin/components/grid_services_function/tests/services/aggregator.py"
|
|
],
|
|
[
|
|
"compose-dev",
|
|
"switchdin/components/grid_services_function/docker-compose-dev.yaml"
|
|
],
|
|
[
|
|
"composeinf",
|
|
"switchdin/components/grid_services_function/docker-compose-infra.yaml"
|
|
],
|
|
[
|
|
"dockerco",
|
|
"switchdin/components/grid_services_function/docker-compose.yaml"
|
|
],
|
|
[
|
|
"dataplaneapity",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/data_plane/data_plane_api_types.py"
|
|
],
|
|
[
|
|
"telemet",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/data_plane/telemetry_api_types.py"
|
|
],
|
|
[
|
|
"derevent",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/common/entities/events/der_events.py"
|
|
],
|
|
[
|
|
"oemdata",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/common/data_transfer_objects/oem_data.py"
|
|
],
|
|
[
|
|
"depende",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/derapi/entrypoints/dependencies.py"
|
|
],
|
|
[
|
|
"activatecomp",
|
|
"switchdin/tools/dev/bin/activate_component.sh"
|
|
],
|
|
[
|
|
"claudepr",
|
|
"switchdin/tools/dev/bin/claude_pretool_check.sh"
|
|
],
|
|
[
|
|
"listener",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/common/listeners/listener_entrypoint.py"
|
|
],
|
|
[
|
|
"telemetrylis",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/asyncapi/listeners/telemetry_listener.py"
|
|
],
|
|
[
|
|
"requirements.in",
|
|
"switchdin/components/grid_services_function/dependencies/requirements.in"
|
|
],
|
|
[
|
|
"awsbasemain",
|
|
"switchdin/components/aws_bedrock/deployment/src/modules/aws_base/main.tf"
|
|
],
|
|
[
|
|
"hpprodmain",
|
|
"switchdin/components/grid_services_function/deployment/prod/au-horizonpower-flexgw-prod-1/aws/00_hpprod_main.tf"
|
|
],
|
|
[
|
|
"haproxy",
|
|
"switchdin/shared/ansible/roles/switchdin.docker_rabbitmq_proxy/templates/haproxy.cfg"
|
|
],
|
|
[
|
|
"haprox",
|
|
"switchdin/shared/ansible/roles/switchdin.docker_haproxy/templates/haproxy.cfg"
|
|
],
|
|
[
|
|
"dockerrabbitmqproxy",
|
|
"switchdin/shared/ansible/roles/switchdin.docker_rabbitmq_proxy/defaults/main.yml"
|
|
],
|
|
[
|
|
"402",
|
|
"switchdin/shared/ansible/402_rabbitMQProxy.yml"
|
|
],
|
|
[
|
|
"rabbitmqusers",
|
|
"switchdin/shared/ansible/roles/switchdin.rabbitmq_users/tasks/main.yml"
|
|
],
|
|
[
|
|
"dockerrabbitmq",
|
|
"switchdin/shared/ansible/roles/switchdin.docker_rabbitmq/tasks/main.yml"
|
|
],
|
|
[
|
|
"rabbitbro",
|
|
"switchdin/shared/ansible/401_rabbitMQBrokers.yml"
|
|
],
|
|
[
|
|
"switchdinuser",
|
|
"switchdin/components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/ansible/group_vars/all/switchdin_users.yml"
|
|
],
|
|
[
|
|
"usermanagement",
|
|
"switchdin/shared/ansible/roles/switchdin.user_management/README.md"
|
|
],
|
|
[
|
|
"inventori",
|
|
"switchdin/components/stormcloud-api/deployment/production/switchdin-main/prod_inventory.ini"
|
|
],
|
|
[
|
|
"components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/sshpi_test.tf",
|
|
"switchdin/components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/sshpi_test.tf"
|
|
],
|
|
[
|
|
"copy.sh",
|
|
"switchdin/tools/demo_data_copy/copy.sh"
|
|
],
|
|
[
|
|
"mcp.json",
|
|
"switchdin/components/grid_services_function/.mcp.json"
|
|
],
|
|
[
|
|
"docker_rabbitmq_proxy",
|
|
"switchdin/shared/ansible/roles/switchdin.docker_rabbitmq_proxy/templates/haproxy.cfg"
|
|
],
|
|
[
|
|
"haproxy.cf",
|
|
"switchdin/shared/ansible/roles/switchdin.docker_haproxy/templates/haproxy.cfg"
|
|
],
|
|
[
|
|
"haproxy.cfg",
|
|
"switchdin/shared/ansible/roles/switchdin.docker_haproxy_mqtt/templates/haproxy.cfg"
|
|
],
|
|
[
|
|
"components/stormcloud-api/deployment/src/environments/prod.env",
|
|
"switchdin/components/stormcloud-api/deployment/src/environments/prod.env"
|
|
],
|
|
[
|
|
"alerts",
|
|
"switchdin/components/grid_services_function/deployment/test/gsf-isvt/monitoring/04_alerts.tf"
|
|
],
|
|
[
|
|
"haproxy.",
|
|
"droplet/local/haproxy/haproxy.cfg"
|
|
],
|
|
[
|
|
"hpprod",
|
|
"switchdin/components/grid_services_function/deployment/prod/au-horizonpower-flexgw-prod-1/flexgw/03_hpprod_flexgw.tf"
|
|
],
|
|
[
|
|
"endeprod",
|
|
"switchdin/components/grid_services_function/deployment/prod/endeprod/aws/02_endeprod_k8s_auth.tf"
|
|
],
|
|
[
|
|
"productioninv",
|
|
"switchdin/shared/ansible/environments/prod/production_inventory.ini"
|
|
],
|
|
[
|
|
"components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/ansible/group_vars/all/switchdin_users.yml",
|
|
"switchdin/components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/ansible/group_vars/all/switchdin_users.yml"
|
|
],
|
|
[
|
|
"hpprodtfvs",
|
|
"switchdin/components/telemetry_pipeline/deployment/prod/switchdin_main/terraform.tfvars"
|
|
],
|
|
[
|
|
"hptesttfvar",
|
|
"switchdin/components/grid_services_function/deployment/test/hp/flexgw/terraform.tfvars"
|
|
],
|
|
[
|
|
"endetesttfvars",
|
|
"switchdin/components/grid_services_function/deployment/test/endetest/gsf/terraform.tfvars"
|
|
],
|
|
[
|
|
"renewalb",
|
|
"switchdin/components/telemetry_pipeline/deployment/test/au_shared_vef_test_1/renewal_broker.tf"
|
|
],
|
|
[
|
|
"400_rabbitServers.yml",
|
|
"switchdin/shared/ansible/400_rabbitServers.yml"
|
|
],
|
|
[
|
|
"pkiinsta",
|
|
"switchdin/shared/ansible/G00_PKI_Install.yml"
|
|
],
|
|
[
|
|
"certrenew",
|
|
"switchdin/poc/mqtt-expired-cert-recovery/cert_renewal_flow.md"
|
|
],
|
|
[
|
|
"certre",
|
|
"switchdin/poc/mqtt-expired-cert-recovery/cert_renewal_flow.html"
|
|
],
|
|
[
|
|
"cert_renew_droplet.sh",
|
|
"switchdin/shared/ansible/roles/switchdin.sshpi/files/cert-renew/cert_renew_droplet.sh"
|
|
],
|
|
[
|
|
"productioninvn",
|
|
"switchdin/shared/ansible/environments/prod/production_inventory.ini"
|
|
],
|
|
[
|
|
"400rabbi",
|
|
"switchdin/shared/ansible/400_rabbitServers.yml"
|
|
],
|
|
[
|
|
"makefile",
|
|
"switchdin/components/grid_services_function/makefile"
|
|
],
|
|
[
|
|
"configuresho",
|
|
"switchdin/shared/ansible/tools/configure_shovels.py"
|
|
],
|
|
[
|
|
"insecure",
|
|
"switchdin/components/telemetry_pipeline/deployment/prod/switchdin_main/insecure_broker.tf"
|
|
],
|
|
[
|
|
"mimir",
|
|
"switchdin/components/grid_services_function/deployment/src/monitor/04_mimir.tf"
|
|
],
|
|
[
|
|
"shared/ansible/roles/switchdin.docker_haproxy_mqtt/templates/haproxy.cfg",
|
|
"switchdin/shared/ansible/roles/switchdin.docker_haproxy_mqtt/templates/haproxy.cfg"
|
|
],
|
|
[
|
|
"droplet_certificate_util/pki.py",
|
|
"switchdin/shared/lib/droplet_certificate_util/src/lib/droplet_certificate_util/pki.py"
|
|
],
|
|
[
|
|
"genlimit",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/assurance/assurance_sitect_genlimit.py"
|
|
],
|
|
[
|
|
"alerts.tf",
|
|
"switchdin/components/grid_services_function/deployment/test/gsf-isvt/monitoring/04_alerts.tf"
|
|
],
|
|
[
|
|
"grafa",
|
|
"switchdin/components/grid_services_function/deployment/src/monitor/03_grafana.tf"
|
|
],
|
|
[
|
|
"redpand",
|
|
"switchdin/components/grid_services_function/deployment/src/monitor/04_redpanda.tf"
|
|
],
|
|
[
|
|
"hptesttfvars",
|
|
"switchdin/components/grid_services_function/deployment/test/hp/flexgw/terraform.tfvars"
|
|
],
|
|
[
|
|
"teleme",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/data_plane/telemetry_api_types.py"
|
|
],
|
|
[
|
|
"endetest",
|
|
"switchdin/components/grid_services_function/deployment/test/endetest/gsf/terraform.tfvars"
|
|
],
|
|
[
|
|
"mcp.",
|
|
"switchdin/components/grid_services_function/.mcp.json"
|
|
],
|
|
[
|
|
"grafana.tf",
|
|
"switchdin/components/grid_services_function/deployment/src/monitor/03_grafana.tf"
|
|
],
|
|
[
|
|
"mimir.",
|
|
"switchdin/components/grid_services_function/deployment/src/monitor/04_mimir.tf"
|
|
],
|
|
[
|
|
"mimirin",
|
|
"switchdin/components/grid_services_function/deployment/src/monitor/04_mimir_ingest.tf"
|
|
],
|
|
[
|
|
"redpanda",
|
|
"switchdin/components/grid_services_function/deployment/src/monitor/04_redpanda.tf"
|
|
],
|
|
[
|
|
"setplib",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/common/entities/seplib.py"
|
|
],
|
|
[
|
|
"telemetry",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/data_plane/telemetry_api_types.py"
|
|
],
|
|
[
|
|
"costs.py",
|
|
"switchdin/components/grid_services_function/tools/boto3_tools/costs.py"
|
|
],
|
|
[
|
|
"monitor.tf",
|
|
"switchdin/components/grid_services_function/deployment/src/monitor/02_monitor.tf"
|
|
],
|
|
[
|
|
"monitordeplo",
|
|
"switchdin/components/grid_services_function/deployment/src/otel-collector/monitor-deployment.yaml"
|
|
],
|
|
[
|
|
"warpst",
|
|
"switchdin/components/grid_services_function/deployment/test/gsf-isvt/lgtm/01_warpstream.tf"
|
|
],
|
|
[
|
|
"isvtmain",
|
|
"switchdin/components/aws_bedrock/deployment/test/gsf-isvt/main.tf"
|
|
],
|
|
[
|
|
"vulnera",
|
|
"switchdin/.github/workflows/vulnerability-scanner.yml"
|
|
],
|
|
[
|
|
"loadtester",
|
|
"switchdin/components/gsf_load_tester/dependencies/requirements.in"
|
|
],
|
|
[
|
|
"dropletv4require",
|
|
"switchdin/components/droplet_v4/dependencies/requirements.txt"
|
|
],
|
|
[
|
|
"312re",
|
|
"switchdin/shared/python/resolves/standard_py312/requirements.in"
|
|
],
|
|
[
|
|
"loadtesterrequirement",
|
|
"switchdin/components/gsf_load_tester/dependencies/requirements.in"
|
|
],
|
|
[
|
|
"requirement",
|
|
"switchdin/components/grid_services_function/dependencies/requirements.in"
|
|
],
|
|
[
|
|
"msk.tf",
|
|
"switchdin/components/grid_services_function/deployment/src/infra/msk.tf"
|
|
],
|
|
[
|
|
"devicesredi",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/common/adaptors/devices_redis.py"
|
|
],
|
|
[
|
|
"controlsser",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/common/services/controls_service_gsf.py"
|
|
],
|
|
[
|
|
"dercontrolli",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/derapi/use_cases/der_control_list_get_use_case.py"
|
|
],
|
|
[
|
|
".env",
|
|
"switchdin/components/grid_services_function/.env.dev"
|
|
],
|
|
[
|
|
"mirror",
|
|
"switchdin/components/grid_services_function/.mirrord/mirrord.json"
|
|
],
|
|
[
|
|
"testass",
|
|
"switchdin/components/grid_services_function/tests/grid_services_function_tests/integration/assurance/test_assurance_sitect.py"
|
|
],
|
|
[
|
|
"instr",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/common/services/instrumented_service_gsf.py"
|
|
],
|
|
[
|
|
"instrumente",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/common/services/instrumented_service_gsf.py"
|
|
],
|
|
[
|
|
"usagepointuse",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/derapi/use_cases/mirror_usage_point_use_cases.py"
|
|
],
|
|
[
|
|
"tsdb.t",
|
|
"switchdin/components/grid_services_function/deployment/test/swdutsrvdev/acp/02_tsdb.tf"
|
|
],
|
|
[
|
|
"infra.tf",
|
|
"switchdin/components/grid_services_function/deployment/prod/au-horizonpower-flexgw-prod-1/aws/02_hpprod_infra.tf"
|
|
],
|
|
[
|
|
"lakeprod",
|
|
"switchdin/components/lake/deployment/production/main.tf"
|
|
],
|
|
[
|
|
"collectrodeploy",
|
|
"switchdin/components/grid_services_function/deployment/src/otel-collector/monitor-deployment.yaml"
|
|
],
|
|
[
|
|
"test/endetest/aws/03_endetest_nodepool.tf",
|
|
"switchdin/components/grid_services_function/deployment/test/endetest/aws/03_endetest_nodepool.tf"
|
|
],
|
|
[
|
|
"eksnode",
|
|
"switchdin/components/grid_services_function/deployment/src/t1-eks/02_eks_nodepools.tf"
|
|
],
|
|
[
|
|
"mk3",
|
|
"switchdin/components/grid_services_function/deployment/test/gsf-isvt/monitoring/dashboards/gsf_overview_mk3.json"
|
|
],
|
|
[
|
|
"t1eks",
|
|
"switchdin/components/grid_services_function/deployment/src/t1-eks/02_eks_nodepools.tf"
|
|
],
|
|
[
|
|
"networkallocatmain",
|
|
"switchdin/tools/network_allocator/src/network_allocator/main.py"
|
|
],
|
|
[
|
|
"awsnetworkmain",
|
|
"switchdin/components/aws_bedrock/deployment/src/modules/aws_networking/main.tf"
|
|
],
|
|
[
|
|
"grafna.tf",
|
|
"switchdin/components/grid_services_function/deployment/test/gsf-isvt/monitoring/01_grafana.tf"
|
|
],
|
|
[
|
|
"kafkaasync",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/common/external_interfaces/kafka/kafka_async_listener.py"
|
|
],
|
|
[
|
|
"telemetryli",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/asyncapi/listeners/telemetry_listener.py"
|
|
],
|
|
[
|
|
"tsdblist",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/tsdb/tsdb_listener.py"
|
|
],
|
|
[
|
|
"vpn.tf",
|
|
"switchdin/components/grid_services_function/deployment/src/ende-vpn/ende_vpn.tf"
|
|
],
|
|
[
|
|
"endevpn",
|
|
"switchdin/components/grid_services_function/deployment/src/ende-vpn/ende_vpn.tf"
|
|
],
|
|
[
|
|
"derapi",
|
|
"switchdin/components/grid_services_function/deployment/src/gsf/04_derapi.tf"
|
|
],
|
|
[
|
|
"endetestexte",
|
|
"switchdin/components/grid_services_function/deployment/test/endetest/aws/01_endetest_extsubnets.tf"
|
|
],
|
|
[
|
|
"endeexte",
|
|
"switchdin/components/grid_services_function/deployment/test/endetest/aws/01_endetest_extsubnets.tf"
|
|
],
|
|
[
|
|
"allocatorma",
|
|
"switchdin/tools/network_allocator/src/network_allocator/main.py"
|
|
],
|
|
[
|
|
"testmirror",
|
|
"switchdin/components/grid_services_function/tests/grid_services_function_tests/derapi/test_mirror_usage_point.py"
|
|
],
|
|
[
|
|
"dataplanelis",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/data_plane/listeners/dataplane_listener.py"
|
|
],
|
|
[
|
|
"oem",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/common/data_transfer_objects/oem_data.py"
|
|
],
|
|
[
|
|
"tsdbli",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/tsdb/tsdb_listener.py"
|
|
],
|
|
[
|
|
"tsdb",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/tsdb/tsdb_listener.py"
|
|
],
|
|
[
|
|
"extension",
|
|
"switchdin/components/grid_services_function/deployment/test/swdutsrvdev/aws/01_extension_subnets.tf"
|
|
],
|
|
[
|
|
"dataplanemet",
|
|
"switchdin/components/grid_services_function/src/grid_services_function/data_plane/upstream/dataplane_metrics.py"
|
|
],
|
|
[
|
|
"codeow",
|
|
"switchdin/CODEOWNERS"
|
|
],
|
|
[
|
|
"acptfvars",
|
|
"switchdin/components/grid_services_function/deployment/test/swdutsrvdev/acp/terraform.tfvars"
|
|
],
|
|
[
|
|
"endetestfvars",
|
|
"switchdin/components/grid_services_function/deployment/test/endetest/gsf/terraform.tfvars"
|
|
],
|
|
[
|
|
"allocator.py",
|
|
"switchdin/tools/network_allocator/src/network_allocator/main.py"
|
|
],
|
|
[
|
|
"extensionsubn",
|
|
"switchdin/components/grid_services_function/deployment/test/swdutsrvdev/aws/01_extension_subnets.tf"
|
|
],
|
|
[
|
|
"networkallo",
|
|
"switchdin/.github/workflows/network_allocator.yaml"
|
|
]
|
|
],
|
|
"width": 0.0
|
|
},
|
|
"select_project":
|
|
{
|
|
"height": 628.0,
|
|
"last_filter": "swi",
|
|
"selected_items":
|
|
[
|
|
[
|
|
"swi",
|
|
"~/code/switchdin.sublime-project"
|
|
],
|
|
[
|
|
"sw",
|
|
"~/code/switchdin.sublime-project"
|
|
],
|
|
[
|
|
"maple",
|
|
"~/code/maple/maple.sublime-project"
|
|
],
|
|
[
|
|
"map",
|
|
"~/code/maple/maple.sublime-project"
|
|
],
|
|
[
|
|
"dc",
|
|
"~/sublime/dc.sublime-project"
|
|
],
|
|
[
|
|
"dev",
|
|
"~/code/devops.sublime-project"
|
|
],
|
|
[
|
|
"",
|
|
"~/code/ee.sublime-project"
|
|
],
|
|
[
|
|
"pod",
|
|
"~/code/podowl/podowl.sublime-project"
|
|
],
|
|
[
|
|
"de",
|
|
"~/code/devops.sublime-project"
|
|
],
|
|
[
|
|
"ee",
|
|
"~/code/ee.sublime-project"
|
|
],
|
|
[
|
|
"dr",
|
|
"~/code/devops.sublime-project"
|
|
],
|
|
[
|
|
"isv",
|
|
"~/code/isvt.sublime-project"
|
|
],
|
|
[
|
|
"devops",
|
|
"~/code/devops.sublime-project"
|
|
],
|
|
[
|
|
"gsf",
|
|
"~/code/gsf.sublime-project"
|
|
],
|
|
[
|
|
"gs",
|
|
"~/code/gsf.sublime-project"
|
|
],
|
|
[
|
|
"is",
|
|
"~/code/isvt.sublime-project"
|
|
]
|
|
],
|
|
"width": 476.0
|
|
},
|
|
"select_symbol":
|
|
{
|
|
"height": 525.0,
|
|
"last_filter": "",
|
|
"selected_items":
|
|
[
|
|
],
|
|
"width": 598.0
|
|
},
|
|
"selected_group": 0,
|
|
"settings":
|
|
{
|
|
"lsp_show_inlay_hints": false
|
|
},
|
|
"show_minimap": true,
|
|
"show_open_files": false,
|
|
"show_tabs": true,
|
|
"side_bar_visible": true,
|
|
"side_bar_width": 614.0,
|
|
"status_bar_visible": true,
|
|
"template_settings":
|
|
{
|
|
}
|
|
}
|