Pisortat aningaasaataat


Atorfillit
OFXOA1_raw <- 
  statgl_url("OFXOA1", lang = language) %>% 
  statgl_fetch(
    taar        = px_top(),
    cofog_hoved = px_all(),
    opg_var     = "F",
    .col_code   = TRUE
  ) %>% 
  as_tibble()

OFXOA1 <- 
  OFXOA1_raw %>% 
  mutate(
    cofog_hoved = cofog_hoved %>% str_remove_all("[:digit:]|\\.") %>% trimws(),
    cofog_hoved = cofog_hoved %>% fct_reorder(value, .fun = sum, .desc = TRUE)
    ) %>% 
  spread(opg_var, value) %>% 
  arrange(cofog_hoved)

OFXOA1 %>% 
  select(-taar) %>% 
  rename(" " = 1) %>% 
  statgl_table(replace_0s = TRUE) %>% 
  pack_rows(index = OFXOA1[["taar"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Piffissaq tamakkerlugu sulisut
2023
Tamakkerlugit 11.212
Inuiaqatigiit illersugaanerat 4.625
Ilinniartitsineq 2.362
Peqqinnissaqarfik 1.668
Pisortat nalinginnaasumik kiffartuussinerat 1.291
Aningaasaqarnermut tunngasut 602
Sunngiffik, kulturi upperisarlu 339
Avatangiisit innarlitsaaliorneqarnerat 263
Inuiaqatigiinni toqqissisimaneq isumannaassuserlu 35
Inissiat tamanillu orninneqarsinnaasut 28
Illersornissaq 0


Se Statistikbankens tabel: OFXOA1

Kommunini naatsorsuutit


#OFXUKN1_raw <- 
#  statgl_url("OFXUKN1", lang = language) %>%
#  statgl_fetch(
#    time       = px_top(),
#    district   = c("000", "955", "956", "957", "958", "959", "960"),
#    keyfigures = px_all(),
#    .col_code  = TRUE
#  ) %>% 
#  as_tibble()
#
#OFXUKN1 <- 
#  OFXUKN1_raw %>% 
#  filter(value != "NA") %>% 
#  mutate(
#    keyfigures = keyfigures %>% fct_inorder(),
#    district = district %>% fct_reorder(value, .fun = sum, .desc = TRUE)
#  ) %>% 
#  spread(district, value)
#
#OFXUKN1 %>% 
#  select(-time) %>% 
#  rename(" " = 1) %>% 
#  statgl_table() %>% 
#  pack_rows(index = OFXUKN1[["time"]] %>% table())


# Skal ordne kom så det kun er kommuner og ikke byer med
OFXUKN1_raw <- 
  statgl_url("OFXUKN1", lang = language) |> 
  statgl_fetch(
    kom        = c("AAA", "955", "956", "957", "959", "960"),
    inst_type2 = "A",
    aar        = px_top(),
    born_var   = px_all(),
    .col_code  = T
  ) |> 
  as_tibble()

OFXUKN1 <- 
  OFXUKN1_raw |> 
  mutate(value = case_when(is.na(value) ~ 0, T ~ value)) |> 
  spread(kom, value)

OFXUKN1 |>
  select(-c(inst_type2, aar)) |> 
  rename(" " = 1) |> 
  statgl_table() |> 
  pack_rows(index = OFXUKN1[["aar"]] |> table())
Avannaata Kommunia Kommune Kujalleq Kommune Qeqertalik Kommuneqarfik Sermersooq Kommunit tamakkerlutik Qeqqata Kommunia
2024
Meeqqat 0,5-inik ukiullit 37,0 18,0 18,0 94,0 211,0 44,0
Meeqqat 1-inik ukiullit 119,0 61,0 62,0 259,0 630,0 129,0
Meeqqat 2-nik ukiullit 99,0 73,0 61,0 300,0 664,0 131,0
Meeqqat 3-5-inik ukiullit allatsissimasut amerlassusaat (pct.) 89,7 86,5 89,2 87,6 89,7 97,5
Meeqqat 3-nik ukiullit 148,0 84,0 62,0 308,0 730,0 128,0
Meeqqat 4-inik ukiullit 130,0 72,0 96,0 301,0 743,0 144,0
Meeqqat 5-inik ukiullit 157,0 69,0 73,0 288,0 710,0 123,0
Meeqqat ulluunerani neqeroorutiniittut tamakkerlutik 690,0 377,0 372,0 1.550,0 3.688,0 699,0
Ulluunerani neqeroorutit 38,0 15,0 20,0 50,0 152,0 29,0


Se Statistikbankens tabel: OFXUKN1

Pisortat aningaasaataat
OFXFUNK_raw <- 
  statgl_url("OFXFUNK", lang = language) %>%
  statgl_fetch(
    time       = px_top(),
    sector     = 0,
    "function" = c(0, 1, 8, 11, 17, 25, 29, 33, 39, 44, 50),
    .col_code  = TRUE
  ) %>% 
  as_tibble()

OFXFUNK <- 
  OFXFUNK_raw %>% 
  mutate(
    `function` = `function` %>% 
      str_remove_all("[:digit:]|\\.") %>% 
      trimws() %>% 
      fct_reorder(value, .fun = sum, .desc = TRUE)
    ) %>% 
  spread(sector, value)

OFXFUNK %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = OFXFUNK[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE) |> 
  add_footnote("i 1.000 kr.", notation = "symbol")
Pisortat ingerlataqarfii tamarmiusut
2023
Katillugit 13.843.162
Inuiaqatigiit illersugaanerat 3.810.241
Ilinniartitsineq 2.715.034
Peqqinnissaqarfik 1.855.845
Nalinginnaasumik pisortat kiffartuussineri 1.748.178
Aningaasaqarnermut tunngasut 1.201.062
Inuiaqatigiinni toqqissisimaneq isumannaassuserlu 1.058.772
Sunngiffik, kulturi upperisarlu 480.639
Inissiat tamanillu orninneqarsinnaasut 343.480
Illersornissaq 323.321
Avatangiisit innarlitsaaliorneqarnerat 306.590
* i 1.000 kr.


Se Statistikbankens tabel: OFXFUNK

OFXREAI_raw <- 
  statgl_url("OFXREAI", lang = language) %>%
  statgl_fetch(
    sector      = 0,
    transaction = c(0, 1, 2, 5, 8, 12, 13, 14, 15, 16, 29, 30, 31, 42, 43),
    time        = px_top(),
    .col_code   = TRUE
  ) %>% 
  as_tibble()

OFXREAI <- 
  OFXREAI_raw %>% 
  mutate(
    transaction = transaction %>% str_remove_all("[:digit:]|\\+|\\(|\\)") %>% trimws() %>% fct_inorder()
    ) %>% 
  mutate_if(is.integer, replace_na, replace = 0) %>% 
  filter(value != 0) %>% 
  spread(sector, value)
  
  
OFXREAI %>% 
  select(-time) %>% 
  arrange(desc(transaction)) %>% 
  rename(" " = 1) %>% 
  statgl_table(replace_0s = TRUE) %>% 
  pack_rows(index = OFXREAI[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE) |> 
  add_footnote("i 1.000 kr.", notation = "symbol")
Pisortat ingerlataqarfii tamarmiusut
2023
Ingerlatsinermi aningaasaatiniillu isertitat katillugit 14.126.936
Ingerlats isertitat 14.126.936
Nuussinerit allat ingerlaavartut 6.008.143
Isertitanit pigisanillu akileraarutit 5.413.565
Tunisassiornermi eqqussuinermilu akileraarutit 1.460.379
Erniat iluanaarutillu 445.656
Pisortat suliffeqarfiutaat piginneqataaffiunngitsut 52.493
Isertitat sinneruttut tamarmiusut 746.701
* i 1.000 kr.


Se Statistikbankens tabel: OFXREAI

Nunatta karsiata naatsorsuutai


Tabellerne er for store. Se statistikbanken under Offentlige finanser, regnskabstal for landskassen.


Sidst opdateret: 22. juni 2025
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQoNCmxhbmd1YWdlICA8LSBwYXJhbXMkbGFuZw0Kb3B0aW9uICAgIDwtIHBhc3RlMCgiP2xhbmc9IiwgbGFuZ3VhZ2UsICImc2VsZWN0IikNCmxvZ28gICAgICA8LSBwYXN0ZTAoZ2V0d2QoKSwiL2FkZC9sb2dvLmdpZiIpDQp0eHQgICAgICAgPC0gcmVhZF95YW1sKHBhc3RlMChnZXR3ZCgpLCAiL2FkZC90eHQueW1sIiksIGZpbGVFbmNvZGluZyA9ICJJU08tODg1OS0xIikNCnNvdXJjZSAgICA8LSB0eHQkc291cmNlW2xhbmd1YWdlXSAlPiUgdW5saXN0KCkNCg0KeGFyaW5nYW5FeHRyYTo6dXNlX2NsaXBib2FyZCgpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQoNCi5hY2NvcmRpb24gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5OTAwOw0KICBjb2xvcjogd2hpdGU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgcGFkZGluZzogMThweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJvcmRlcjogbm9uZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBvdXRsaW5lOiBub25lOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IDAuNHM7DQp9DQoNCi5hY3RpdmUsIC5hY2NvcmRpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjk3MjQyOw0KfQ0KDQouYWNjb3JkaW9uOmFmdGVyIHsNCiAgY29udGVudDogJ1wwMDJCJzsNCiAgY29sb3I6ICM3Nzc7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmbG9hdDogcmlnaHQ7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQp9DQoNCi5hY3RpdmU6YWZ0ZXIgew0KICBjb250ZW50OiAiXDIyMTIiOw0KfQ0KDQoucGFuZWwgew0KICBwYWRkaW5nOiAwcHggNXB4IDBweCA1cHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBtYXgtaGVpZ2h0OiAwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7DQp9DQoNCmRldGFpbHMgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KZGV0YWlscyA+IHN1bW1hcnkgew0KICBwYWRkaW5nOiA0cHggMTJweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDdmOTk7DQogIGJvcmRlcjogc29saWQ7DQogIGJvcmRlci1jb2xvcjogd2hpdGU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiB3aGl0ZTsNCn0NCg0KZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhNDFhOw0KfQ0KDQoNCi50aXRsZSB7DQogIGNvbG9yOiAjMWI1NDYzOw0KICBmb250LXNpemU6IDM2cHg7DQp9DQoNCg0KLnBlcnNvbmVyIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDQ0NTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLsO4a29ub21pIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDdGOTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDFweDsNCiAgcGFkZGluZy1ib3R0b206IDAuMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLnR2w6ZyZ8OlZW5kZSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjZmFhNDFhOw0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5jb250YWluZXIgew0KICB3aWR0aDogaW5oZXJpdDsNCn0NCg0KLnNjcm9sbC0xMDAgew0KICBtYXgtaGVpZ2h0OiAxMDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQp9DQoNCg0KcHJlIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCnByZVtjbGFzc10gew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCn0NCg0KYGBgDQoNCjxicj4NCjxicj4NCg0KPGNlbnRlcj4NCg0KLS0tDQogDQojIFtgciB0eHQkT0YkdGl0bGVbbGFuZ3VhZ2VdYF17LnRpdGxlfQ0KIA0KLS0tDQo8L2NlbnRlcj4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkT0Ykc3ViMVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMTogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJPRlhPQTEiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KYGBge3IgT0ZYT0ExfQ0KDQpPRlhPQTFfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJPRlhPQTEiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JSANCiAgc3RhdGdsX2ZldGNoKA0KICAgIHRhYXIgICAgICAgID0gcHhfdG9wKCksDQogICAgY29mb2dfaG92ZWQgPSBweF9hbGwoKSwNCiAgICBvcGdfdmFyICAgICA9ICJGIiwNCiAgICAuY29sX2NvZGUgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCk9GWE9BMSA8LSANCiAgT0ZYT0ExX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICBjb2ZvZ19ob3ZlZCA9IGNvZm9nX2hvdmVkICU+JSBzdHJfcmVtb3ZlX2FsbCgiWzpkaWdpdDpdfFxcLiIpICU+JSB0cmltd3MoKSwNCiAgICBjb2ZvZ19ob3ZlZCA9IGNvZm9nX2hvdmVkICU+JSBmY3RfcmVvcmRlcih2YWx1ZSwgLmZ1biA9IHN1bSwgLmRlc2MgPSBUUlVFKQ0KICAgICkgJT4lIA0KICBzcHJlYWQob3BnX3ZhciwgdmFsdWUpICU+JSANCiAgYXJyYW5nZShjb2ZvZ19ob3ZlZCkNCg0KT0ZYT0ExICU+JSANCiAgc2VsZWN0KC10YWFyKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZShyZXBsYWNlXzBzID0gVFJVRSkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBPRlhPQTFbWyJ0YWFyIl1dICU+JSB0YWJsZSgpKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKQ0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIk9GWE9BMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvMjQ5NTZmNjItNWQwMy00ZjkwLTkwMTAtY2M4ZTQ2ZDEzOTFmIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KPC9kZXRhaWxzPg0KDQo8ZGV0YWlscz4gPHN1bW1hcnk+IGByIHR4dCRPRiRzdWIyW2xhbmd1YWdlXWAgPC9zdW1tYXJ5Pg0KPGJyPg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJPRlhVS04xIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgT0ZYVUtOMX0NCg0KI09GWFVLTjFfcmF3IDwtIA0KIyAgc3RhdGdsX3VybCgiT0ZYVUtOMSIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lDQojICBzdGF0Z2xfZmV0Y2goDQojICAgIHRpbWUgICAgICAgPSBweF90b3AoKSwNCiMgICAgZGlzdHJpY3QgICA9IGMoIjAwMCIsICI5NTUiLCAiOTU2IiwgIjk1NyIsICI5NTgiLCAiOTU5IiwgIjk2MCIpLA0KIyAgICBrZXlmaWd1cmVzID0gcHhfYWxsKCksDQojICAgIC5jb2xfY29kZSAgPSBUUlVFDQojICApICU+JSANCiMgIGFzX3RpYmJsZSgpDQojDQojT0ZYVUtOMSA8LSANCiMgIE9GWFVLTjFfcmF3ICU+JSANCiMgIGZpbHRlcih2YWx1ZSAhPSAiTkEiKSAlPiUgDQojICBtdXRhdGUoDQojICAgIGtleWZpZ3VyZXMgPSBrZXlmaWd1cmVzICU+JSBmY3RfaW5vcmRlcigpLA0KIyAgICBkaXN0cmljdCA9IGRpc3RyaWN0ICU+JSBmY3RfcmVvcmRlcih2YWx1ZSwgLmZ1biA9IHN1bSwgLmRlc2MgPSBUUlVFKQ0KIyAgKSAlPiUgDQojICBzcHJlYWQoZGlzdHJpY3QsIHZhbHVlKQ0KIw0KI09GWFVLTjEgJT4lIA0KIyAgc2VsZWN0KC10aW1lKSAlPiUgDQojICByZW5hbWUoIiAiID0gMSkgJT4lIA0KIyAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KIyAgcGFja19yb3dzKGluZGV4ID0gT0ZYVUtOMVtbInRpbWUiXV0gJT4lIHRhYmxlKCkpDQoNCg0KIyBTa2FsIG9yZG5lIGtvbSBzw6UgZGV0IGt1biBlciBrb21tdW5lciBvZyBpa2tlIGJ5ZXIgbWVkDQpPRlhVS04xX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiT0ZYVUtOMSIsIGxhbmcgPSBsYW5ndWFnZSkgfD4gDQogIHN0YXRnbF9mZXRjaCgNCiAgICBrb20gICAgICAgID0gYygiQUFBIiwgIjk1NSIsICI5NTYiLCAiOTU3IiwgIjk1OSIsICI5NjAiKSwNCiAgICBpbnN0X3R5cGUyID0gIkEiLA0KICAgIGFhciAgICAgICAgPSBweF90b3AoKSwNCiAgICBib3JuX3ZhciAgID0gcHhfYWxsKCksDQogICAgLmNvbF9jb2RlICA9IFQNCiAgKSB8PiANCiAgYXNfdGliYmxlKCkNCg0KT0ZYVUtOMSA8LSANCiAgT0ZYVUtOMV9yYXcgfD4gDQogIG11dGF0ZSh2YWx1ZSA9IGNhc2Vfd2hlbihpcy5uYSh2YWx1ZSkgfiAwLCBUIH4gdmFsdWUpKSB8PiANCiAgc3ByZWFkKGtvbSwgdmFsdWUpDQoNCk9GWFVLTjEgfD4NCiAgc2VsZWN0KC1jKGluc3RfdHlwZTIsIGFhcikpIHw+IA0KICByZW5hbWUoIiAiID0gMSkgfD4gDQogIHN0YXRnbF90YWJsZSgpIHw+IA0KICBwYWNrX3Jvd3MoaW5kZXggPSBPRlhVS04xW1siYWFyIl1dIHw+IHRhYmxlKCkpDQoNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIk9GWFVLTjEiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxL2NhM2M0MjEzLTRhYWItNGYxNi05Y2RiLTczOGY1YzFlOTkxNSIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQoNCg0KPC9kZXRhaWxzPg0KDQo8ZGV0YWlscz4gPHN1bW1hcnk+IGByIHR4dCRPRiRzdWIzW2xhbmd1YWdlXWAgPC9zdW1tYXJ5PiANCjxicj4NCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAzOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIk9GWEZVTksiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBPRlhGVU5LfQ0KDQpPRlhGVU5LX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiT0ZYRlVOSyIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lDQogIHN0YXRnbF9mZXRjaCgNCiAgICB0aW1lICAgICAgID0gcHhfdG9wKCksDQogICAgc2VjdG9yICAgICA9IDAsDQogICAgImZ1bmN0aW9uIiA9IGMoMCwgMSwgOCwgMTEsIDE3LCAyNSwgMjksIDMzLCAzOSwgNDQsIDUwKSwNCiAgICAuY29sX2NvZGUgID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KT0ZYRlVOSyA8LSANCiAgT0ZYRlVOS19yYXcgJT4lIA0KICBtdXRhdGUoDQogICAgYGZ1bmN0aW9uYCA9IGBmdW5jdGlvbmAgJT4lIA0KICAgICAgc3RyX3JlbW92ZV9hbGwoIls6ZGlnaXQ6XXxcXC4iKSAlPiUgDQogICAgICB0cmltd3MoKSAlPiUgDQogICAgICBmY3RfcmVvcmRlcih2YWx1ZSwgLmZ1biA9IHN1bSwgLmRlc2MgPSBUUlVFKQ0KICAgICkgJT4lIA0KICBzcHJlYWQoc2VjdG9yLCB2YWx1ZSkNCg0KT0ZYRlVOSyAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IE9GWEZVTktbWyJ0aW1lIl1dICU+JSB0YWJsZSgpKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKSB8PiANCiAgYWRkX2Zvb3Rub3RlKCJpIDEuMDAwIGtyLiIsIG5vdGF0aW9uID0gInN5bWJvbCIpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiT0ZYRlVOSyIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvOTNiMTk4ZTktMjcwZi00MWVhLTk4MjgtMmU0Y2YyZWM2MjNmIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgNDogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJPRlhSRUFJIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgT0ZYUkVBSX0NCg0KT0ZYUkVBSV9yYXcgPC0gDQogIHN0YXRnbF91cmwoIk9GWFJFQUkiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JQ0KICBzdGF0Z2xfZmV0Y2goDQogICAgc2VjdG9yICAgICAgPSAwLA0KICAgIHRyYW5zYWN0aW9uID0gYygwLCAxLCAyLCA1LCA4LCAxMiwgMTMsIDE0LCAxNSwgMTYsIDI5LCAzMCwgMzEsIDQyLCA0MyksDQogICAgdGltZSAgICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCk9GWFJFQUkgPC0gDQogIE9GWFJFQUlfcmF3ICU+JSANCiAgbXV0YXRlKA0KICAgIHRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb24gJT4lIHN0cl9yZW1vdmVfYWxsKCJbOmRpZ2l0Ol18XFwrfFxcKHxcXCkiKSAlPiUgdHJpbXdzKCkgJT4lIGZjdF9pbm9yZGVyKCkNCiAgICApICU+JSANCiAgbXV0YXRlX2lmKGlzLmludGVnZXIsIHJlcGxhY2VfbmEsIHJlcGxhY2UgPSAwKSAlPiUgDQogIGZpbHRlcih2YWx1ZSAhPSAwKSAlPiUgDQogIHNwcmVhZChzZWN0b3IsIHZhbHVlKQ0KICANCiAgDQpPRlhSRUFJICU+JSANCiAgc2VsZWN0KC10aW1lKSAlPiUgDQogIGFycmFuZ2UoZGVzYyh0cmFuc2FjdGlvbikpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKHJlcGxhY2VfMHMgPSBUUlVFKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IE9GWFJFQUlbWyJ0aW1lIl1dICU+JSB0YWJsZSgpKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKSB8PiANCiAgYWRkX2Zvb3Rub3RlKCJpIDEuMDAwIGtyLiIsIG5vdGF0aW9uID0gInN5bWJvbCIpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiT0ZYUkVBSSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvOGQ4MDQ3MWUtM2VjNy00NGUwLWE0M2QtYjdjYzhmMGEyMmRiIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCiANCg0KPC9kZXRhaWxzPiANCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkT0Ykc3ViNFtsYW5ndWFnZV1gIDwvc3VtbWFyeT4NCg0KPGJyPg0KVGFiZWxsZXJuZSBlciBmb3Igc3RvcmUuIFNlIHN0YXRpc3Rpa2JhbmtlbiB1bmRlciBPZmZlbnRsaWdlIGZpbmFuc2VyLCByZWduc2thYnN0YWwgZm9yIGxhbmRza2Fzc2VuLg0KDQo8L2RldGFpbHM+IA0KDQoNCjxociBzdHlsZT0iYm9yZGVyOjFweCByaWRnZSBsaWdodGdyYXkiPiA8L2hyPg0KPGNlbnRlcj4gPHNwYW4gc3R5bGU9J2NvbG9yOiNEM0QzRDM7IGZvbnQtc2l6ZTo5MCU7Jz4gYHIgcGFzdGUodHh0JHVwZGF0ZVtsYW5ndWFnZV0sIGZvcm1hdChTeXMuRGF0ZSgpLCAiJWQuICVCICVZIikpYCA8L3NwYW4+IDwvY2VudGVyPg0KDQoNCg0KDQo8c2NyaXB0Pg0KdmFyIGFjYyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFjY29yZGlvbiIpOw0KdmFyIGk7DQoNCmZvciAoaSA9IDA7IGkgPCBhY2MubGVuZ3RoOyBpKyspIHsNCiAgYWNjW2ldLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7DQogICAgdGhpcy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiKTsNCiAgICB2YXIgcGFuZWwgPSB0aGlzLm5leHRFbGVtZW50U2libGluZzsNCiAgICBpZiAocGFuZWwuc3R5bGUubWF4SGVpZ2h0KSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBudWxsOw0KICAgIH0gZWxzZSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBwYW5lbC5zY3JvbGxIZWlnaHQgKyAicHgiOw0KICAgIH0gDQogIH0pOw0KfQ0KPC9zY3JpcHQ+DQo=