Clearing environment
rm(list = ls())
Loading necessary package
require(deSolve)
System of DEs
SARSCOV2Model <- function (t, y, params) {
S.h<-y[1] #create local variable S, first element of y
E.h<-y[2]
I.h<-y[3]
S.l<-y[4]
E.l<-y[5]
I.l<-y[6]
Q<-y[7]
R<-y[8]
V<-y[9]
with(
as.list(params, y),
{
dS.h<--q*beta*(I.h+I.l)*S.h/(S.h+E.h+I.h+S.l+E.l+I.l+Q+R)-c*(1-exp((-1/K)*V))*S.h
dE.h<-q*beta*(I.h+I.l)*S.h/(S.h+E.h+I.h+S.l+E.l+I.l+Q+R)+c*(1-exp((-1/K)*V))*S.h-lambda*E.h
dI.h<-lambda*E.h-b*g*I.h-aH*h*(1-g)*I.h-gammah*(1-h)*(1-g)*I.h
dS.l<--(1-p)*q*beta*(I.h+I.l)*S.l/(S.h+E.h+I.h+S.l+E.l+I.l+Q+R)-(1-p)*c*(1-exp((-1/K)*V))*S.l
dE.l<-(1-p)*q*beta*(I.h+I.l)/(S.h+E.h+I.h+S.l+E.l+I.l+Q+R)+(1-p)*c*(1-exp((-1/K)*V))*S.l-lambda*E.l
dI.l<-lambda*E.l-b*I.l
dQ<-b*I.l+g*b*I.h-aQ*h*Q-gammaQ*(1-h)*Q
dR<-gammah*(1-h)*(1-g)*I.h+gammaQ*(1-h)*Q
dV<-omega*I.h+(1-p)*omega*I.l-delta*V
dy<-c(dS.h,dE.h,dI.h,dS.l,dE.l,dI.l,dQ,dR,dV) #combine results into one vector dy
list(dy)
}
)
}
Initial Values
times<-seq(0,180,by=1)
covid.params<-c(q=0.2,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=0,delta=1,K=10000)
ystart<-c(S.h=(.2)*100000,E.h=0,I.h=1,S.l=(1-0.2)*100000,E.l=0,I.l=0,Q=0,R=0,V=0)
covid.out <- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params))
Changing omega to 0, 0.25, 0.5, 0.75, & 1
covid.params.o1 <- c(q=0.5,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=0,delta=0.5,K=1000000)
covid.params.o2 <- c(q=0.5,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=0.25,delta=1,K=1000000)
covid.params.o3 <- c(q=0.5,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=0.5,delta=1.5,K=1000000)
covid.params.o4 <- c(q=0.5,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=0.75,delta=2,K=1000000)
covid.params.o5 <- c(q=0.5,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=1,delta=2,K=1000000)
Creating data frame for each value of omega
covid.out.o1 <- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params.o1))
covid.out.o2 <- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params.o2))
covid.out.o3 <- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params.o3))
covid.out.o4 <- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params.o4))
covid.out.o5 <- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params.o5))
Plotting all classes
## SUSCEPTIBLE ##
op1 <- par(fig=c(0,0.5,0,1), mar=c(4,4,1,1))
plot(covid.out.o1$S.h~covid.out.o1$time,type="l", col="blue", xlab="Days", ylab = "Susceptibles (High)", ylim=c(0,20000))
lines(covid.out.o2$S.h~covid.out.o2$time, col="red")
lines(covid.out.o3$S.h~covid.out.o3$time, col="purple")
lines(covid.out.o4$S.h~covid.out.o4$time, col="green")
lines(covid.out.o5$S.h~covid.out.o5$time, col="orange")
legend(75, 15000,legend = c("omega=0","omega=0.25","omega=0.5","omega=0.75","omega=1"), col = c("blue", "red", "purple", "green", "orange"), lty=1, cex=0.8)
par(fig=c(0.5,1,0,1), mar=c(4,4,1,1), new=T)
plot(covid.out.o1$S.l~covid.out.o1$time,type="l", col="blue", xlab="Days", ylab = "Susceptibles (Low)", ylim=c(0,80000))
lines(covid.out.o2$S.l~covid.out.o2$time, col="red")
lines(covid.out.o3$S.l~covid.out.o3$time, col="purple")
lines(covid.out.o4$S.l~covid.out.o4$time, col="green")
lines(covid.out.o5$S.l~covid.out.o5$time, col="orange")
legend(75, 60000,legend = c("omega=0","omega=0.25","omega=0.5","omega=0.75","omega=1"), col = c("blue", "red", "purple", "green", "orange"), lty=1, cex=0.8)
par(op1)
## EXPOSED ##
op2 <- par(fig=c(0,0.5,0,1), mar=c(4,4,1,1))

plot(covid.out.o1$E.h~covid.out.o1$time,type="l", col="blue", xlab="Days", ylab = "Exposed (High)", ylim=c(0,7100))
lines(covid.out.o2$E.h~covid.out.o2$time, col="red")
lines(covid.out.o3$E.h~covid.out.o3$time, col="purple")
lines(covid.out.o4$E.h~covid.out.o4$time, col="green")
lines(covid.out.o5$E.h~covid.out.o5$time, col="orange")
legend(75, 6000,legend = c("omega=0","omega=0.25","omega=0.5","omega=0.75","omega=1"), col = c("blue", "red", "purple", "green", "orange"), lty=1, cex=0.8)
par(fig=c(0.5,1,0,1), mar=c(4,4,1,1), new=T)
plot(covid.out.o1$E.l~covid.out.o1$time,type="l", col="blue", xlab="Days", ylab = "Exposed (Low)", ylim=c(0,3))
lines(covid.out.o2$E.l~covid.out.o2$time, col="red")
lines(covid.out.o3$E.l~covid.out.o3$time, col="purple")
lines(covid.out.o4$E.l~covid.out.o4$time, col="green")
lines(covid.out.o5$E.l~covid.out.o5$time, col="orange")
legend(75, 2.5,legend = c("omega=0","omega=0.25","omega=0.5","omega=0.75","omega=1"), col = c("blue", "red", "purple", "green", "orange"), lty=1, cex=0.8)
par(op2)
## INFECTED ##
op3 <- par(fig=c(0,0.5,0,1), mar=c(4,4,1,1))

plot(covid.out.o1$I.h~covid.out.o1$time,type="l", col="blue", xlab="Days", ylab = "Infected (High)", ylim=c(0,4000))
lines(covid.out.o2$I.h~covid.out.o2$time, col="red")
lines(covid.out.o3$I.h~covid.out.o3$time, col="purple")
lines(covid.out.o4$I.h~covid.out.o4$time, col="green")
lines(covid.out.o5$I.h~covid.out.o5$time, col="orange")
legend(75,3000,legend = c("omega=0","omega=0.25","omega=0.5","omega=0.75","omega=1"), col = c("blue", "red", "purple", "green", "orange"), lty=1, cex=0.8)
par(fig=c(0.5,1,0,1), mar=c(4,4,1,1), new=T)
plot(covid.out.o1$I.l~covid.out.o1$time,type="l", col="blue", xlab="Days", ylab = "Infected (Low)", ylim=c(0,1))
lines(covid.out.o2$I.l~covid.out.o2$time, col="red")
lines(covid.out.o3$I.l~covid.out.o3$time, col="purple")
lines(covid.out.o4$I.l~covid.out.o4$time, col="green")
lines(covid.out.o5$I.l~covid.out.o5$time, col="orange")
legend(75, 0.8,legend = c("omega=0","omega=0.25","omega=0.5","omega=0.75","omega=1"), col = c("blue", "red", "purple", "green", "orange"), lty=1, cex=0.8)
par(op3)
## SELF-ISOLATING ##
op4 <- par(mar=c(6,6,2,2))

plot(covid.out.o1$Q~covid.out.o1$time,type="l", col="blue", xlab="Days", ylab = "Self-Isolating", ylim=c(0,4))
lines(covid.out.o2$Q~covid.out.o2$time, col="red")
lines(covid.out.o3$Q~covid.out.o3$time, col="purple")
lines(covid.out.o4$Q~covid.out.o4$time, col="green")
lines(covid.out.o5$Q~covid.out.o5$time, col="orange")
legend(100, 3,legend = c("omega=0","omega=0.25","omega=0.5","omega=0.75","omega=1"), col = c("blue", "red", "purple", "green", "orange"), lty=1, cex=0.8)
par(op4)
## RECOVERED ##
op5 <- par(mar=c(6,6,2,2))

plot(covid.out.o1$R~covid.out.o1$time,type="l", col="blue", xlab="Days", ylab = "Recovered", ylim=c(0,20000))
lines(covid.out.o2$R~covid.out.o2$time, col="red")
lines(covid.out.o3$R~covid.out.o3$time, col="purple")
lines(covid.out.o4$R~covid.out.o4$time, col="green")
lines(covid.out.o5$R~covid.out.o5$time, col="orange")
legend(100, 15000,legend = c("omega=0","omega=0.25","omega=0.5","omega=0.75","omega=1"), col = c("blue", "red", "purple", "green", "orange"), lty=1, cex=0.8)
par(op5)
## VIRUS IN ENVIRONMENT ##
op6 <- par(mar=c(6,6,2,2))

plot(covid.out.o1$V~covid.out.o1$time,type="l", col="blue", xlab="Days", ylab = "Virus in Environment", ylim=c(0,2000))
lines(covid.out.o2$V~covid.out.o2$time, type="l", col="red")
lines(covid.out.o3$V~covid.out.o3$time, type="l", col="purple")
lines(covid.out.o4$V~covid.out.o4$time, type="l", col="green")
lines(covid.out.o5$V~covid.out.o5$time, type="l", col="orange")
legend(100, 1750,legend = c("omega=0","omega=0.25","omega=0.5","omega=0.75","omega=1"), col = c("blue", "red", "purple", "green", "orange"), lty=1, cex=0.8)
par(op6)

