Results: No chain length between 500 and 250,000 produces the same number of DMRs between samples. Going to try 500,000 and 1mm next, but considering the 250k chain length takes 5 hours to run, it’ll be interesting to see how long the 500k and 1mm lengths
It is interersting that the #s do get closer as chain length gets longer, so maybe that means there is hope? Just need enough compute power to do it in a reasonable amount of time…
So we noticed that there were some issues with the Macau program in stock configuration, namely that results weren’t repeatable. I ran the Day 10 samples 4 times and got a range of DMRs identified between 54 and 40. Probably not ok.
So I set Emu on the task of running 5 replicates of macau with the same data and different chain lengths to see if there was a length I could identify that would give reproducable results.
I picked lengths of 500, 1000, 5000, 10,000, 50,000, 100,001, and 250,000 and use the 10x coverage Day 10 data for each run.
Read in the 500 length data.
setwd("~/Documents/Genewiz_hdd/Day10/macauv3/output/")
X500run_1_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/500run_1_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X500run_2_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/500run_2_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X500run_3_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/500run_3_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X500run_4_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/500run_4_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X500run_5_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/500run_5_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
Lengths don’t look good, so I’m not holding much hope for this length. Yeah… between 68 and 47 DMRs, that’s not gonna fly.
nrow(X500run_1_10x_assoc)
[1] 1977
nrow(X500run_2_10x_assoc)
[1] 1977
nrow(X500run_3_10x_assoc)
[1] 1974
nrow(X500run_4_10x_assoc)
[1] 1976
nrow(X500run_5_10x_assoc)
[1] 1977
length(X500run_1_10x_assoc$pvalue[which(X500run_1_10x_assoc$pvalue < 0.05)])
[1] 49
length(X500run_2_10x_assoc$pvalue[which(X500run_2_10x_assoc$pvalue < 0.05)])
[1] 47
length(X500run_3_10x_assoc$pvalue[which(X500run_3_10x_assoc$pvalue < 0.05)])
[1] 68
length(X500run_4_10x_assoc$pvalue[which(X500run_4_10x_assoc$pvalue < 0.05)])
[1] 60
length(X500run_5_10x_assoc$pvalue[which(X500run_5_10x_assoc$pvalue < 0.05)])
[1] 57
Moving on to the 1000 length!
X1000run_1_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/1000run_1_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X1000run_2_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/1000run_2_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X1000run_3_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/1000run_3_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X1000run_4_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/1000run_4_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X1000run_5_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/1000run_5_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
nrow(X1000run_1_10x_assoc)
[1] 1977
nrow(X1000run_2_10x_assoc)
[1] 1973
nrow(X1000run_3_10x_assoc)
[1] 1977
nrow(X1000run_4_10x_assoc)
[1] 1974
nrow(X1000run_5_10x_assoc)
[1] 1976
length(X1000run_1_10x_assoc$pvalue[which(X1000run_1_10x_assoc$pvalue < 0.05)])
[1] 36
length(X1000run_2_10x_assoc$pvalue[which(X1000run_2_10x_assoc$pvalue < 0.05)])
[1] 44
length(X1000run_3_10x_assoc$pvalue[which(X1000run_3_10x_assoc$pvalue < 0.05)])
[1] 45
length(X1000run_4_10x_assoc$pvalue[which(X1000run_4_10x_assoc$pvalue < 0.05)])
[1] 43
length(X1000run_5_10x_assoc$pvalue[which(X1000run_5_10x_assoc$pvalue < 0.05)])
[1] 49
Nope, 49-36 DMRs.
5000?
X5000run_1_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/5000run_1_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X5000run_2_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/5000run_2_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X5000run_3_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/5000run_3_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X5000run_4_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/5000run_4_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X5000run_5_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/5000run_5_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
nrow(X5000run_1_10x_assoc)
[1] 1973
nrow(X5000run_2_10x_assoc)
[1] 1975
nrow(X5000run_3_10x_assoc)
[1] 1974
nrow(X5000run_4_10x_assoc)
[1] 1972
nrow(X5000run_5_10x_assoc)
[1] 1967
length(X5000run_1_10x_assoc$pvalue[which(X5000run_1_10x_assoc$pvalue < 0.05)])
[1] 43
length(X5000run_2_10x_assoc$pvalue[which(X5000run_2_10x_assoc$pvalue < 0.05)])
[1] 42
length(X5000run_3_10x_assoc$pvalue[which(X5000run_3_10x_assoc$pvalue < 0.05)])
[1] 37
length(X5000run_4_10x_assoc$pvalue[which(X5000run_4_10x_assoc$pvalue < 0.05)])
[1] 41
length(X5000run_5_10x_assoc$pvalue[which(X5000run_5_10x_assoc$pvalue < 0.05)])
[1] 43
5000’s no good either, but the range is getting tighter… maybe thats good? 43-37
10000?
X10000run_1_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/10000run_1_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X10000run_2_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/10000run_2_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X10000run_3_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/10000run_3_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X10000run_4_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/10000run_4_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X10000run_5_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/10000run_5_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
nrow(X10000run_1_10x_assoc)
[1] 1969
nrow(X10000run_2_10x_assoc)
[1] 1971
nrow(X10000run_3_10x_assoc)
[1] 1971
nrow(X10000run_4_10x_assoc)
[1] 1971
nrow(X10000run_5_10x_assoc)
[1] 1969
length(X10000run_1_10x_assoc$pvalue[which(X10000run_1_10x_assoc$pvalue < 0.05)])
[1] 41
length(X10000run_2_10x_assoc$pvalue[which(X10000run_2_10x_assoc$pvalue < 0.05)])
[1] 33
length(X10000run_3_10x_assoc$pvalue[which(X10000run_3_10x_assoc$pvalue < 0.05)])
[1] 41
length(X10000run_4_10x_assoc$pvalue[which(X10000run_4_10x_assoc$pvalue < 0.05)])
[1] 43
length(X10000run_5_10x_assoc$pvalue[which(X10000run_5_10x_assoc$pvalue < 0.05)])
[1] 39
Nope, 43-33
50,000
X50000run_1_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/50000run_1_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X50000run_2_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/50000run_2_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X50000run_3_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/50000run_3_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X50000run_4_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/50000run_4_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X50000run_5_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/50000run_5_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
nrow(X50000run_1_10x_assoc)
[1] 1957
nrow(X50000run_2_10x_assoc)
[1] 1956
nrow(X50000run_3_10x_assoc)
[1] 1950
nrow(X50000run_4_10x_assoc)
[1] 1960
nrow(X50000run_5_10x_assoc)
[1] 1954
length(X50000run_1_10x_assoc$pvalue[which(X50000run_1_10x_assoc$pvalue < 0.05)])
[1] 40
length(X50000run_2_10x_assoc$pvalue[which(X50000run_2_10x_assoc$pvalue < 0.05)])
[1] 38
length(X50000run_3_10x_assoc$pvalue[which(X50000run_3_10x_assoc$pvalue < 0.05)])
[1] 35
length(X50000run_4_10x_assoc$pvalue[which(X50000run_4_10x_assoc$pvalue < 0.05)])
[1] 35
length(X50000run_5_10x_assoc$pvalue[which(X50000run_5_10x_assoc$pvalue < 0.05)])
[1] 37
100001
X100001run_1_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/50000run_1_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X100001run_2_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/50000run_2_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X100001run_3_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/50000run_3_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X100001run_4_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/50000run_4_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X100001run_5_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/50000run_5_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
nrow(X100001run_1_10x_assoc)
[1] 1957
nrow(X100001run_2_10x_assoc)
[1] 1956
nrow(X100001run_3_10x_assoc)
[1] 1950
nrow(X100001run_4_10x_assoc)
[1] 1960
nrow(X100001run_5_10x_assoc)
[1] 1954
length(X100001run_1_10x_assoc$pvalue[which(X100001run_1_10x_assoc$pvalue < 0.05)])
[1] 40
length(X100001run_2_10x_assoc$pvalue[which(X100001run_2_10x_assoc$pvalue < 0.05)])
[1] 38
length(X100001run_3_10x_assoc$pvalue[which(X100001run_3_10x_assoc$pvalue < 0.05)])
[1] 35
length(X100001run_4_10x_assoc$pvalue[which(X100001run_4_10x_assoc$pvalue < 0.05)])
[1] 35
length(X100001run_5_10x_assoc$pvalue[which(X100001run_5_10x_assoc$pvalue < 0.05)])
[1] 37
Well, this is getting worrisome. The 250k chain length run hasn’t finished yet, as each run takes ~4 hours to run. Hopefully we don’t have to go to 500k-1mm lengths to get reliable results.
Will update when I have the 250k data.
X250000run_1_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/250000run_1_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X250000run_2_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/250000run_2_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X250000run_3_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/250000run_3_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X250000run_4_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/250000run_4_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
X250000run_5_10x_assoc <- read_delim("~/Documents/Genewiz_hdd/Day10/macauv3/output/250000run_5_10x.assoc.txt", "\t", escape_double = FALSE, trim_ws = TRUE)
nrow(X250000run_1_10x_assoc)
[1] 1952
nrow(X250000run_2_10x_assoc)
[1] 1950
nrow(X250000run_3_10x_assoc)
[1] 1950
nrow(X250000run_4_10x_assoc)
[1] 1956
nrow(X250000run_5_10x_assoc)
[1] 1950
length(X250000run_1_10x_assoc$pvalue[which(X250000run_1_10x_assoc$pvalue < 0.05)])
[1] 40
length(X250000run_2_10x_assoc$pvalue[which(X250000run_2_10x_assoc$pvalue < 0.05)])
[1] 41
length(X250000run_3_10x_assoc$pvalue[which(X250000run_3_10x_assoc$pvalue < 0.05)])
[1] 40
length(X250000run_4_10x_assoc$pvalue[which(X250000run_4_10x_assoc$pvalue < 0.05)])
[1] 42
length(X250000run_5_10x_assoc$pvalue[which(X250000run_5_10x_assoc$pvalue < 0.05)])
[1] 39
LS0tCnRpdGxlOiAiTWFjYXUgTUNNQyBjaGFpbiBsZW5ndGggdGVzdCIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKClJlc3VsdHM6IE5vIGNoYWluIGxlbmd0aCBiZXR3ZWVuIDUwMCBhbmQgMjUwLDAwMCBwcm9kdWNlcyB0aGUgc2FtZSBudW1iZXIgb2YgRE1ScyBiZXR3ZWVuIHNhbXBsZXMuIEdvaW5nIHRvIHRyeSA1MDAsMDAwIGFuZCAxbW0gbmV4dCwgYnV0IGNvbnNpZGVyaW5nIHRoZSAyNTBrIGNoYWluIGxlbmd0aCB0YWtlcyA1IGhvdXJzIHRvIHJ1biwgaXQnbGwgYmUgaW50ZXJlc3RpbmcgdG8gc2VlIGhvdyBsb25nIHRoZSA1MDBrIGFuZCAxbW0gbGVuZ3RocwoKSXQgaXMgaW50ZXJlcnN0aW5nIHRoYXQgdGhlICNzIGRvIGdldCBjbG9zZXIgYXMgY2hhaW4gbGVuZ3RoIGdldHMgbG9uZ2VyLCBzbyBtYXliZSB0aGF0IG1lYW5zIHRoZXJlIGlzIGhvcGU/IEp1c3QgbmVlZCBlbm91Z2ggY29tcHV0ZSBwb3dlciB0byBkbyBpdCBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mIHRpbWUuLi4KCgoKClNvIHdlIG5vdGljZWQgdGhhdCB0aGVyZSB3ZXJlIHNvbWUgaXNzdWVzIHdpdGggdGhlIE1hY2F1IHByb2dyYW0gaW4gc3RvY2sgY29uZmlndXJhdGlvbiwgbmFtZWx5IHRoYXQgcmVzdWx0cyB3ZXJlbid0IHJlcGVhdGFibGUuIEkgcmFuIHRoZSBEYXkgMTAgc2FtcGxlcyA0IHRpbWVzIGFuZCBnb3QgYSByYW5nZSBvZiBETVJzIGlkZW50aWZpZWQgYmV0d2VlbiA1NCBhbmQgNDAuIFByb2JhYmx5IG5vdCBvay4KClNvIEkgc2V0IEVtdSBvbiB0aGUgdGFzayBvZiBydW5uaW5nIDUgcmVwbGljYXRlcyBvZiBtYWNhdSB3aXRoIHRoZSBzYW1lIGRhdGEgYW5kIGRpZmZlcmVudCBjaGFpbiBsZW5ndGhzIHRvIHNlZSBpZiB0aGVyZSB3YXMgYSBsZW5ndGggSSBjb3VsZCBpZGVudGlmeSB0aGF0IHdvdWxkIGdpdmUgcmVwcm9kdWNhYmxlIHJlc3VsdHMuCgpJIHBpY2tlZCBsZW5ndGhzIG9mIDUwMCwgMTAwMCwgNTAwMCwgMTAsMDAwLCA1MCwwMDAsIDEwMCwwMDEsIGFuZCAyNTAsMDAwIGFuZCB1c2UgdGhlIDEweCBjb3ZlcmFnZSBEYXkgMTAgZGF0YSBmb3IgZWFjaCBydW4uCgpSZWFkIGluIHRoZSA1MDAgbGVuZ3RoIGRhdGEuCgpgYGB7cn0KCnNldHdkKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC8iKQoKWDUwMHJ1bl8xXzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC81MDBydW5fMV8xMHguYXNzb2MudHh0IiwgIlx0IiwgZXNjYXBlX2RvdWJsZSA9IEZBTFNFLCB0cmltX3dzID0gVFJVRSkKClg1MDBydW5fMl8xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvNTAwcnVuXzJfMTB4LmFzc29jLnR4dCIsICJcdCIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgdHJpbV93cyA9IFRSVUUpCgpYNTAwcnVuXzNfMTB4X2Fzc29jIDwtIHJlYWRfZGVsaW0oIn4vRG9jdW1lbnRzL0dlbmV3aXpfaGRkL0RheTEwL21hY2F1djMvb3V0cHV0LzUwMHJ1bl8zXzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDUwMHJ1bl80XzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC81MDBydW5fNF8xMHguYXNzb2MudHh0IiwgIlx0IiwgZXNjYXBlX2RvdWJsZSA9IEZBTFNFLCB0cmltX3dzID0gVFJVRSkKClg1MDBydW5fNV8xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvNTAwcnVuXzVfMTB4LmFzc29jLnR4dCIsICJcdCIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgdHJpbV93cyA9IFRSVUUpCgpgYGAKCkxlbmd0aHMgZG9uJ3QgbG9vayBnb29kLCBzbyBJJ20gbm90IGhvbGRpbmcgbXVjaCBob3BlIGZvciB0aGlzIGxlbmd0aC4gWWVhaC4uLiBiZXR3ZWVuIDY4IGFuZCA0NyBETVJzLCB0aGF0J3Mgbm90IGdvbm5hIGZseS4KCmBgYHtyfQoKbnJvdyhYNTAwcnVuXzFfMTB4X2Fzc29jKQoKbnJvdyhYNTAwcnVuXzJfMTB4X2Fzc29jKQoKbnJvdyhYNTAwcnVuXzNfMTB4X2Fzc29jKQoKbnJvdyhYNTAwcnVuXzRfMTB4X2Fzc29jKQoKbnJvdyhYNTAwcnVuXzVfMTB4X2Fzc29jKQoKCmxlbmd0aChYNTAwcnVuXzFfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYNTAwcnVuXzFfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFg1MDBydW5fMl8xMHhfYXNzb2MkcHZhbHVlW3doaWNoKFg1MDBydW5fMl8xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQpsZW5ndGgoWDUwMHJ1bl8zXzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDUwMHJ1bl8zXzEweF9hc3NvYyRwdmFsdWUgPCAwLjA1KV0pCmxlbmd0aChYNTAwcnVuXzRfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYNTAwcnVuXzRfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFg1MDBydW5fNV8xMHhfYXNzb2MkcHZhbHVlW3doaWNoKFg1MDBydW5fNV8xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQoKYGBgCgpNb3Zpbmcgb24gdG8gdGhlIDEwMDAgbGVuZ3RoIQoKYGBge3J9CgpYMTAwMHJ1bl8xXzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC8xMDAwcnVuXzFfMTB4LmFzc29jLnR4dCIsICJcdCIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgdHJpbV93cyA9IFRSVUUpCgpYMTAwMHJ1bl8yXzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC8xMDAwcnVuXzJfMTB4LmFzc29jLnR4dCIsICJcdCIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgdHJpbV93cyA9IFRSVUUpCgpYMTAwMHJ1bl8zXzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC8xMDAwcnVuXzNfMTB4LmFzc29jLnR4dCIsICJcdCIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgdHJpbV93cyA9IFRSVUUpCgpYMTAwMHJ1bl80XzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC8xMDAwcnVuXzRfMTB4LmFzc29jLnR4dCIsICJcdCIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgdHJpbV93cyA9IFRSVUUpCgpYMTAwMHJ1bl81XzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC8xMDAwcnVuXzVfMTB4LmFzc29jLnR4dCIsICJcdCIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgdHJpbV93cyA9IFRSVUUpCgpgYGAKCgoKYGBge3J9Cgpucm93KFgxMDAwcnVuXzFfMTB4X2Fzc29jKQoKbnJvdyhYMTAwMHJ1bl8yXzEweF9hc3NvYykKCm5yb3coWDEwMDBydW5fM18xMHhfYXNzb2MpCgpucm93KFgxMDAwcnVuXzRfMTB4X2Fzc29jKQoKbnJvdyhYMTAwMHJ1bl81XzEweF9hc3NvYykKCgpsZW5ndGgoWDEwMDBydW5fMV8xMHhfYXNzb2MkcHZhbHVlW3doaWNoKFgxMDAwcnVuXzFfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFgxMDAwcnVuXzJfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYMTAwMHJ1bl8yXzEweF9hc3NvYyRwdmFsdWUgPCAwLjA1KV0pCmxlbmd0aChYMTAwMHJ1bl8zXzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDEwMDBydW5fM18xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQpsZW5ndGgoWDEwMDBydW5fNF8xMHhfYXNzb2MkcHZhbHVlW3doaWNoKFgxMDAwcnVuXzRfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFgxMDAwcnVuXzVfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYMTAwMHJ1bl81XzEweF9hc3NvYyRwdmFsdWUgPCAwLjA1KV0pCgpgYGAKCk5vcGUsIDQ5LTM2IERNUnMuCgo1MDAwPwoKCmBgYHtyfQoKWDUwMDBydW5fMV8xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvNTAwMHJ1bl8xXzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDUwMDBydW5fMl8xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvNTAwMHJ1bl8yXzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDUwMDBydW5fM18xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvNTAwMHJ1bl8zXzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDUwMDBydW5fNF8xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvNTAwMHJ1bl80XzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDUwMDBydW5fNV8xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvNTAwMHJ1bl81XzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKYGBgCgoKCmBgYHtyfQoKbnJvdyhYNTAwMHJ1bl8xXzEweF9hc3NvYykKCm5yb3coWDUwMDBydW5fMl8xMHhfYXNzb2MpCgpucm93KFg1MDAwcnVuXzNfMTB4X2Fzc29jKQoKbnJvdyhYNTAwMHJ1bl80XzEweF9hc3NvYykKCm5yb3coWDUwMDBydW5fNV8xMHhfYXNzb2MpCgoKbGVuZ3RoKFg1MDAwcnVuXzFfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYNTAwMHJ1bl8xXzEweF9hc3NvYyRwdmFsdWUgPCAwLjA1KV0pCmxlbmd0aChYNTAwMHJ1bl8yXzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDUwMDBydW5fMl8xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQpsZW5ndGgoWDUwMDBydW5fM18xMHhfYXNzb2MkcHZhbHVlW3doaWNoKFg1MDAwcnVuXzNfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFg1MDAwcnVuXzRfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYNTAwMHJ1bl80XzEweF9hc3NvYyRwdmFsdWUgPCAwLjA1KV0pCmxlbmd0aChYNTAwMHJ1bl81XzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDUwMDBydW5fNV8xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQoKYGBgCgo1MDAwJ3Mgbm8gZ29vZCBlaXRoZXIsIGJ1dCB0aGUgcmFuZ2UgaXMgZ2V0dGluZyB0aWdodGVyLi4uIG1heWJlIHRoYXRzIGdvb2Q/IDQzLTM3CgoxMDAwMD8KCmBgYHtyfQoKWDEwMDAwcnVuXzFfMTB4X2Fzc29jIDwtIHJlYWRfZGVsaW0oIn4vRG9jdW1lbnRzL0dlbmV3aXpfaGRkL0RheTEwL21hY2F1djMvb3V0cHV0LzEwMDAwcnVuXzFfMTB4LmFzc29jLnR4dCIsICJcdCIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgdHJpbV93cyA9IFRSVUUpCgpYMTAwMDBydW5fMl8xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvMTAwMDBydW5fMl8xMHguYXNzb2MudHh0IiwgIlx0IiwgZXNjYXBlX2RvdWJsZSA9IEZBTFNFLCB0cmltX3dzID0gVFJVRSkKClgxMDAwMHJ1bl8zXzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC8xMDAwMHJ1bl8zXzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDEwMDAwcnVuXzRfMTB4X2Fzc29jIDwtIHJlYWRfZGVsaW0oIn4vRG9jdW1lbnRzL0dlbmV3aXpfaGRkL0RheTEwL21hY2F1djMvb3V0cHV0LzEwMDAwcnVuXzRfMTB4LmFzc29jLnR4dCIsICJcdCIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgdHJpbV93cyA9IFRSVUUpCgpYMTAwMDBydW5fNV8xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvMTAwMDBydW5fNV8xMHguYXNzb2MudHh0IiwgIlx0IiwgZXNjYXBlX2RvdWJsZSA9IEZBTFNFLCB0cmltX3dzID0gVFJVRSkKCmBgYAoKCgpgYGB7cn0KCm5yb3coWDEwMDAwcnVuXzFfMTB4X2Fzc29jKQoKbnJvdyhYMTAwMDBydW5fMl8xMHhfYXNzb2MpCgpucm93KFgxMDAwMHJ1bl8zXzEweF9hc3NvYykKCm5yb3coWDEwMDAwcnVuXzRfMTB4X2Fzc29jKQoKbnJvdyhYMTAwMDBydW5fNV8xMHhfYXNzb2MpCgoKbGVuZ3RoKFgxMDAwMHJ1bl8xXzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDEwMDAwcnVuXzFfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFgxMDAwMHJ1bl8yXzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDEwMDAwcnVuXzJfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFgxMDAwMHJ1bl8zXzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDEwMDAwcnVuXzNfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFgxMDAwMHJ1bl80XzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDEwMDAwcnVuXzRfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFgxMDAwMHJ1bl81XzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDEwMDAwcnVuXzVfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKCmBgYAoKTm9wZSwgNDMtMzMKCjUwLDAwMAoKYGBge3J9CgpYNTAwMDBydW5fMV8xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvNTAwMDBydW5fMV8xMHguYXNzb2MudHh0IiwgIlx0IiwgZXNjYXBlX2RvdWJsZSA9IEZBTFNFLCB0cmltX3dzID0gVFJVRSkKClg1MDAwMHJ1bl8yXzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC81MDAwMHJ1bl8yXzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDUwMDAwcnVuXzNfMTB4X2Fzc29jIDwtIHJlYWRfZGVsaW0oIn4vRG9jdW1lbnRzL0dlbmV3aXpfaGRkL0RheTEwL21hY2F1djMvb3V0cHV0LzUwMDAwcnVuXzNfMTB4LmFzc29jLnR4dCIsICJcdCIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgdHJpbV93cyA9IFRSVUUpCgpYNTAwMDBydW5fNF8xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvNTAwMDBydW5fNF8xMHguYXNzb2MudHh0IiwgIlx0IiwgZXNjYXBlX2RvdWJsZSA9IEZBTFNFLCB0cmltX3dzID0gVFJVRSkKClg1MDAwMHJ1bl81XzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC81MDAwMHJ1bl81XzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKYGBgCgoKCmBgYHtyfQoKbnJvdyhYNTAwMDBydW5fMV8xMHhfYXNzb2MpCgpucm93KFg1MDAwMHJ1bl8yXzEweF9hc3NvYykKCm5yb3coWDUwMDAwcnVuXzNfMTB4X2Fzc29jKQoKbnJvdyhYNTAwMDBydW5fNF8xMHhfYXNzb2MpCgpucm93KFg1MDAwMHJ1bl81XzEweF9hc3NvYykKCgpsZW5ndGgoWDUwMDAwcnVuXzFfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYNTAwMDBydW5fMV8xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQpsZW5ndGgoWDUwMDAwcnVuXzJfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYNTAwMDBydW5fMl8xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQpsZW5ndGgoWDUwMDAwcnVuXzNfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYNTAwMDBydW5fM18xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQpsZW5ndGgoWDUwMDAwcnVuXzRfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYNTAwMDBydW5fNF8xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQpsZW5ndGgoWDUwMDAwcnVuXzVfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYNTAwMDBydW5fNV8xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQoKYGBgCgoxMDAwMDEKCmBgYHtyfQoKWDEwMDAwMXJ1bl8xXzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC81MDAwMHJ1bl8xXzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDEwMDAwMXJ1bl8yXzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC81MDAwMHJ1bl8yXzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDEwMDAwMXJ1bl8zXzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC81MDAwMHJ1bl8zXzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDEwMDAwMXJ1bl80XzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC81MDAwMHJ1bl80XzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDEwMDAwMXJ1bl81XzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC81MDAwMHJ1bl81XzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKYGBgCgoKCmBgYHtyfQoKbnJvdyhYMTAwMDAxcnVuXzFfMTB4X2Fzc29jKQoKbnJvdyhYMTAwMDAxcnVuXzJfMTB4X2Fzc29jKQoKbnJvdyhYMTAwMDAxcnVuXzNfMTB4X2Fzc29jKQoKbnJvdyhYMTAwMDAxcnVuXzRfMTB4X2Fzc29jKQoKbnJvdyhYMTAwMDAxcnVuXzVfMTB4X2Fzc29jKQoKCmxlbmd0aChYMTAwMDAxcnVuXzFfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYMTAwMDAxcnVuXzFfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFgxMDAwMDFydW5fMl8xMHhfYXNzb2MkcHZhbHVlW3doaWNoKFgxMDAwMDFydW5fMl8xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQpsZW5ndGgoWDEwMDAwMXJ1bl8zXzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDEwMDAwMXJ1bl8zXzEweF9hc3NvYyRwdmFsdWUgPCAwLjA1KV0pCmxlbmd0aChYMTAwMDAxcnVuXzRfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYMTAwMDAxcnVuXzRfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFgxMDAwMDFydW5fNV8xMHhfYXNzb2MkcHZhbHVlW3doaWNoKFgxMDAwMDFydW5fNV8xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQoKYGBgCgpXZWxsLCB0aGlzIGlzIGdldHRpbmcgd29ycmlzb21lLiBUaGUgMjUwayBjaGFpbiBsZW5ndGggcnVuIGhhc24ndCBmaW5pc2hlZCB5ZXQsIGFzIGVhY2ggcnVuIHRha2VzIH40IGhvdXJzIHRvIHJ1bi4gSG9wZWZ1bGx5IHdlIGRvbid0IGhhdmUgdG8gZ28gdG8gNTAway0xbW0gbGVuZ3RocyB0byBnZXQgcmVsaWFibGUgcmVzdWx0cy4gCgpXaWxsIHVwZGF0ZSB3aGVuIEkgaGF2ZSB0aGUgMjUwayBkYXRhLgoKYGBge3J9CgpYMjUwMDAwcnVuXzFfMTB4X2Fzc29jIDwtIHJlYWRfZGVsaW0oIn4vRG9jdW1lbnRzL0dlbmV3aXpfaGRkL0RheTEwL21hY2F1djMvb3V0cHV0LzI1MDAwMHJ1bl8xXzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDI1MDAwMHJ1bl8yXzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC8yNTAwMDBydW5fMl8xMHguYXNzb2MudHh0IiwgIlx0IiwgZXNjYXBlX2RvdWJsZSA9IEZBTFNFLCB0cmltX3dzID0gVFJVRSkKClgyNTAwMDBydW5fM18xMHhfYXNzb2MgPC0gcmVhZF9kZWxpbSgifi9Eb2N1bWVudHMvR2VuZXdpel9oZGQvRGF5MTAvbWFjYXV2My9vdXRwdXQvMjUwMDAwcnVuXzNfMTB4LmFzc29jLnR4dCIsICJcdCIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgdHJpbV93cyA9IFRSVUUpCgpYMjUwMDAwcnVuXzRfMTB4X2Fzc29jIDwtIHJlYWRfZGVsaW0oIn4vRG9jdW1lbnRzL0dlbmV3aXpfaGRkL0RheTEwL21hY2F1djMvb3V0cHV0LzI1MDAwMHJ1bl80XzEweC5hc3NvYy50eHQiLCAiXHQiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFKQoKWDI1MDAwMHJ1bl81XzEweF9hc3NvYyA8LSByZWFkX2RlbGltKCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9EYXkxMC9tYWNhdXYzL291dHB1dC8yNTAwMDBydW5fNV8xMHguYXNzb2MudHh0IiwgIlx0IiwgZXNjYXBlX2RvdWJsZSA9IEZBTFNFLCB0cmltX3dzID0gVFJVRSkKCmBgYAoKCgpgYGB7cn0KCm5yb3coWDI1MDAwMHJ1bl8xXzEweF9hc3NvYykKCm5yb3coWDI1MDAwMHJ1bl8yXzEweF9hc3NvYykKCm5yb3coWDI1MDAwMHJ1bl8zXzEweF9hc3NvYykKCm5yb3coWDI1MDAwMHJ1bl80XzEweF9hc3NvYykKCm5yb3coWDI1MDAwMHJ1bl81XzEweF9hc3NvYykKCgpsZW5ndGgoWDI1MDAwMHJ1bl8xXzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDI1MDAwMHJ1bl8xXzEweF9hc3NvYyRwdmFsdWUgPCAwLjA1KV0pCmxlbmd0aChYMjUwMDAwcnVuXzJfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYMjUwMDAwcnVuXzJfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKbGVuZ3RoKFgyNTAwMDBydW5fM18xMHhfYXNzb2MkcHZhbHVlW3doaWNoKFgyNTAwMDBydW5fM18xMHhfYXNzb2MkcHZhbHVlIDwgMC4wNSldKQpsZW5ndGgoWDI1MDAwMHJ1bl80XzEweF9hc3NvYyRwdmFsdWVbd2hpY2goWDI1MDAwMHJ1bl80XzEweF9hc3NvYyRwdmFsdWUgPCAwLjA1KV0pCmxlbmd0aChYMjUwMDAwcnVuXzVfMTB4X2Fzc29jJHB2YWx1ZVt3aGljaChYMjUwMDAwcnVuXzVfMTB4X2Fzc29jJHB2YWx1ZSA8IDAuMDUpXSkKCmBgYA==