Results of plot
# first dataframe lists highest values
# second dataframe lists lowest values
# third dataframe lists ending values
results.o1 <- data.frame(
S.h = c(max(covid.out.o1[ ,2]), max(covid.out.o2[ ,2]), max(covid.out.o3[ ,2]), max(covid.out.o4[ ,2]), max(covid.out.o5[ ,2])),
E.h = c(max(covid.out.o1[ ,3]), max(covid.out.o2[ ,3]), max(covid.out.o3[ ,3]), max(covid.out.o4[ ,3]), max(covid.out.o5[ ,3])),
I.h = c(max(covid.out.o1[ ,4]), max(covid.out.o2[ ,4]), max(covid.out.o3[ ,4]), max(covid.out.o4[ ,4]), max(covid.out.o5[ ,4])),
S.l = c(max(covid.out.o1[ ,5]), max(covid.out.o2[ ,5]), max(covid.out.o3[ ,5]), max(covid.out.o4[ ,5]), max(covid.out.o5[ ,5])),
E.l = c(max(covid.out.o1[ ,6]), max(covid.out.o2[ ,6]), max(covid.out.o3[ ,6]), max(covid.out.o4[ ,6]), max(covid.out.o5[ ,6])),
I.l = c(max(covid.out.o1[ ,7]), max(covid.out.o2[ ,7]), max(covid.out.o3[ ,7]), max(covid.out.o4[ ,7]), max(covid.out.o5[ ,7])),
Q = c(max(covid.out.o1[ ,8]), max(covid.out.o2[ ,8]), max(covid.out.o3[ ,8]), max(covid.out.o4[ ,8]), max(covid.out.o5[ ,8])),
R = c(max(covid.out.o1[ ,9]), max(covid.out.o2[ ,9]), max(covid.out.o3[ ,9]), max(covid.out.o4[ ,9]), max(covid.out.o5[ ,9])),
V = c(max(covid.out.o1[ ,10]), max(covid.out.o2[ ,10]), max(covid.out.o3[ ,10]), max(covid.out.o4[ ,10]), max(covid.out.o5[ ,10]))
)
results.o2 <- data.frame(
S.h = c(min(covid.out.o1[ ,2]), min(covid.out.o2[ ,2]), min(covid.out.o3[ ,2]), min(covid.out.o4[ ,2]), min(covid.out.o5[ ,2])),
E.h = c(min(covid.out.o1[ ,3]), min(covid.out.o2[ ,3]), min(covid.out.o3[ ,3]), min(covid.out.o4[ ,3]), min(covid.out.o5[ ,3])),
I.h = c(min(covid.out.o1[ ,4]), min(covid.out.o2[ ,4]), min(covid.out.o3[ ,4]), min(covid.out.o4[ ,4]), min(covid.out.o5[ ,4])),
S.l = c(min(covid.out.o1[ ,5]), min(covid.out.o2[ ,5]), min(covid.out.o3[ ,5]), min(covid.out.o4[ ,5]), min(covid.out.o5[ ,5])),
E.l = c(min(covid.out.o1[ ,6]), min(covid.out.o2[ ,6]), min(covid.out.o3[ ,6]), min(covid.out.o4[ ,6]), min(covid.out.o5[ ,6])),
I.l = c(min(covid.out.o1[ ,7]), min(covid.out.o2[ ,7]), min(covid.out.o3[ ,7]), min(covid.out.o4[ ,7]), min(covid.out.o5[ ,7])),
Q = c(min(covid.out.o1[ ,8]), min(covid.out.o2[ ,8]), min(covid.out.o3[ ,8]), min(covid.out.o4[ ,8]), min(covid.out.o5[ ,8])),
R = c(min(covid.out.o1[ ,9]), min(covid.out.o2[ ,9]), min(covid.out.o3[ ,9]), min(covid.out.o4[ ,9]), min(covid.out.o5[ ,9])),
V = c(min(covid.out.o1[ ,10]), min(covid.out.o2[ ,10]), min(covid.out.o3[ ,10]), min(covid.out.o4[ ,10]), min(covid.out.o5[ ,10]))
)
results.o3 <- data.frame(
S.h = c(tail(covid.out.o1[ ,2],n=1), tail(covid.out.o2[ ,2],n=1), tail(covid.out.o3[ ,2],n=1), tail(covid.out.o4[ ,2],n=1), tail(covid.out.o5[ ,2],n=1)),
E.h = c(tail(covid.out.o1[ ,3],n=1), tail(covid.out.o2[ ,3],n=1), tail(covid.out.o3[ ,3],n=1), tail(covid.out.o4[ ,3],n=1), tail(covid.out.o5[ ,3],n=1)),
I.h = c(tail(covid.out.o1[ ,4],n=1), tail(covid.out.o2[ ,4],n=1), tail(covid.out.o3[ ,4],n=1), tail(covid.out.o4[ ,4],n=1), tail(covid.out.o5[ ,4],n=1)),
S.l = c(tail(covid.out.o1[ ,5],n=1), tail(covid.out.o2[ ,5],n=1), tail(covid.out.o3[ ,5],n=1), tail(covid.out.o4[ ,5],n=1), tail(covid.out.o5[ ,5],n=1)),
E.l = c(tail(covid.out.o1[ ,6],n=1), tail(covid.out.o2[ ,6],n=1), tail(covid.out.o3[ ,6],n=1), tail(covid.out.o4[ ,6],n=1), tail(covid.out.o5[ ,6],n=1)),
I.l = c(tail(covid.out.o1[ ,7],n=1), tail(covid.out.o2[ ,7],n=1), tail(covid.out.o3[ ,7],n=1), tail(covid.out.o4[ ,7],n=1), tail(covid.out.o5[ ,7],n=1)),
Q = c(tail(covid.out.o1[ ,8],n=1), tail(covid.out.o2[ ,8],n=1), tail(covid.out.o3[ ,8],n=1), tail(covid.out.o4[ ,8],n=1), tail(covid.out.o5[ ,8],n=1)),
R = c(tail(covid.out.o1[ ,9],n=1), tail(covid.out.o2[ ,9],n=1), tail(covid.out.o3[ ,9],n=1), tail(covid.out.o4[ ,9],n=1), tail(covid.out.o5[ ,9],n=1)),
V = c(tail(covid.out.o1[ ,10],n=1), tail(covid.out.o2[ ,10],n=1), tail(covid.out.o3[ ,10],n=1), tail(covid.out.o4[ ,10],n=1), tail(covid.out.o5[ ,10],n=1))
)
`.rowNamesDF<-`(results.o1,make.names=FALSE,c('omega = 0','omega = 0.25','omega = 0.5','omega = 0.75','omega = 1'))
`.rowNamesDF<-`(results.o2,make.names=FALSE,c('omega = 0','omega = 0.25','omega = 0.5','omega = 0.75','omega = 1'))
`.rowNamesDF<-`(results.o3,make.names=FALSE,c('omega = 0','omega = 0.25','omega = 0.5','omega = 0.75','omega = 1'))
NA
Plotting highest, lowest, and ending values of classes
## HIGHEST ##
op7 <- par(mar=c(6,6,2,2))
plot(results.o1$S.h,type="b", col="blue", xlab="q values", ylab = "Individuals", main="Highest", ylim=c(0,80000))
lines(results.o1$E.h, type = "b", col="red")
lines(results.o1$I.h, type = "b", col="green")
lines(results.o1$S.l, type = "b", col="purple")
lines(results.o1$E.l, type = "b", col="orange")
lines(results.o1$I.l, type = "b", col="forestgreen")
lines(results.o1$Q, type = "b", col="darkturquoise")
lines(results.o1$R, type = "b", col="pink2")
lines(results.o1$V, type = "b", col="yellow")
legend(3, 70000,legend = c("Susceptibles (High)","Exposed (High)","Infected (High)","Susceptibles (Low)","Exposed (Low)","Infected (Low)", "Self-Isolating","Recovered","Virus"), col = c("blue", "red", "green","purple","orange","forestgreen","darkturquoise","pink2","yellow"), lty=1, cex=0.6)
par(op7)
## LOWEST
op8 <- par(mar=c(6,6,2,2))

plot(results.o2$S.h,type="b", col="blue", main="Lowest", xlab="q values", ylab = "Individuals", ylim=c(0,80000))
lines(results.o2$E.h, type = "b", col="red")
lines(results.o2$I.h, type = "b", col="green")
lines(results.o2$S.l, type = "b", col="purple")
lines(results.o2$E.l, type = "b", col="orange")
lines(results.o2$I.l, type = "b", col="forestgreen")
lines(results.o2$Q, type = "b", col="darkturquoise")
lines(results.o2$R, type = "b", col="pink2")
lines(results.o2$V, type = "b", col="yellow")
legend(3, 70000,legend = c("Susceptibles (High)","Exposed (High)","Infected (High)","Susceptibles (Low)","Exposed (Low)","Infected (Low)", "Self-Isolating","Recovered","Virus"), col = c("blue", "red", "green","purple","orange","forestgreen","darkturquoise","pink2","yellow"), lty=1, cex=0.6)
par(op8)
## ENDING ##
op9 <- par(mar=c(6,6,2,2))

plot(results.o3$S.h, type="b", col="blue", main="Ending", xlab="q values", ylab = "Individuals", ylim=c(0,80000))
lines(results.o3$E.h, type = "b", col="red")
lines(results.o3$I.h, type = "b", col="green")
lines(results.o3$S.l, type = "b", col="purple")
lines(results.o3$E.l, type = "b", col="orange")
lines(results.o3$I.l, type = "b", col="forestgreen")
lines(results.o3$Q, type = "b", col="darkturquoise")
lines(results.o3$R, type = "b", col="pink2")
lines(results.o3$V, type = "b", col="yellow")
legend(3, 70000,legend = c("Susceptibles (High)","Exposed (High)","Infected (High)","Susceptibles (Low)","Exposed (Low)","Infected (Low)", "Self-Isolating","Recovered","Virus"), col = c("blue", "red", "green","purple","orange","forestgreen","darkturquoise","pink2","yellow"), lty=1, cex=0.6)
par(op9)

Changing omega to 0.75, 0.80, 0.85, 0.90, 0.95, & 1
covid.params.o6 <- c(q=0.2,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=0.75,delta=0.5,K=1000000)
covid.params.o7 <- c(q=0.2,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=0.80,delta=1,K=1000000)
covid.params.o8 <- c(q=0.2,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=0.85,delta=1.5,K=1000000)
covid.params.o9 <- c(q=0.2,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=0.90,delta=2,K=1000000)
covid.params.o10 <- c(q=0.2,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=0.95,delta=2,K=1000000)
covid.params.o11 <- c(q=0.2,beta=13,p=.2,c=0,lambda=1/4.43,b=1/0.77,g=0,gammaQ=0.1,gammah=1/2.7,aQ=1/1.93,aH=1/2.7,h=0.00082,omega=1,delta=2,K=1000000)
covid.out.o6 <- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params.o6))
covid.out.o7 <- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params.o7))
covid.out.o8 <- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params.o8))
covid.out.o9 <- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params.o9))
covid.out.o10 <- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params.o10))
covid.out.o11<- as.data.frame(lsoda(ystart,times,SARSCOV2Model,covid.params.o11))
op10 <- par(mar=c(6,6,2,2))
plot(covid.out.o6$V~covid.out.o6$time,type="l", col="blue", xlab="Days", ylab = "Virus in Environment")
lines(covid.out.o7$V~covid.out.o7$time, type="l", col="red")
lines(covid.out.o8$V~covid.out.o8$time, type="l", col="purple")
lines(covid.out.o9$V~covid.out.o9$time, type="l", col="green")
lines(covid.out.o10$V~covid.out.o10$time, type="l", col="orange")
lines(covid.out.o11$V~covid.out.o11$time, type="l", col="darkturquoise")
legend(40, 1000,legend = c("omega=0.75","omega=0.80","omega=0.85","omega=0.90","omega=0.95", "omega=1"), col = c("blue", "red", "purple", "green", "orange", "darkturquoise"), lty=1, cex=0.8)
par(op10)

Results of second plot
# first dataframe lists highest values
# second dataframe lists lowest values
# third dataframe lists ending values
results.o4 <- data.frame(
S.h = c(max(covid.out.o6[ ,2]), max(covid.out.o7[ ,2]), max(covid.out.o8[ ,2]), max(covid.out.o9[ ,2]), max(covid.out.o10[ ,2]), max(covid.out.o11[ ,2])),
E.h = c(max(covid.out.o6[ ,3]), max(covid.out.o7[ ,3]), max(covid.out.o8[ ,3]), max(covid.out.o9[ ,3]), max(covid.out.o10[ ,3]), max(covid.out.o11[ ,3])),
I.h = c(max(covid.out.o6[ ,4]), max(covid.out.o7[ ,4]), max(covid.out.o8[ ,4]), max(covid.out.o9[ ,4]), max(covid.out.o10[ ,4]), max(covid.out.o11[ ,4])),
S.l = c(max(covid.out.o6[ ,5]), max(covid.out.o7[ ,5]), max(covid.out.o8[ ,5]), max(covid.out.o9[ ,5]), max(covid.out.o10[ ,5]), max(covid.out.o11[ ,5])),
E.l = c(max(covid.out.o6[ ,6]), max(covid.out.o7[ ,6]), max(covid.out.o8[ ,6]), max(covid.out.o9[ ,6]), max(covid.out.o10[ ,6]), max(covid.out.o11[ ,6])),
I.l = c(max(covid.out.o6[ ,7]), max(covid.out.o7[ ,7]), max(covid.out.o8[ ,7]), max(covid.out.o9[ ,7]), max(covid.out.o10[ ,7]), max(covid.out.o11[ ,7])),
Q = c(max(covid.out.o6[ ,8]), max(covid.out.o7[ ,8]), max(covid.out.o8[ ,8]), max(covid.out.o9[ ,8]), max(covid.out.o10[ ,8]), max(covid.out.o11[ ,8])),
R = c(max(covid.out.o6[ ,9]), max(covid.out.o7[ ,9]), max(covid.out.o8[ ,9]), max(covid.out.o9[ ,9]), max(covid.out.o10[ ,9]), max(covid.out.o11[ ,9])),
V = c(max(covid.out.o6[ ,10]), max(covid.out.o7[ ,10]), max(covid.out.o8[ ,10]), max(covid.out.o9[ ,10]), max(covid.out.o10[ ,10]), max(covid.out.o11[ ,10]))
)
results.o5 <- data.frame(
S.h = c(min(covid.out.o6[ ,2]), min(covid.out.o7[ ,2]), min(covid.out.o8[ ,2]), min(covid.out.o9[ ,2]), min(covid.out.o10[ ,2]), min(covid.out.o11[ ,2])),
E.h = c(min(covid.out.o6[ ,3]), min(covid.out.o7[ ,3]), min(covid.out.o8[ ,3]), min(covid.out.o9[ ,3]), min(covid.out.o10[ ,3]), min(covid.out.o11[ ,3])),
I.h = c(min(covid.out.o6[ ,4]), min(covid.out.o7[ ,4]), min(covid.out.o8[ ,4]), min(covid.out.o9[ ,4]), min(covid.out.o10[ ,4]), min(covid.out.o11[ ,4])),
S.l = c(min(covid.out.o6[ ,5]), min(covid.out.o7[ ,5]), min(covid.out.o8[ ,5]), min(covid.out.o9[ ,5]), min(covid.out.o10[ ,5]), min(covid.out.o11[ ,5])),
E.l = c(min(covid.out.o6[ ,6]), min(covid.out.o7[ ,6]), min(covid.out.o8[ ,6]), min(covid.out.o9[ ,6]), min(covid.out.o10[ ,6]), min(covid.out.o11[ ,6])),
I.l = c(min(covid.out.o6[ ,7]), min(covid.out.o7[ ,7]), min(covid.out.o8[ ,7]), min(covid.out.o9[ ,7]), min(covid.out.o10[ ,7]), min(covid.out.o11[ ,7])),
Q = c(min(covid.out.o6[ ,8]), min(covid.out.o7[ ,8]), min(covid.out.o8[ ,8]), min(covid.out.o9[ ,8]), min(covid.out.o10[ ,8]), min(covid.out.o11[ ,8])),
R = c(min(covid.out.o6[ ,9]), min(covid.out.o7[ ,9]), min(covid.out.o8[ ,9]), min(covid.out.o9[ ,9]), min(covid.out.o10[ ,9]), min(covid.out.o11[ ,9])),
V = c(min(covid.out.o6[ ,10]), min(covid.out.o7[ ,10]), min(covid.out.o8[ ,10]), min(covid.out.o9[ ,10]), min(covid.out.o10[ ,10]), min(covid.out.o11[ ,10]))
)
results.o6 <- data.frame(
S.h = c(tail(covid.out.o6[ ,2],n=1), tail(covid.out.o2[ ,2],n=1), tail(covid.out.o3[ ,2],n=1), tail(covid.out.o9[ ,2],n=1), tail(covid.out.o5[ ,2],n=1), tail(covid.out.o5[ ,2],n=1)),
E.h = c(tail(covid.out.o6[ ,3],n=1), tail(covid.out.o2[ ,3],n=1), tail(covid.out.o3[ ,3],n=1), tail(covid.out.o9[ ,3],n=1), tail(covid.out.o5[ ,3],n=1), tail(covid.out.o5[ ,2],n=1)),
I.h = c(tail(covid.out.o6[ ,4],n=1), tail(covid.out.o2[ ,4],n=1), tail(covid.out.o3[ ,4],n=1), tail(covid.out.o9[ ,4],n=1), tail(covid.out.o5[ ,4],n=1), tail(covid.out.o5[ ,2],n=1)),
S.l = c(tail(covid.out.o6[ ,5],n=1), tail(covid.out.o2[ ,5],n=1), tail(covid.out.o3[ ,5],n=1), tail(covid.out.o9[ ,5],n=1), tail(covid.out.o5[ ,5],n=1), tail(covid.out.o5[ ,2],n=1)),
E.l = c(tail(covid.out.o6[ ,6],n=1), tail(covid.out.o2[ ,6],n=1), tail(covid.out.o3[ ,6],n=1), tail(covid.out.o9[ ,6],n=1), tail(covid.out.o5[ ,6],n=1), tail(covid.out.o5[ ,2],n=1)),
I.l = c(tail(covid.out.o6[ ,7],n=1), tail(covid.out.o2[ ,7],n=1), tail(covid.out.o3[ ,7],n=1), tail(covid.out.o9[ ,7],n=1), tail(covid.out.o5[ ,7],n=1), tail(covid.out.o5[ ,2],n=1)),
Q = c(tail(covid.out.o6[ ,8],n=1), tail(covid.out.o2[ ,8],n=1), tail(covid.out.o3[ ,8],n=1), tail(covid.out.o9[ ,8],n=1), tail(covid.out.o5[ ,8],n=1), tail(covid.out.o5[ ,2],n=1)),
R = c(tail(covid.out.o6[ ,9],n=1), tail(covid.out.o2[ ,9],n=1), tail(covid.out.o3[ ,9],n=1), tail(covid.out.o9[ ,9],n=1), tail(covid.out.o5[ ,9],n=1), tail(covid.out.o5[ ,2],n=1)),
V = c(tail(covid.out.o6[ ,10],n=1), tail(covid.out.o2[ ,10],n=1), tail(covid.out.o3[ ,10],n=1), tail(covid.out.o9[ ,10],n=1), tail(covid.out.o5[ ,10],n=1), tail(covid.out.o5[ ,2],n=1))
)
`.rowNamesDF<-`(results.o4,make.names=FALSE,c('omega = 0.75','omega = 0.80','omega = 0.85','omega = 0.90','omega = 0.95','omega = 1'))
`.rowNamesDF<-`(results.o5,make.names=FALSE,c('omega = 0.75','omega = 0.80','omega = 0.85','omega = 0.90','omega = 0.95','omega = 1'))
`.rowNamesDF<-`(results.o6,make.names=FALSE,c('omega = 0.75','omega = 0.80','omega = 0.85','omega = 0.90','omega = 0.95','omega = 1'))
NA
LS0tDQp0aXRsZTogIlNBUi1Db1YtMiBNb2RlbCAob21lZ2EpIg0KYXV0aG9yOiBTaGVyaWRhbiBQYXluZQ0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCkNsZWFyaW5nIGVudmlyb25tZW50DQpgYGB7cn0NCnJtKGxpc3QgPSBscygpKQ0KYGBgDQoNCkxvYWRpbmcgbmVjZXNzYXJ5IHBhY2thZ2UNCmBgYHtyfQ0KcmVxdWlyZShkZVNvbHZlKQ0KYGBgDQoNClN5c3RlbSBvZiBERXMNCmBgYHtyfQ0KU0FSU0NPVjJNb2RlbCA8LSBmdW5jdGlvbiAodCwgeSwgcGFyYW1zKSB7DQogIA0KUy5oPC15WzFdICNjcmVhdGUgbG9jYWwgdmFyaWFibGUgUywgZmlyc3QgZWxlbWVudCBvZiB5DQpFLmg8LXlbMl0gDQpJLmg8LXlbM10NClMubDwteVs0XQ0KRS5sPC15WzVdDQpJLmw8LXlbNl0NClE8LXlbN10NClI8LXlbOF0NClY8LXlbOV0NCg0Kd2l0aCgNCiAgYXMubGlzdChwYXJhbXMsIHkpLA0KICB7DQpkUy5oPC0tcSpiZXRhKihJLmgrSS5sKSpTLmgvKFMuaCtFLmgrSS5oK1MubCtFLmwrSS5sK1ErUiktYyooMS1leHAoKC0xL0spKlYpKSpTLmgNCmRFLmg8LXEqYmV0YSooSS5oK0kubCkqUy5oLyhTLmgrRS5oK0kuaCtTLmwrRS5sK0kubCtRK1IpK2MqKDEtZXhwKCgtMS9LKSpWKSkqUy5oLWxhbWJkYSpFLmgNCmRJLmg8LWxhbWJkYSpFLmgtYipnKkkuaC1hSCpoKigxLWcpKkkuaC1nYW1tYWgqKDEtaCkqKDEtZykqSS5oDQpkUy5sPC0tKDEtcCkqcSpiZXRhKihJLmgrSS5sKSpTLmwvKFMuaCtFLmgrSS5oK1MubCtFLmwrSS5sK1ErUiktKDEtcCkqYyooMS1leHAoKC0xL0spKlYpKSpTLmwNCmRFLmw8LSgxLXApKnEqYmV0YSooSS5oK0kubCkvKFMuaCtFLmgrSS5oK1MubCtFLmwrSS5sK1ErUikrKDEtcCkqYyooMS1leHAoKC0xL0spKlYpKSpTLmwtbGFtYmRhKkUubA0KZEkubDwtbGFtYmRhKkUubC1iKkkubA0KZFE8LWIqSS5sK2cqYipJLmgtYVEqaCpRLWdhbW1hUSooMS1oKSpRDQpkUjwtZ2FtbWFoKigxLWgpKigxLWcpKkkuaCtnYW1tYVEqKDEtaCkqUQ0KZFY8LW9tZWdhKkkuaCsoMS1wKSpvbWVnYSpJLmwtZGVsdGEqVg0KICBkeTwtYyhkUy5oLGRFLmgsZEkuaCxkUy5sLGRFLmwsZEkubCxkUSxkUixkVikgI2NvbWJpbmUgcmVzdWx0cyBpbnRvIG9uZSB2ZWN0b3IgZHkNCmxpc3QoZHkpDQogIH0NCikNCn0NCmBgYA0KDQpJbml0aWFsIFZhbHVlcw0KYGBge3J9DQp0aW1lczwtc2VxKDAsMTgwLGJ5PTEpIA0KY292aWQucGFyYW1zPC1jKHE9MC4yLGJldGE9MTMscD0uMixjPTAsbGFtYmRhPTEvNC40MyxiPTEvMC43NyxnPTAsZ2FtbWFRPTAuMSxnYW1tYWg9MS8yLjcsYVE9MS8xLjkzLGFIPTEvMi43LGg9MC4wMDA4MixvbWVnYT0wLGRlbHRhPTEsSz0xMDAwMCkNCnlzdGFydDwtYyhTLmg9KC4yKSoxMDAwMDAsRS5oPTAsSS5oPTEsUy5sPSgxLTAuMikqMTAwMDAwLEUubD0wLEkubD0wLFE9MCxSPTAsVj0wKQ0KY292aWQub3V0IDwtIGFzLmRhdGEuZnJhbWUobHNvZGEoeXN0YXJ0LHRpbWVzLFNBUlNDT1YyTW9kZWwsY292aWQucGFyYW1zKSkNCmBgYA0KDQpDaGFuZ2luZyBvbWVnYSB0byAwLCAwLjI1LCAwLjUsIDAuNzUsICYgMQ0KYGBge3J9DQpjb3ZpZC5wYXJhbXMubzEgPC0gYyhxPTAuNSxiZXRhPTEzLHA9LjIsYz0wLGxhbWJkYT0xLzQuNDMsYj0xLzAuNzcsZz0wLGdhbW1hUT0wLjEsZ2FtbWFoPTEvMi43LGFRPTEvMS45MyxhSD0xLzIuNyxoPTAuMDAwODIsb21lZ2E9MCxkZWx0YT0wLjUsSz0xMDAwMDAwKQ0KY292aWQucGFyYW1zLm8yIDwtIGMocT0wLjUsYmV0YT0xMyxwPS4yLGM9MCxsYW1iZGE9MS80LjQzLGI9MS8wLjc3LGc9MCxnYW1tYVE9MC4xLGdhbW1haD0xLzIuNyxhUT0xLzEuOTMsYUg9MS8yLjcsaD0wLjAwMDgyLG9tZWdhPTAuMjUsZGVsdGE9MSxLPTEwMDAwMDApDQpjb3ZpZC5wYXJhbXMubzMgPC0gYyhxPTAuNSxiZXRhPTEzLHA9LjIsYz0wLGxhbWJkYT0xLzQuNDMsYj0xLzAuNzcsZz0wLGdhbW1hUT0wLjEsZ2FtbWFoPTEvMi43LGFRPTEvMS45MyxhSD0xLzIuNyxoPTAuMDAwODIsb21lZ2E9MC41LGRlbHRhPTEuNSxLPTEwMDAwMDApDQpjb3ZpZC5wYXJhbXMubzQgPC0gYyhxPTAuNSxiZXRhPTEzLHA9LjIsYz0wLGxhbWJkYT0xLzQuNDMsYj0xLzAuNzcsZz0wLGdhbW1hUT0wLjEsZ2FtbWFoPTEvMi43LGFRPTEvMS45MyxhSD0xLzIuNyxoPTAuMDAwODIsb21lZ2E9MC43NSxkZWx0YT0yLEs9MTAwMDAwMCkNCmNvdmlkLnBhcmFtcy5vNSA8LSBjKHE9MC41LGJldGE9MTMscD0uMixjPTAsbGFtYmRhPTEvNC40MyxiPTEvMC43NyxnPTAsZ2FtbWFRPTAuMSxnYW1tYWg9MS8yLjcsYVE9MS8xLjkzLGFIPTEvMi43LGg9MC4wMDA4MixvbWVnYT0xLGRlbHRhPTIsSz0xMDAwMDAwKQ0KYGBgDQoNCkNyZWF0aW5nIGRhdGEgZnJhbWUgZm9yIGVhY2ggdmFsdWUgb2Ygb21lZ2ENCmBgYHtyfQ0KY292aWQub3V0Lm8xIDwtIGFzLmRhdGEuZnJhbWUobHNvZGEoeXN0YXJ0LHRpbWVzLFNBUlNDT1YyTW9kZWwsY292aWQucGFyYW1zLm8xKSkNCmNvdmlkLm91dC5vMiA8LSBhcy5kYXRhLmZyYW1lKGxzb2RhKHlzdGFydCx0aW1lcyxTQVJTQ09WMk1vZGVsLGNvdmlkLnBhcmFtcy5vMikpDQpjb3ZpZC5vdXQubzMgPC0gYXMuZGF0YS5mcmFtZShsc29kYSh5c3RhcnQsdGltZXMsU0FSU0NPVjJNb2RlbCxjb3ZpZC5wYXJhbXMubzMpKQ0KY292aWQub3V0Lm80IDwtIGFzLmRhdGEuZnJhbWUobHNvZGEoeXN0YXJ0LHRpbWVzLFNBUlNDT1YyTW9kZWwsY292aWQucGFyYW1zLm80KSkNCmNvdmlkLm91dC5vNSA8LSBhcy5kYXRhLmZyYW1lKGxzb2RhKHlzdGFydCx0aW1lcyxTQVJTQ09WMk1vZGVsLGNvdmlkLnBhcmFtcy5vNSkpDQpgYGANCg0KUGxvdHRpbmcgYWxsIGNsYXNzZXMNCmBgYHtyfQ0KIyMgU1VTQ0VQVElCTEUgIyMNCm9wMSA8LSBwYXIoZmlnPWMoMCwwLjUsMCwxKSwgbWFyPWMoNCw0LDEsMSkpDQpwbG90KGNvdmlkLm91dC5vMSRTLmh+Y292aWQub3V0Lm8xJHRpbWUsdHlwZT0ibCIsIGNvbD0iYmx1ZSIsIHhsYWI9IkRheXMiLCB5bGFiID0gIlN1c2NlcHRpYmxlcyAoSGlnaCkiLCB5bGltPWMoMCwyMDAwMCkpDQpsaW5lcyhjb3ZpZC5vdXQubzIkUy5ofmNvdmlkLm91dC5vMiR0aW1lLCBjb2w9InJlZCIpDQpsaW5lcyhjb3ZpZC5vdXQubzMkUy5ofmNvdmlkLm91dC5vMyR0aW1lLCBjb2w9InB1cnBsZSIpDQpsaW5lcyhjb3ZpZC5vdXQubzQkUy5ofmNvdmlkLm91dC5vNCR0aW1lLCBjb2w9ImdyZWVuIikNCmxpbmVzKGNvdmlkLm91dC5vNSRTLmh+Y292aWQub3V0Lm81JHRpbWUsIGNvbD0ib3JhbmdlIikNCmxlZ2VuZCg3NSwgMTUwMDAsbGVnZW5kID0gYygib21lZ2E9MCIsIm9tZWdhPTAuMjUiLCJvbWVnYT0wLjUiLCJvbWVnYT0wLjc1Iiwib21lZ2E9MSIpLCBjb2wgPSBjKCJibHVlIiwgInJlZCIsICJwdXJwbGUiLCAiZ3JlZW4iLCAib3JhbmdlIiksIGx0eT0xLCBjZXg9MC44KQ0KDQpwYXIoZmlnPWMoMC41LDEsMCwxKSwgbWFyPWMoNCw0LDEsMSksIG5ldz1UKQ0KcGxvdChjb3ZpZC5vdXQubzEkUy5sfmNvdmlkLm91dC5vMSR0aW1lLHR5cGU9ImwiLCBjb2w9ImJsdWUiLCB4bGFiPSJEYXlzIiwgeWxhYiA9ICJTdXNjZXB0aWJsZXMgKExvdykiLCB5bGltPWMoMCw4MDAwMCkpDQpsaW5lcyhjb3ZpZC5vdXQubzIkUy5sfmNvdmlkLm91dC5vMiR0aW1lLCBjb2w9InJlZCIpDQpsaW5lcyhjb3ZpZC5vdXQubzMkUy5sfmNvdmlkLm91dC5vMyR0aW1lLCBjb2w9InB1cnBsZSIpDQpsaW5lcyhjb3ZpZC5vdXQubzQkUy5sfmNvdmlkLm91dC5vNCR0aW1lLCBjb2w9ImdyZWVuIikNCmxpbmVzKGNvdmlkLm91dC5vNSRTLmx+Y292aWQub3V0Lm81JHRpbWUsIGNvbD0ib3JhbmdlIikNCmxlZ2VuZCg3NSwgNjAwMDAsbGVnZW5kID0gYygib21lZ2E9MCIsIm9tZWdhPTAuMjUiLCJvbWVnYT0wLjUiLCJvbWVnYT0wLjc1Iiwib21lZ2E9MSIpLCBjb2wgPSBjKCJibHVlIiwgInJlZCIsICJwdXJwbGUiLCAiZ3JlZW4iLCAib3JhbmdlIiksIGx0eT0xLCBjZXg9MC44KQ0KcGFyKG9wMSkNCg0KIyMgRVhQT1NFRCAjIw0Kb3AyIDwtIHBhcihmaWc9YygwLDAuNSwwLDEpLCBtYXI9Yyg0LDQsMSwxKSkNCnBsb3QoY292aWQub3V0Lm8xJEUuaH5jb3ZpZC5vdXQubzEkdGltZSx0eXBlPSJsIiwgY29sPSJibHVlIiwgeGxhYj0iRGF5cyIsIHlsYWIgPSAiRXhwb3NlZCAoSGlnaCkiLCB5bGltPWMoMCw3MTAwKSkNCmxpbmVzKGNvdmlkLm91dC5vMiRFLmh+Y292aWQub3V0Lm8yJHRpbWUsIGNvbD0icmVkIikNCmxpbmVzKGNvdmlkLm91dC5vMyRFLmh+Y292aWQub3V0Lm8zJHRpbWUsIGNvbD0icHVycGxlIikNCmxpbmVzKGNvdmlkLm91dC5vNCRFLmh+Y292aWQub3V0Lm80JHRpbWUsIGNvbD0iZ3JlZW4iKQ0KbGluZXMoY292aWQub3V0Lm81JEUuaH5jb3ZpZC5vdXQubzUkdGltZSwgY29sPSJvcmFuZ2UiKQ0KbGVnZW5kKDc1LCA2MDAwLGxlZ2VuZCA9IGMoIm9tZWdhPTAiLCJvbWVnYT0wLjI1Iiwib21lZ2E9MC41Iiwib21lZ2E9MC43NSIsIm9tZWdhPTEiKSwgY29sID0gYygiYmx1ZSIsICJyZWQiLCAicHVycGxlIiwgImdyZWVuIiwgIm9yYW5nZSIpLCBsdHk9MSwgY2V4PTAuOCkNCg0KcGFyKGZpZz1jKDAuNSwxLDAsMSksIG1hcj1jKDQsNCwxLDEpLCBuZXc9VCkNCnBsb3QoY292aWQub3V0Lm8xJEUubH5jb3ZpZC5vdXQubzEkdGltZSx0eXBlPSJsIiwgY29sPSJibHVlIiwgeGxhYj0iRGF5cyIsIHlsYWIgPSAiRXhwb3NlZCAoTG93KSIsIHlsaW09YygwLDMpKQ0KbGluZXMoY292aWQub3V0Lm8yJEUubH5jb3ZpZC5vdXQubzIkdGltZSwgY29sPSJyZWQiKQ0KbGluZXMoY292aWQub3V0Lm8zJEUubH5jb3ZpZC5vdXQubzMkdGltZSwgY29sPSJwdXJwbGUiKQ0KbGluZXMoY292aWQub3V0Lm80JEUubH5jb3ZpZC5vdXQubzQkdGltZSwgY29sPSJncmVlbiIpDQpsaW5lcyhjb3ZpZC5vdXQubzUkRS5sfmNvdmlkLm91dC5vNSR0aW1lLCBjb2w9Im9yYW5nZSIpDQpsZWdlbmQoNzUsIDIuNSxsZWdlbmQgPSBjKCJvbWVnYT0wIiwib21lZ2E9MC4yNSIsIm9tZWdhPTAuNSIsIm9tZWdhPTAuNzUiLCJvbWVnYT0xIiksIGNvbCA9IGMoImJsdWUiLCAicmVkIiwgInB1cnBsZSIsICJncmVlbiIsICJvcmFuZ2UiKSwgbHR5PTEsIGNleD0wLjgpDQpwYXIob3AyKQ0KDQojIyBJTkZFQ1RFRCAjIw0Kb3AzIDwtIHBhcihmaWc9YygwLDAuNSwwLDEpLCBtYXI9Yyg0LDQsMSwxKSkNCnBsb3QoY292aWQub3V0Lm8xJEkuaH5jb3ZpZC5vdXQubzEkdGltZSx0eXBlPSJsIiwgY29sPSJibHVlIiwgeGxhYj0iRGF5cyIsIHlsYWIgPSAiSW5mZWN0ZWQgKEhpZ2gpIiwgeWxpbT1jKDAsNDAwMCkpDQpsaW5lcyhjb3ZpZC5vdXQubzIkSS5ofmNvdmlkLm91dC5vMiR0aW1lLCBjb2w9InJlZCIpDQpsaW5lcyhjb3ZpZC5vdXQubzMkSS5ofmNvdmlkLm91dC5vMyR0aW1lLCBjb2w9InB1cnBsZSIpDQpsaW5lcyhjb3ZpZC5vdXQubzQkSS5ofmNvdmlkLm91dC5vNCR0aW1lLCBjb2w9ImdyZWVuIikNCmxpbmVzKGNvdmlkLm91dC5vNSRJLmh+Y292aWQub3V0Lm81JHRpbWUsIGNvbD0ib3JhbmdlIikNCmxlZ2VuZCg3NSwzMDAwLGxlZ2VuZCA9IGMoIm9tZWdhPTAiLCJvbWVnYT0wLjI1Iiwib21lZ2E9MC41Iiwib21lZ2E9MC43NSIsIm9tZWdhPTEiKSwgY29sID0gYygiYmx1ZSIsICJyZWQiLCAicHVycGxlIiwgImdyZWVuIiwgIm9yYW5nZSIpLCBsdHk9MSwgY2V4PTAuOCkNCg0KcGFyKGZpZz1jKDAuNSwxLDAsMSksIG1hcj1jKDQsNCwxLDEpLCBuZXc9VCkNCnBsb3QoY292aWQub3V0Lm8xJEkubH5jb3ZpZC5vdXQubzEkdGltZSx0eXBlPSJsIiwgY29sPSJibHVlIiwgeGxhYj0iRGF5cyIsIHlsYWIgPSAiSW5mZWN0ZWQgKExvdykiLCB5bGltPWMoMCwxKSkNCmxpbmVzKGNvdmlkLm91dC5vMiRJLmx+Y292aWQub3V0Lm8yJHRpbWUsIGNvbD0icmVkIikNCmxpbmVzKGNvdmlkLm91dC5vMyRJLmx+Y292aWQub3V0Lm8zJHRpbWUsIGNvbD0icHVycGxlIikNCmxpbmVzKGNvdmlkLm91dC5vNCRJLmx+Y292aWQub3V0Lm80JHRpbWUsIGNvbD0iZ3JlZW4iKQ0KbGluZXMoY292aWQub3V0Lm81JEkubH5jb3ZpZC5vdXQubzUkdGltZSwgY29sPSJvcmFuZ2UiKQ0KbGVnZW5kKDc1LCAwLjgsbGVnZW5kID0gYygib21lZ2E9MCIsIm9tZWdhPTAuMjUiLCJvbWVnYT0wLjUiLCJvbWVnYT0wLjc1Iiwib21lZ2E9MSIpLCBjb2wgPSBjKCJibHVlIiwgInJlZCIsICJwdXJwbGUiLCAiZ3JlZW4iLCAib3JhbmdlIiksIGx0eT0xLCBjZXg9MC44KQ0KcGFyKG9wMykNCg0KIyMgU0VMRi1JU09MQVRJTkcgIyMNCm9wNCA8LSBwYXIobWFyPWMoNiw2LDIsMikpDQpwbG90KGNvdmlkLm91dC5vMSRRfmNvdmlkLm91dC5vMSR0aW1lLHR5cGU9ImwiLCBjb2w9ImJsdWUiLCB4bGFiPSJEYXlzIiwgeWxhYiA9ICJTZWxmLUlzb2xhdGluZyIsIHlsaW09YygwLDQpKQ0KbGluZXMoY292aWQub3V0Lm8yJFF+Y292aWQub3V0Lm8yJHRpbWUsIGNvbD0icmVkIikNCmxpbmVzKGNvdmlkLm91dC5vMyRRfmNvdmlkLm91dC5vMyR0aW1lLCBjb2w9InB1cnBsZSIpDQpsaW5lcyhjb3ZpZC5vdXQubzQkUX5jb3ZpZC5vdXQubzQkdGltZSwgY29sPSJncmVlbiIpDQpsaW5lcyhjb3ZpZC5vdXQubzUkUX5jb3ZpZC5vdXQubzUkdGltZSwgY29sPSJvcmFuZ2UiKQ0KbGVnZW5kKDEwMCwgMyxsZWdlbmQgPSBjKCJvbWVnYT0wIiwib21lZ2E9MC4yNSIsIm9tZWdhPTAuNSIsIm9tZWdhPTAuNzUiLCJvbWVnYT0xIiksIGNvbCA9IGMoImJsdWUiLCAicmVkIiwgInB1cnBsZSIsICJncmVlbiIsICJvcmFuZ2UiKSwgbHR5PTEsIGNleD0wLjgpDQpwYXIob3A0KQ0KDQojIyBSRUNPVkVSRUQgIyMNCm9wNSA8LSBwYXIobWFyPWMoNiw2LDIsMikpDQpwbG90KGNvdmlkLm91dC5vMSRSfmNvdmlkLm91dC5vMSR0aW1lLHR5cGU9ImwiLCBjb2w9ImJsdWUiLCB4bGFiPSJEYXlzIiwgeWxhYiA9ICJSZWNvdmVyZWQiLCB5bGltPWMoMCwyMDAwMCkpDQpsaW5lcyhjb3ZpZC5vdXQubzIkUn5jb3ZpZC5vdXQubzIkdGltZSwgY29sPSJyZWQiKQ0KbGluZXMoY292aWQub3V0Lm8zJFJ+Y292aWQub3V0Lm8zJHRpbWUsIGNvbD0icHVycGxlIikNCmxpbmVzKGNvdmlkLm91dC5vNCRSfmNvdmlkLm91dC5vNCR0aW1lLCBjb2w9ImdyZWVuIikNCmxpbmVzKGNvdmlkLm91dC5vNSRSfmNvdmlkLm91dC5vNSR0aW1lLCBjb2w9Im9yYW5nZSIpDQpsZWdlbmQoMTAwLCAxNTAwMCxsZWdlbmQgPSBjKCJvbWVnYT0wIiwib21lZ2E9MC4yNSIsIm9tZWdhPTAuNSIsIm9tZWdhPTAuNzUiLCJvbWVnYT0xIiksIGNvbCA9IGMoImJsdWUiLCAicmVkIiwgInB1cnBsZSIsICJncmVlbiIsICJvcmFuZ2UiKSwgbHR5PTEsIGNleD0wLjgpDQpwYXIob3A1KQ0KDQojIyBWSVJVUyBJTiBFTlZJUk9OTUVOVCAjIw0Kb3A2IDwtIHBhcihtYXI9Yyg2LDYsMiwyKSkNCnBsb3QoY292aWQub3V0Lm8xJFZ+Y292aWQub3V0Lm8xJHRpbWUsdHlwZT0ibCIsIGNvbD0iYmx1ZSIsIHhsYWI9IkRheXMiLCB5bGFiID0gIlZpcnVzIGluIEVudmlyb25tZW50IiwgeWxpbT1jKDAsMjAwMCkpDQpsaW5lcyhjb3ZpZC5vdXQubzIkVn5jb3ZpZC5vdXQubzIkdGltZSwgdHlwZT0ibCIsIGNvbD0icmVkIikNCmxpbmVzKGNvdmlkLm91dC5vMyRWfmNvdmlkLm91dC5vMyR0aW1lLCB0eXBlPSJsIiwgY29sPSJwdXJwbGUiKQ0KbGluZXMoY292aWQub3V0Lm80JFZ+Y292aWQub3V0Lm80JHRpbWUsIHR5cGU9ImwiLCBjb2w9ImdyZWVuIikNCmxpbmVzKGNvdmlkLm91dC5vNSRWfmNvdmlkLm91dC5vNSR0aW1lLCB0eXBlPSJsIiwgY29sPSJvcmFuZ2UiKQ0KbGVnZW5kKDEwMCwgMTc1MCxsZWdlbmQgPSBjKCJvbWVnYT0wIiwib21lZ2E9MC4yNSIsIm9tZWdhPTAuNSIsIm9tZWdhPTAuNzUiLCJvbWVnYT0xIiksIGNvbCA9IGMoImJsdWUiLCAicmVkIiwgInB1cnBsZSIsICJncmVlbiIsICJvcmFuZ2UiKSwgbHR5PTEsIGNleD0wLjgpDQpwYXIob3A2KQ0KYGBgDQoNClJlc3VsdHMgb2YgcGxvdA0KYGBge3J9DQojIGZpcnN0IGRhdGFmcmFtZSBsaXN0cyBoaWdoZXN0IHZhbHVlcw0KIyBzZWNvbmQgZGF0YWZyYW1lIGxpc3RzIGxvd2VzdCB2YWx1ZXMNCiMgdGhpcmQgZGF0YWZyYW1lIGxpc3RzIGVuZGluZyB2YWx1ZXMNCg0KcmVzdWx0cy5vMSA8LSBkYXRhLmZyYW1lKA0KICBTLmggPSBjKG1heChjb3ZpZC5vdXQubzFbICwyXSksIG1heChjb3ZpZC5vdXQubzJbICwyXSksIG1heChjb3ZpZC5vdXQubzNbICwyXSksIG1heChjb3ZpZC5vdXQubzRbICwyXSksIG1heChjb3ZpZC5vdXQubzVbICwyXSkpLA0KICBFLmggPSBjKG1heChjb3ZpZC5vdXQubzFbICwzXSksIG1heChjb3ZpZC5vdXQubzJbICwzXSksIG1heChjb3ZpZC5vdXQubzNbICwzXSksIG1heChjb3ZpZC5vdXQubzRbICwzXSksIG1heChjb3ZpZC5vdXQubzVbICwzXSkpLA0KICBJLmggPSBjKG1heChjb3ZpZC5vdXQubzFbICw0XSksIG1heChjb3ZpZC5vdXQubzJbICw0XSksIG1heChjb3ZpZC5vdXQubzNbICw0XSksIG1heChjb3ZpZC5vdXQubzRbICw0XSksIG1heChjb3ZpZC5vdXQubzVbICw0XSkpLA0KICBTLmwgPSBjKG1heChjb3ZpZC5vdXQubzFbICw1XSksIG1heChjb3ZpZC5vdXQubzJbICw1XSksIG1heChjb3ZpZC5vdXQubzNbICw1XSksIG1heChjb3ZpZC5vdXQubzRbICw1XSksIG1heChjb3ZpZC5vdXQubzVbICw1XSkpLA0KICBFLmwgPSBjKG1heChjb3ZpZC5vdXQubzFbICw2XSksIG1heChjb3ZpZC5vdXQubzJbICw2XSksIG1heChjb3ZpZC5vdXQubzNbICw2XSksIG1heChjb3ZpZC5vdXQubzRbICw2XSksIG1heChjb3ZpZC5vdXQubzVbICw2XSkpLA0KICBJLmwgPSBjKG1heChjb3ZpZC5vdXQubzFbICw3XSksIG1heChjb3ZpZC5vdXQubzJbICw3XSksIG1heChjb3ZpZC5vdXQubzNbICw3XSksIG1heChjb3ZpZC5vdXQubzRbICw3XSksIG1heChjb3ZpZC5vdXQubzVbICw3XSkpLA0KICBRID0gYyhtYXgoY292aWQub3V0Lm8xWyAsOF0pLCBtYXgoY292aWQub3V0Lm8yWyAsOF0pLCBtYXgoY292aWQub3V0Lm8zWyAsOF0pLCBtYXgoY292aWQub3V0Lm80WyAsOF0pLCBtYXgoY292aWQub3V0Lm81WyAsOF0pKSwNCiAgUiA9IGMobWF4KGNvdmlkLm91dC5vMVsgLDldKSwgbWF4KGNvdmlkLm91dC5vMlsgLDldKSwgbWF4KGNvdmlkLm91dC5vM1sgLDldKSwgbWF4KGNvdmlkLm91dC5vNFsgLDldKSwgbWF4KGNvdmlkLm91dC5vNVsgLDldKSksDQogIFYgPSBjKG1heChjb3ZpZC5vdXQubzFbICwxMF0pLCBtYXgoY292aWQub3V0Lm8yWyAsMTBdKSwgbWF4KGNvdmlkLm91dC5vM1sgLDEwXSksIG1heChjb3ZpZC5vdXQubzRbICwxMF0pLCBtYXgoY292aWQub3V0Lm81WyAsMTBdKSkNCikNCnJlc3VsdHMubzIgPC0gZGF0YS5mcmFtZSgNCiAgUy5oID0gYyhtaW4oY292aWQub3V0Lm8xWyAsMl0pLCBtaW4oY292aWQub3V0Lm8yWyAsMl0pLCBtaW4oY292aWQub3V0Lm8zWyAsMl0pLCBtaW4oY292aWQub3V0Lm80WyAsMl0pLCBtaW4oY292aWQub3V0Lm81WyAsMl0pKSwNCiAgRS5oID0gYyhtaW4oY292aWQub3V0Lm8xWyAsM10pLCBtaW4oY292aWQub3V0Lm8yWyAsM10pLCBtaW4oY292aWQub3V0Lm8zWyAsM10pLCBtaW4oY292aWQub3V0Lm80WyAsM10pLCBtaW4oY292aWQub3V0Lm81WyAsM10pKSwNCiAgSS5oID0gYyhtaW4oY292aWQub3V0Lm8xWyAsNF0pLCBtaW4oY292aWQub3V0Lm8yWyAsNF0pLCBtaW4oY292aWQub3V0Lm8zWyAsNF0pLCBtaW4oY292aWQub3V0Lm80WyAsNF0pLCBtaW4oY292aWQub3V0Lm81WyAsNF0pKSwNCiAgUy5sID0gYyhtaW4oY292aWQub3V0Lm8xWyAsNV0pLCBtaW4oY292aWQub3V0Lm8yWyAsNV0pLCBtaW4oY292aWQub3V0Lm8zWyAsNV0pLCBtaW4oY292aWQub3V0Lm80WyAsNV0pLCBtaW4oY292aWQub3V0Lm81WyAsNV0pKSwNCiAgRS5sID0gYyhtaW4oY292aWQub3V0Lm8xWyAsNl0pLCBtaW4oY292aWQub3V0Lm8yWyAsNl0pLCBtaW4oY292aWQub3V0Lm8zWyAsNl0pLCBtaW4oY292aWQub3V0Lm80WyAsNl0pLCBtaW4oY292aWQub3V0Lm81WyAsNl0pKSwNCiAgSS5sID0gYyhtaW4oY292aWQub3V0Lm8xWyAsN10pLCBtaW4oY292aWQub3V0Lm8yWyAsN10pLCBtaW4oY292aWQub3V0Lm8zWyAsN10pLCBtaW4oY292aWQub3V0Lm80WyAsN10pLCBtaW4oY292aWQub3V0Lm81WyAsN10pKSwNCiAgUSA9IGMobWluKGNvdmlkLm91dC5vMVsgLDhdKSwgbWluKGNvdmlkLm91dC5vMlsgLDhdKSwgbWluKGNvdmlkLm91dC5vM1sgLDhdKSwgbWluKGNvdmlkLm91dC5vNFsgLDhdKSwgbWluKGNvdmlkLm91dC5vNVsgLDhdKSksDQogIFIgPSBjKG1pbihjb3ZpZC5vdXQubzFbICw5XSksIG1pbihjb3ZpZC5vdXQubzJbICw5XSksIG1pbihjb3ZpZC5vdXQubzNbICw5XSksIG1pbihjb3ZpZC5vdXQubzRbICw5XSksIG1pbihjb3ZpZC5vdXQubzVbICw5XSkpLA0KICBWID0gYyhtaW4oY292aWQub3V0Lm8xWyAsMTBdKSwgbWluKGNvdmlkLm91dC5vMlsgLDEwXSksIG1pbihjb3ZpZC5vdXQubzNbICwxMF0pLCBtaW4oY292aWQub3V0Lm80WyAsMTBdKSwgbWluKGNvdmlkLm91dC5vNVsgLDEwXSkpDQopDQoNCnJlc3VsdHMubzMgPC0gZGF0YS5mcmFtZSgNCiAgUy5oID0gYyh0YWlsKGNvdmlkLm91dC5vMVsgLDJdLG49MSksIHRhaWwoY292aWQub3V0Lm8yWyAsMl0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzNbICwyXSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vNFsgLDJdLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsMl0sbj0xKSksIA0KICBFLmggPSBjKHRhaWwoY292aWQub3V0Lm8xWyAsM10sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzJbICwzXSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vM1sgLDNdLG49MSksIHRhaWwoY292aWQub3V0Lm80WyAsM10sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzVbICwzXSxuPTEpKSwNCiAgSS5oID0gYyh0YWlsKGNvdmlkLm91dC5vMVsgLDRdLG49MSksIHRhaWwoY292aWQub3V0Lm8yWyAsNF0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzNbICw0XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vNFsgLDRdLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsNF0sbj0xKSksDQogIFMubCA9IGModGFpbChjb3ZpZC5vdXQubzFbICw1XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vMlsgLDVdLG49MSksIHRhaWwoY292aWQub3V0Lm8zWyAsNV0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzRbICw1XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vNVsgLDVdLG49MSkpLA0KICBFLmwgPSBjKHRhaWwoY292aWQub3V0Lm8xWyAsNl0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzJbICw2XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vM1sgLDZdLG49MSksIHRhaWwoY292aWQub3V0Lm80WyAsNl0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzVbICw2XSxuPTEpKSwgDQogIEkubCA9IGModGFpbChjb3ZpZC5vdXQubzFbICw3XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vMlsgLDddLG49MSksIHRhaWwoY292aWQub3V0Lm8zWyAsN10sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzRbICw3XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vNVsgLDddLG49MSkpLA0KICBRID0gYyh0YWlsKGNvdmlkLm91dC5vMVsgLDhdLG49MSksIHRhaWwoY292aWQub3V0Lm8yWyAsOF0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzNbICw4XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vNFsgLDhdLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsOF0sbj0xKSksDQogIFIgPSBjKHRhaWwoY292aWQub3V0Lm8xWyAsOV0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzJbICw5XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vM1sgLDldLG49MSksIHRhaWwoY292aWQub3V0Lm80WyAsOV0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzVbICw5XSxuPTEpKSwNCiAgViA9IGModGFpbChjb3ZpZC5vdXQubzFbICwxMF0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzJbICwxMF0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzNbICwxMF0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzRbICwxMF0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzVbICwxMF0sbj0xKSkNCikNCg0KYC5yb3dOYW1lc0RGPC1gKHJlc3VsdHMubzEsbWFrZS5uYW1lcz1GQUxTRSxjKCdvbWVnYSA9IDAnLCdvbWVnYSA9IDAuMjUnLCdvbWVnYSA9IDAuNScsJ29tZWdhID0gMC43NScsJ29tZWdhID0gMScpKQ0KYC5yb3dOYW1lc0RGPC1gKHJlc3VsdHMubzIsbWFrZS5uYW1lcz1GQUxTRSxjKCdvbWVnYSA9IDAnLCdvbWVnYSA9IDAuMjUnLCdvbWVnYSA9IDAuNScsJ29tZWdhID0gMC43NScsJ29tZWdhID0gMScpKQ0KYC5yb3dOYW1lc0RGPC1gKHJlc3VsdHMubzMsbWFrZS5uYW1lcz1GQUxTRSxjKCdvbWVnYSA9IDAnLCdvbWVnYSA9IDAuMjUnLCdvbWVnYSA9IDAuNScsJ29tZWdhID0gMC43NScsJ29tZWdhID0gMScpKQ0KDQpgYGANCg0KUGxvdHRpbmcgaGlnaGVzdCwgbG93ZXN0LCBhbmQgZW5kaW5nIHZhbHVlcyBvZiBjbGFzc2VzDQpgYGB7cn0NCiMjIEhJR0hFU1QgIyMNCm9wNyA8LSBwYXIobWFyPWMoNiw2LDIsMikpDQpwbG90KHJlc3VsdHMubzEkUy5oLHR5cGU9ImIiLCBjb2w9ImJsdWUiLCB4bGFiPSJxIHZhbHVlcyIsIHlsYWIgPSAiSW5kaXZpZHVhbHMiLCBtYWluPSJIaWdoZXN0IiwgeWxpbT1jKDAsODAwMDApKQ0KbGluZXMocmVzdWx0cy5vMSRFLmgsIHR5cGUgPSAiYiIsIGNvbD0icmVkIikNCmxpbmVzKHJlc3VsdHMubzEkSS5oLCB0eXBlID0gImIiLCBjb2w9ImdyZWVuIikNCmxpbmVzKHJlc3VsdHMubzEkUy5sLCB0eXBlID0gImIiLCBjb2w9InB1cnBsZSIpDQpsaW5lcyhyZXN1bHRzLm8xJEUubCwgdHlwZSA9ICJiIiwgY29sPSJvcmFuZ2UiKQ0KbGluZXMocmVzdWx0cy5vMSRJLmwsIHR5cGUgPSAiYiIsIGNvbD0iZm9yZXN0Z3JlZW4iKQ0KbGluZXMocmVzdWx0cy5vMSRRLCB0eXBlID0gImIiLCBjb2w9ImRhcmt0dXJxdW9pc2UiKQ0KbGluZXMocmVzdWx0cy5vMSRSLCB0eXBlID0gImIiLCBjb2w9InBpbmsyIikNCmxpbmVzKHJlc3VsdHMubzEkViwgdHlwZSA9ICJiIiwgY29sPSJ5ZWxsb3ciKQ0KDQpsZWdlbmQoMywgNzAwMDAsbGVnZW5kID0gYygiU3VzY2VwdGlibGVzIChIaWdoKSIsIkV4cG9zZWQgKEhpZ2gpIiwiSW5mZWN0ZWQgKEhpZ2gpIiwiU3VzY2VwdGlibGVzIChMb3cpIiwiRXhwb3NlZCAoTG93KSIsIkluZmVjdGVkIChMb3cpIiwgIlNlbGYtSXNvbGF0aW5nIiwiUmVjb3ZlcmVkIiwiVmlydXMiKSwgY29sID0gYygiYmx1ZSIsICJyZWQiLCAiZ3JlZW4iLCJwdXJwbGUiLCJvcmFuZ2UiLCJmb3Jlc3RncmVlbiIsImRhcmt0dXJxdW9pc2UiLCJwaW5rMiIsInllbGxvdyIpLCBsdHk9MSwgY2V4PTAuNikNCg0KcGFyKG9wNykNCg0KIyMgTE9XRVNUDQpvcDggPC0gcGFyKG1hcj1jKDYsNiwyLDIpKQ0KcGxvdChyZXN1bHRzLm8yJFMuaCx0eXBlPSJiIiwgY29sPSJibHVlIiwgbWFpbj0iTG93ZXN0IiwgeGxhYj0icSB2YWx1ZXMiLCB5bGFiID0gIkluZGl2aWR1YWxzIiwgeWxpbT1jKDAsODAwMDApKQ0KbGluZXMocmVzdWx0cy5vMiRFLmgsIHR5cGUgPSAiYiIsIGNvbD0icmVkIikNCmxpbmVzKHJlc3VsdHMubzIkSS5oLCB0eXBlID0gImIiLCBjb2w9ImdyZWVuIikNCmxpbmVzKHJlc3VsdHMubzIkUy5sLCB0eXBlID0gImIiLCBjb2w9InB1cnBsZSIpDQpsaW5lcyhyZXN1bHRzLm8yJEUubCwgdHlwZSA9ICJiIiwgY29sPSJvcmFuZ2UiKQ0KbGluZXMocmVzdWx0cy5vMiRJLmwsIHR5cGUgPSAiYiIsIGNvbD0iZm9yZXN0Z3JlZW4iKQ0KbGluZXMocmVzdWx0cy5vMiRRLCB0eXBlID0gImIiLCBjb2w9ImRhcmt0dXJxdW9pc2UiKQ0KbGluZXMocmVzdWx0cy5vMiRSLCB0eXBlID0gImIiLCBjb2w9InBpbmsyIikNCmxpbmVzKHJlc3VsdHMubzIkViwgdHlwZSA9ICJiIiwgY29sPSJ5ZWxsb3ciKQ0KDQpsZWdlbmQoMywgNzAwMDAsbGVnZW5kID0gYygiU3VzY2VwdGlibGVzIChIaWdoKSIsIkV4cG9zZWQgKEhpZ2gpIiwiSW5mZWN0ZWQgKEhpZ2gpIiwiU3VzY2VwdGlibGVzIChMb3cpIiwiRXhwb3NlZCAoTG93KSIsIkluZmVjdGVkIChMb3cpIiwgIlNlbGYtSXNvbGF0aW5nIiwiUmVjb3ZlcmVkIiwiVmlydXMiKSwgY29sID0gYygiYmx1ZSIsICJyZWQiLCAiZ3JlZW4iLCJwdXJwbGUiLCJvcmFuZ2UiLCJmb3Jlc3RncmVlbiIsImRhcmt0dXJxdW9pc2UiLCJwaW5rMiIsInllbGxvdyIpLCBsdHk9MSwgY2V4PTAuNikNCg0KcGFyKG9wOCkNCg0KIyMgRU5ESU5HICMjDQpvcDkgPC0gcGFyKG1hcj1jKDYsNiwyLDIpKQ0KcGxvdChyZXN1bHRzLm8zJFMuaCwgdHlwZT0iYiIsIGNvbD0iYmx1ZSIsIG1haW49IkVuZGluZyIsIHhsYWI9InEgdmFsdWVzIiwgeWxhYiA9ICJJbmRpdmlkdWFscyIsIHlsaW09YygwLDgwMDAwKSkNCmxpbmVzKHJlc3VsdHMubzMkRS5oLCB0eXBlID0gImIiLCBjb2w9InJlZCIpDQpsaW5lcyhyZXN1bHRzLm8zJEkuaCwgdHlwZSA9ICJiIiwgY29sPSJncmVlbiIpDQpsaW5lcyhyZXN1bHRzLm8zJFMubCwgdHlwZSA9ICJiIiwgY29sPSJwdXJwbGUiKQ0KbGluZXMocmVzdWx0cy5vMyRFLmwsIHR5cGUgPSAiYiIsIGNvbD0ib3JhbmdlIikNCmxpbmVzKHJlc3VsdHMubzMkSS5sLCB0eXBlID0gImIiLCBjb2w9ImZvcmVzdGdyZWVuIikNCmxpbmVzKHJlc3VsdHMubzMkUSwgdHlwZSA9ICJiIiwgY29sPSJkYXJrdHVycXVvaXNlIikNCmxpbmVzKHJlc3VsdHMubzMkUiwgdHlwZSA9ICJiIiwgY29sPSJwaW5rMiIpDQpsaW5lcyhyZXN1bHRzLm8zJFYsIHR5cGUgPSAiYiIsIGNvbD0ieWVsbG93IikNCg0KbGVnZW5kKDMsIDcwMDAwLGxlZ2VuZCA9IGMoIlN1c2NlcHRpYmxlcyAoSGlnaCkiLCJFeHBvc2VkIChIaWdoKSIsIkluZmVjdGVkIChIaWdoKSIsIlN1c2NlcHRpYmxlcyAoTG93KSIsIkV4cG9zZWQgKExvdykiLCJJbmZlY3RlZCAoTG93KSIsICJTZWxmLUlzb2xhdGluZyIsIlJlY292ZXJlZCIsIlZpcnVzIiksIGNvbCA9IGMoImJsdWUiLCAicmVkIiwgImdyZWVuIiwicHVycGxlIiwib3JhbmdlIiwiZm9yZXN0Z3JlZW4iLCJkYXJrdHVycXVvaXNlIiwicGluazIiLCJ5ZWxsb3ciKSwgbHR5PTEsIGNleD0wLjYpDQoNCnBhcihvcDkpDQpgYGANCg0KQ2hhbmdpbmcgb21lZ2EgdG8gMC43NSwgMC44MCwgMC44NSwgMC45MCwgMC45NSwgJiAxDQpgYGB7cn0NCmNvdmlkLnBhcmFtcy5vNiA8LSBjKHE9MC4yLGJldGE9MTMscD0uMixjPTAsbGFtYmRhPTEvNC40MyxiPTEvMC43NyxnPTAsZ2FtbWFRPTAuMSxnYW1tYWg9MS8yLjcsYVE9MS8xLjkzLGFIPTEvMi43LGg9MC4wMDA4MixvbWVnYT0wLjc1LGRlbHRhPTAuNSxLPTEwMDAwMDApDQpjb3ZpZC5wYXJhbXMubzcgPC0gYyhxPTAuMixiZXRhPTEzLHA9LjIsYz0wLGxhbWJkYT0xLzQuNDMsYj0xLzAuNzcsZz0wLGdhbW1hUT0wLjEsZ2FtbWFoPTEvMi43LGFRPTEvMS45MyxhSD0xLzIuNyxoPTAuMDAwODIsb21lZ2E9MC44MCxkZWx0YT0xLEs9MTAwMDAwMCkNCmNvdmlkLnBhcmFtcy5vOCA8LSBjKHE9MC4yLGJldGE9MTMscD0uMixjPTAsbGFtYmRhPTEvNC40MyxiPTEvMC43NyxnPTAsZ2FtbWFRPTAuMSxnYW1tYWg9MS8yLjcsYVE9MS8xLjkzLGFIPTEvMi43LGg9MC4wMDA4MixvbWVnYT0wLjg1LGRlbHRhPTEuNSxLPTEwMDAwMDApDQpjb3ZpZC5wYXJhbXMubzkgPC0gYyhxPTAuMixiZXRhPTEzLHA9LjIsYz0wLGxhbWJkYT0xLzQuNDMsYj0xLzAuNzcsZz0wLGdhbW1hUT0wLjEsZ2FtbWFoPTEvMi43LGFRPTEvMS45MyxhSD0xLzIuNyxoPTAuMDAwODIsb21lZ2E9MC45MCxkZWx0YT0yLEs9MTAwMDAwMCkNCmNvdmlkLnBhcmFtcy5vMTAgPC0gYyhxPTAuMixiZXRhPTEzLHA9LjIsYz0wLGxhbWJkYT0xLzQuNDMsYj0xLzAuNzcsZz0wLGdhbW1hUT0wLjEsZ2FtbWFoPTEvMi43LGFRPTEvMS45MyxhSD0xLzIuNyxoPTAuMDAwODIsb21lZ2E9MC45NSxkZWx0YT0yLEs9MTAwMDAwMCkNCmNvdmlkLnBhcmFtcy5vMTEgPC0gYyhxPTAuMixiZXRhPTEzLHA9LjIsYz0wLGxhbWJkYT0xLzQuNDMsYj0xLzAuNzcsZz0wLGdhbW1hUT0wLjEsZ2FtbWFoPTEvMi43LGFRPTEvMS45MyxhSD0xLzIuNyxoPTAuMDAwODIsb21lZ2E9MSxkZWx0YT0yLEs9MTAwMDAwMCkNCg0KY292aWQub3V0Lm82IDwtIGFzLmRhdGEuZnJhbWUobHNvZGEoeXN0YXJ0LHRpbWVzLFNBUlNDT1YyTW9kZWwsY292aWQucGFyYW1zLm82KSkNCmNvdmlkLm91dC5vNyA8LSBhcy5kYXRhLmZyYW1lKGxzb2RhKHlzdGFydCx0aW1lcyxTQVJTQ09WMk1vZGVsLGNvdmlkLnBhcmFtcy5vNykpDQpjb3ZpZC5vdXQubzggPC0gYXMuZGF0YS5mcmFtZShsc29kYSh5c3RhcnQsdGltZXMsU0FSU0NPVjJNb2RlbCxjb3ZpZC5wYXJhbXMubzgpKQ0KY292aWQub3V0Lm85IDwtIGFzLmRhdGEuZnJhbWUobHNvZGEoeXN0YXJ0LHRpbWVzLFNBUlNDT1YyTW9kZWwsY292aWQucGFyYW1zLm85KSkNCmNvdmlkLm91dC5vMTAgPC0gYXMuZGF0YS5mcmFtZShsc29kYSh5c3RhcnQsdGltZXMsU0FSU0NPVjJNb2RlbCxjb3ZpZC5wYXJhbXMubzEwKSkNCmNvdmlkLm91dC5vMTE8LSBhcy5kYXRhLmZyYW1lKGxzb2RhKHlzdGFydCx0aW1lcyxTQVJTQ09WMk1vZGVsLGNvdmlkLnBhcmFtcy5vMTEpKQ0KDQpvcDEwIDwtIHBhcihtYXI9Yyg2LDYsMiwyKSkNCnBsb3QoY292aWQub3V0Lm82JFZ+Y292aWQub3V0Lm82JHRpbWUsdHlwZT0ibCIsIGNvbD0iYmx1ZSIsIHhsYWI9IkRheXMiLCB5bGFiID0gIlZpcnVzIGluIEVudmlyb25tZW50IikNCmxpbmVzKGNvdmlkLm91dC5vNyRWfmNvdmlkLm91dC5vNyR0aW1lLCB0eXBlPSJsIiwgY29sPSJyZWQiKQ0KbGluZXMoY292aWQub3V0Lm84JFZ+Y292aWQub3V0Lm84JHRpbWUsIHR5cGU9ImwiLCBjb2w9InB1cnBsZSIpDQpsaW5lcyhjb3ZpZC5vdXQubzkkVn5jb3ZpZC5vdXQubzkkdGltZSwgdHlwZT0ibCIsIGNvbD0iZ3JlZW4iKQ0KbGluZXMoY292aWQub3V0Lm8xMCRWfmNvdmlkLm91dC5vMTAkdGltZSwgdHlwZT0ibCIsIGNvbD0ib3JhbmdlIikNCmxpbmVzKGNvdmlkLm91dC5vMTEkVn5jb3ZpZC5vdXQubzExJHRpbWUsIHR5cGU9ImwiLCBjb2w9ImRhcmt0dXJxdW9pc2UiKQ0KbGVnZW5kKDQwLCAxMDAwLGxlZ2VuZCA9IGMoIm9tZWdhPTAuNzUiLCJvbWVnYT0wLjgwIiwib21lZ2E9MC44NSIsIm9tZWdhPTAuOTAiLCJvbWVnYT0wLjk1IiwgIm9tZWdhPTEiKSwgY29sID0gYygiYmx1ZSIsICJyZWQiLCAicHVycGxlIiwgImdyZWVuIiwgIm9yYW5nZSIsICJkYXJrdHVycXVvaXNlIiksIGx0eT0xLCBjZXg9MC44KQ0KcGFyKG9wMTApDQpgYGANCg0KUmVzdWx0cyBvZiBzZWNvbmQgcGxvdA0KYGBge3J9DQojIGZpcnN0IGRhdGFmcmFtZSBsaXN0cyBoaWdoZXN0IHZhbHVlcw0KIyBzZWNvbmQgZGF0YWZyYW1lIGxpc3RzIGxvd2VzdCB2YWx1ZXMNCiMgdGhpcmQgZGF0YWZyYW1lIGxpc3RzIGVuZGluZyB2YWx1ZXMNCg0KcmVzdWx0cy5vNCA8LSBkYXRhLmZyYW1lKA0KICBTLmggPSBjKG1heChjb3ZpZC5vdXQubzZbICwyXSksIG1heChjb3ZpZC5vdXQubzdbICwyXSksIG1heChjb3ZpZC5vdXQubzhbICwyXSksIG1heChjb3ZpZC5vdXQubzlbICwyXSksIG1heChjb3ZpZC5vdXQubzEwWyAsMl0pLCBtYXgoY292aWQub3V0Lm8xMVsgLDJdKSksDQogIEUuaCA9IGMobWF4KGNvdmlkLm91dC5vNlsgLDNdKSwgbWF4KGNvdmlkLm91dC5vN1sgLDNdKSwgbWF4KGNvdmlkLm91dC5vOFsgLDNdKSwgbWF4KGNvdmlkLm91dC5vOVsgLDNdKSwgbWF4KGNvdmlkLm91dC5vMTBbICwzXSksIG1heChjb3ZpZC5vdXQubzExWyAsM10pKSwNCiAgSS5oID0gYyhtYXgoY292aWQub3V0Lm82WyAsNF0pLCBtYXgoY292aWQub3V0Lm83WyAsNF0pLCBtYXgoY292aWQub3V0Lm84WyAsNF0pLCBtYXgoY292aWQub3V0Lm85WyAsNF0pLCBtYXgoY292aWQub3V0Lm8xMFsgLDRdKSwgbWF4KGNvdmlkLm91dC5vMTFbICw0XSkpLA0KICBTLmwgPSBjKG1heChjb3ZpZC5vdXQubzZbICw1XSksIG1heChjb3ZpZC5vdXQubzdbICw1XSksIG1heChjb3ZpZC5vdXQubzhbICw1XSksIG1heChjb3ZpZC5vdXQubzlbICw1XSksIG1heChjb3ZpZC5vdXQubzEwWyAsNV0pLCBtYXgoY292aWQub3V0Lm8xMVsgLDVdKSksDQogIEUubCA9IGMobWF4KGNvdmlkLm91dC5vNlsgLDZdKSwgbWF4KGNvdmlkLm91dC5vN1sgLDZdKSwgbWF4KGNvdmlkLm91dC5vOFsgLDZdKSwgbWF4KGNvdmlkLm91dC5vOVsgLDZdKSwgbWF4KGNvdmlkLm91dC5vMTBbICw2XSksIG1heChjb3ZpZC5vdXQubzExWyAsNl0pKSwNCiAgSS5sID0gYyhtYXgoY292aWQub3V0Lm82WyAsN10pLCBtYXgoY292aWQub3V0Lm83WyAsN10pLCBtYXgoY292aWQub3V0Lm84WyAsN10pLCBtYXgoY292aWQub3V0Lm85WyAsN10pLCBtYXgoY292aWQub3V0Lm8xMFsgLDddKSwgbWF4KGNvdmlkLm91dC5vMTFbICw3XSkpLA0KICBRID0gYyhtYXgoY292aWQub3V0Lm82WyAsOF0pLCBtYXgoY292aWQub3V0Lm83WyAsOF0pLCBtYXgoY292aWQub3V0Lm84WyAsOF0pLCBtYXgoY292aWQub3V0Lm85WyAsOF0pLCBtYXgoY292aWQub3V0Lm8xMFsgLDhdKSwgbWF4KGNvdmlkLm91dC5vMTFbICw4XSkpLA0KICBSID0gYyhtYXgoY292aWQub3V0Lm82WyAsOV0pLCBtYXgoY292aWQub3V0Lm83WyAsOV0pLCBtYXgoY292aWQub3V0Lm84WyAsOV0pLCBtYXgoY292aWQub3V0Lm85WyAsOV0pLCBtYXgoY292aWQub3V0Lm8xMFsgLDldKSwgbWF4KGNvdmlkLm91dC5vMTFbICw5XSkpLA0KICBWID0gYyhtYXgoY292aWQub3V0Lm82WyAsMTBdKSwgbWF4KGNvdmlkLm91dC5vN1sgLDEwXSksIG1heChjb3ZpZC5vdXQubzhbICwxMF0pLCBtYXgoY292aWQub3V0Lm85WyAsMTBdKSwgbWF4KGNvdmlkLm91dC5vMTBbICwxMF0pLCBtYXgoY292aWQub3V0Lm8xMVsgLDEwXSkpDQopDQoNCg0KcmVzdWx0cy5vNSA8LSBkYXRhLmZyYW1lKA0KICBTLmggPSBjKG1pbihjb3ZpZC5vdXQubzZbICwyXSksIG1pbihjb3ZpZC5vdXQubzdbICwyXSksIG1pbihjb3ZpZC5vdXQubzhbICwyXSksIG1pbihjb3ZpZC5vdXQubzlbICwyXSksIG1pbihjb3ZpZC5vdXQubzEwWyAsMl0pLCBtaW4oY292aWQub3V0Lm8xMVsgLDJdKSksDQogIEUuaCA9IGMobWluKGNvdmlkLm91dC5vNlsgLDNdKSwgbWluKGNvdmlkLm91dC5vN1sgLDNdKSwgbWluKGNvdmlkLm91dC5vOFsgLDNdKSwgbWluKGNvdmlkLm91dC5vOVsgLDNdKSwgbWluKGNvdmlkLm91dC5vMTBbICwzXSksIG1pbihjb3ZpZC5vdXQubzExWyAsM10pKSwNCiAgSS5oID0gYyhtaW4oY292aWQub3V0Lm82WyAsNF0pLCBtaW4oY292aWQub3V0Lm83WyAsNF0pLCBtaW4oY292aWQub3V0Lm84WyAsNF0pLCBtaW4oY292aWQub3V0Lm85WyAsNF0pLCBtaW4oY292aWQub3V0Lm8xMFsgLDRdKSwgbWluKGNvdmlkLm91dC5vMTFbICw0XSkpLA0KICBTLmwgPSBjKG1pbihjb3ZpZC5vdXQubzZbICw1XSksIG1pbihjb3ZpZC5vdXQubzdbICw1XSksIG1pbihjb3ZpZC5vdXQubzhbICw1XSksIG1pbihjb3ZpZC5vdXQubzlbICw1XSksIG1pbihjb3ZpZC5vdXQubzEwWyAsNV0pLCBtaW4oY292aWQub3V0Lm8xMVsgLDVdKSksDQogIEUubCA9IGMobWluKGNvdmlkLm91dC5vNlsgLDZdKSwgbWluKGNvdmlkLm91dC5vN1sgLDZdKSwgbWluKGNvdmlkLm91dC5vOFsgLDZdKSwgbWluKGNvdmlkLm91dC5vOVsgLDZdKSwgbWluKGNvdmlkLm91dC5vMTBbICw2XSksIG1pbihjb3ZpZC5vdXQubzExWyAsNl0pKSwNCiAgSS5sID0gYyhtaW4oY292aWQub3V0Lm82WyAsN10pLCBtaW4oY292aWQub3V0Lm83WyAsN10pLCBtaW4oY292aWQub3V0Lm84WyAsN10pLCBtaW4oY292aWQub3V0Lm85WyAsN10pLCBtaW4oY292aWQub3V0Lm8xMFsgLDddKSwgbWluKGNvdmlkLm91dC5vMTFbICw3XSkpLA0KICBRID0gYyhtaW4oY292aWQub3V0Lm82WyAsOF0pLCBtaW4oY292aWQub3V0Lm83WyAsOF0pLCBtaW4oY292aWQub3V0Lm84WyAsOF0pLCBtaW4oY292aWQub3V0Lm85WyAsOF0pLCBtaW4oY292aWQub3V0Lm8xMFsgLDhdKSwgbWluKGNvdmlkLm91dC5vMTFbICw4XSkpLA0KICBSID0gYyhtaW4oY292aWQub3V0Lm82WyAsOV0pLCBtaW4oY292aWQub3V0Lm83WyAsOV0pLCBtaW4oY292aWQub3V0Lm84WyAsOV0pLCBtaW4oY292aWQub3V0Lm85WyAsOV0pLCBtaW4oY292aWQub3V0Lm8xMFsgLDldKSwgbWluKGNvdmlkLm91dC5vMTFbICw5XSkpLA0KICBWID0gYyhtaW4oY292aWQub3V0Lm82WyAsMTBdKSwgbWluKGNvdmlkLm91dC5vN1sgLDEwXSksIG1pbihjb3ZpZC5vdXQubzhbICwxMF0pLCBtaW4oY292aWQub3V0Lm85WyAsMTBdKSwgbWluKGNvdmlkLm91dC5vMTBbICwxMF0pLCBtaW4oY292aWQub3V0Lm8xMVsgLDEwXSkpDQopDQoNCnJlc3VsdHMubzYgPC0gZGF0YS5mcmFtZSgNCiAgUy5oID0gYyh0YWlsKGNvdmlkLm91dC5vNlsgLDJdLG49MSksIHRhaWwoY292aWQub3V0Lm8yWyAsMl0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzNbICwyXSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vOVsgLDJdLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsMl0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzVbICwyXSxuPTEpKSwgDQogIEUuaCA9IGModGFpbChjb3ZpZC5vdXQubzZbICwzXSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vMlsgLDNdLG49MSksIHRhaWwoY292aWQub3V0Lm8zWyAsM10sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzlbICwzXSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vNVsgLDNdLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsMl0sbj0xKSksDQogIEkuaCA9IGModGFpbChjb3ZpZC5vdXQubzZbICw0XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vMlsgLDRdLG49MSksIHRhaWwoY292aWQub3V0Lm8zWyAsNF0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzlbICw0XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vNVsgLDRdLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsMl0sbj0xKSksDQogIFMubCA9IGModGFpbChjb3ZpZC5vdXQubzZbICw1XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vMlsgLDVdLG49MSksIHRhaWwoY292aWQub3V0Lm8zWyAsNV0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzlbICw1XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vNVsgLDVdLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsMl0sbj0xKSksDQogIEUubCA9IGModGFpbChjb3ZpZC5vdXQubzZbICw2XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vMlsgLDZdLG49MSksIHRhaWwoY292aWQub3V0Lm8zWyAsNl0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzlbICw2XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vNVsgLDZdLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsMl0sbj0xKSksIA0KICBJLmwgPSBjKHRhaWwoY292aWQub3V0Lm82WyAsN10sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzJbICw3XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vM1sgLDddLG49MSksIHRhaWwoY292aWQub3V0Lm85WyAsN10sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzVbICw3XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vNVsgLDJdLG49MSkpLA0KICBRID0gYyh0YWlsKGNvdmlkLm91dC5vNlsgLDhdLG49MSksIHRhaWwoY292aWQub3V0Lm8yWyAsOF0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzNbICw4XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vOVsgLDhdLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsOF0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzVbICwyXSxuPTEpKSwNCiAgUiA9IGModGFpbChjb3ZpZC5vdXQubzZbICw5XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vMlsgLDldLG49MSksIHRhaWwoY292aWQub3V0Lm8zWyAsOV0sbj0xKSwgdGFpbChjb3ZpZC5vdXQubzlbICw5XSxuPTEpLCB0YWlsKGNvdmlkLm91dC5vNVsgLDldLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsMl0sbj0xKSksDQogIFYgPSBjKHRhaWwoY292aWQub3V0Lm82WyAsMTBdLG49MSksIHRhaWwoY292aWQub3V0Lm8yWyAsMTBdLG49MSksIHRhaWwoY292aWQub3V0Lm8zWyAsMTBdLG49MSksIHRhaWwoY292aWQub3V0Lm85WyAsMTBdLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsMTBdLG49MSksIHRhaWwoY292aWQub3V0Lm81WyAsMl0sbj0xKSkNCikNCg0KYC5yb3dOYW1lc0RGPC1gKHJlc3VsdHMubzQsbWFrZS5uYW1lcz1GQUxTRSxjKCdvbWVnYSA9IDAuNzUnLCdvbWVnYSA9IDAuODAnLCdvbWVnYSA9IDAuODUnLCdvbWVnYSA9IDAuOTAnLCdvbWVnYSA9IDAuOTUnLCdvbWVnYSA9IDEnKSkNCmAucm93TmFtZXNERjwtYChyZXN1bHRzLm81LG1ha2UubmFtZXM9RkFMU0UsYygnb21lZ2EgPSAwLjc1Jywnb21lZ2EgPSAwLjgwJywnb21lZ2EgPSAwLjg1Jywnb21lZ2EgPSAwLjkwJywnb21lZ2EgPSAwLjk1Jywnb21lZ2EgPSAxJykpDQpgLnJvd05hbWVzREY8LWAocmVzdWx0cy5vNixtYWtlLm5hbWVzPUZBTFNFLGMoJ29tZWdhID0gMC43NScsJ29tZWdhID0gMC44MCcsJ29tZWdhID0gMC44NScsJ29tZWdhID0gMC45MCcsJ29tZWdhID0gMC45NScsJ29tZWdhID0gMScpKQ0KDQpgYGA=