Hi,
I just found something that looks awfully like a bug in your variables api. In the interface builder when I add an input I can choose the bound variable in the dropdown on the left. Upon choosing the interface builder fetches the initial value via the variables api (https://forio.com/v2/run/wirkungsgefuege/{model}/{some id}/variables/?include={variable names}) When the variable name contains a period (".") I get back a 500 internal server error. I post the full response body below. It’s a StringIndexOutOfBoundsException. I confirmed that the problem is the period by testing the request with postman and removing the period. After that I get a correct 404 response (variable not found - because I deleted the period of course). The variable name that’s causing the issue is for example
“AUSWIRKUNG SORGFÄLTIGE AUFTRAGSVORBEREITUNG INKL. CNC-PROGRAMMIERUNG AUF NIEDRIGE PERSONALKOSTEN”
(note the “.” after “INKL”).
In the meantime I’m changing my model to not contain any periods in variable names.
Response body:
{
"trace": [
{
"type": "java.lang.String",
"function": "checkIndex",
"file": "String.java",
"line": 3278
},
{
"type": "java.lang.AbstractStringBuilder",
"function": "charAt",
"file": "AbstractStringBuilder.java",
"line": 307
},
{
"type": "java.lang.StringBuilder",
"function": "charAt",
"file": "StringBuilder.java",
"line": 85
},
{
"type": "org.smallmind.nutsnbolts.util.EnumUtility",
"function": "toEnumName",
"file": "EnumUtility.java",
"line": 60
},
{
"type": "com.forio.epicenter.ventriloquist.aggregate.run.v3.AggregateRunResource",
"function": "constructGetAction",
"file": "AggregateRunResource.java",
"line": 1500
},
{
"type": "com.forio.epicenter.ventriloquist.aggregate.run.v3.AggregateRunResource",
"function": "constructGetActions",
"file": "AggregateRunResource.java",
"line": 1478
},
{
"type": "com.forio.epicenter.ventriloquist.aggregate.run.v3.AggregateRunResource",
"function": "completeGet",
"file": "AggregateRunResource.java",
"line": 880
},
{
"type": "com.forio.epicenter.ventriloquist.aggregate.run.v3.AggregateRunResource",
"function": "get4_aroundBody26",
"file": "AggregateRunResource.java",
"line": 684
},
{
"type": "com.forio.epicenter.ventriloquist.aggregate.run.v3.AggregateRunResource$AjcClosure27",
"function": "run",
"file": "AggregateRunResource.java",
"line": 1
},
{
"type": "org.aspectj.runtime.reflect.JoinPointImpl",
"function": "proceed",
"file": "JoinPointImpl.java",
"line": 167
},
{
"type": "org.smallmind.claxon.registry.WorkingInstrumentation",
"function": "on",
"file": "WorkingInstrumentation.java",
"line": 111
},
{
"type": "com.forio.epicenter.skeleton.instrument.rest.GetTimerAspect",
"function": "aroundEntityTypeMethod",
"file": "GetTimerAspect.java",
"line": 20
},
{
"type": "com.forio.epicenter.ventriloquist.aggregate.run.v3.AggregateRunResource",
"function": "get4",
"file": "AggregateRunResource.java",
"line": 681
},
{
"type": "jdk.internal.reflect.GeneratedMethodAccessor367",
"function": "invoke",
"line": -1
},
{
"type": "jdk.internal.reflect.DelegatingMethodAccessorImpl",
"function": "invoke",
"file": "DelegatingMethodAccessorImpl.java",
"line": 43
},
{
"type": "java.lang.reflect.Method",
"function": "invoke",
"file": "Method.java",
"line": 566
},
{
"type": "org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory",
"function": "lambda$static$0",
"file": "ResourceMethodInvocationHandlerFactory.java",
"line": 52
},
{
"type": "org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1",
"function": "run",
"file": "AbstractJavaResourceMethodDispatcher.java",
"line": 124
},
{
"type": "org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher",
"function": "invoke",
"file": "AbstractJavaResourceMethodDispatcher.java",
"line": 167
},
{
"type": "org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker",
"function": "doDispatch",
"file": "JavaResourceMethodDispatcherProvider.java",
"line": 176
},
{
"type": "org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher",
"function": "dispatch",
"file": "AbstractJavaResourceMethodDispatcher.java",
"line": 79
},
{
"type": "org.glassfish.jersey.server.model.ResourceMethodInvoker",
"function": "invoke",
"file": "ResourceMethodInvoker.java",
"line": 469
},
{
"type": "org.glassfish.jersey.server.model.ResourceMethodInvoker",
"function": "apply",
"file": "ResourceMethodInvoker.java",
"line": 391
},
{
"type": "org.glassfish.jersey.server.model.ResourceMethodInvoker",
"function": "apply",
"file": "ResourceMethodInvoker.java",
"line": 80
},
{
"type": "org.glassfish.jersey.server.ServerRuntime$1",
"function": "run",
"file": "ServerRuntime.java",
"line": 253
},
{
"type": "org.glassfish.jersey.internal.Errors$1",
"function": "call",
"file": "Errors.java",
"line": 248
},
{
"type": "org.glassfish.jersey.internal.Errors$1",
"function": "call",
"file": "Errors.java",
"line": 244
},
{
"type": "org.glassfish.jersey.internal.Errors",
"function": "process",
"file": "Errors.java",
"line": 292
},
{
"type": "org.glassfish.jersey.internal.Errors",
"function": "process",
"file": "Errors.java",
"line": 274
},
{
"type": "org.glassfish.jersey.internal.Errors",
"function": "process",
"file": "Errors.java",
"line": 244
},
{
"type": "org.glassfish.jersey.process.internal.RequestScope",
"function": "runInScope",
"file": "RequestScope.java",
"line": 265
},
{
"type": "org.glassfish.jersey.server.ServerRuntime",
"function": "process",
"file": "ServerRuntime.java",
"line": 232
},
{
"type": "org.glassfish.jersey.server.ApplicationHandler",
"function": "handle",
"file": "ApplicationHandler.java",
"line": 680
},
{
"type": "org.glassfish.jersey.servlet.WebComponent",
"function": "serviceImpl",
"file": "WebComponent.java",
"line": 394
},
{
"type": "org.glassfish.jersey.servlet.WebComponent",
"function": "service",
"file": "WebComponent.java",
"line": 346
},
{
"type": "org.glassfish.jersey.servlet.ServletContainer",
"function": "service",
"file": "ServletContainer.java",
"line": 366
},
{
"type": "org.glassfish.jersey.servlet.ServletContainer",
"function": "service",
"file": "ServletContainer.java",
"line": 319
},
{
"type": "org.glassfish.jersey.servlet.ServletContainer",
"function": "service",
"file": "ServletContainer.java",
"line": 205
},
{
"type": "org.glassfish.grizzly.servlet.FilterChainImpl",
"function": "doFilter",
"file": "FilterChainImpl.java",
"line": 124
},
{
"type": "com.forio.epicenter.bedrock.utility.servlet.filter.QueryTransformFilter",
"function": "doFilter",
"file": "QueryTransformFilter.java",
"line": 33
},
{
"type": "org.glassfish.grizzly.servlet.FilterChainImpl",
"function": "doFilter",
"file": "FilterChainImpl.java",
"line": 114
},
{
"type": "com.forio.epicenter.bedrock.utility.servlet.filter.MethodOverrideFilter",
"function": "doFilter",
"file": "MethodOverrideFilter.java",
"line": 73
},
{
"type": "org.glassfish.grizzly.servlet.FilterChainImpl",
"function": "doFilter",
"file": "FilterChainImpl.java",
"line": 114
},
{
"type": "com.forio.epicenter.bedrock.utility.servlet.filter.ToPostFilter",
"function": "doFilter",
"file": "ToPostFilter.java",
"line": 59
},
{
"type": "org.glassfish.grizzly.servlet.FilterChainImpl",
"function": "doFilter",
"file": "FilterChainImpl.java",
"line": 114
},
{
"type": "org.smallmind.nutsnbolts.lang.web.PerApplicationContextFilter",
"function": "doFilter",
"file": "PerApplicationContextFilter.java",
"line": 61
},
{
"type": "org.glassfish.grizzly.servlet.FilterChainImpl",
"function": "doFilter",
"file": "FilterChainImpl.java",
"line": 114
},
{
"type": "org.glassfish.grizzly.servlet.FilterChainImpl",
"function": "invokeFilterChain",
"file": "FilterChainImpl.java",
"line": 83
},
{
"type": "org.glassfish.grizzly.servlet.ServletHandler",
"function": "doServletService",
"file": "ServletHandler.java",
"line": 202
},
{
"type": "org.glassfish.grizzly.servlet.ServletHandler",
"function": "service",
"file": "ServletHandler.java",
"line": 149
},
{
"type": "org.glassfish.grizzly.http.server.HttpHandler$1",
"function": "run",
"file": "HttpHandler.java",
"line": 200
},
{
"type": "org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker",
"function": "doWork",
"file": "AbstractThreadPool.java",
"line": 569
},
{
"type": "org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker",
"function": "run",
"file": "AbstractThreadPool.java",
"line": 549
},
{
"type": "java.lang.Thread",
"function": "run",
"file": "Thread.java",
"line": 834
}
],
"type": "java.lang.StringIndexOutOfBoundsException",
"message": "index -1,length 0",
"native": {
"language": "JAVA",
"bytes": "rO0ABXNyAClqYXZhLmxhbmcuU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbqIlUM1vY0T2AgAAeHIAI2phdmEubGFuZy5JbmRleE91dE9mQm91bmRzRXhjZXB0aW9uAz/Fn9q0KycCAAB4cgAaamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb26eXwZHCjSD5QIAAHhyABNqYXZhLmxhbmcuRXhjZXB0aW9u0P0fPho7HMQCAAB4cgATamF2YS5sYW5nLlRocm93YWJsZdXGNSc5d7jLAwAETAAFY2F1c2V0ABVMamF2YS9sYW5nL1Rocm93YWJsZTtMAA1kZXRhaWxNZXNzYWdldAASTGphdmEvbGFuZy9TdHJpbmc7WwAKc3RhY2tUcmFjZXQAHltMamF2YS9sYW5nL1N0YWNrVHJhY2VFbGVtZW50O0wAFHN1cHByZXNzZWRFeGNlcHRpb25zdAAQTGphdmEvdXRpbC9MaXN0O3hwcQB+AAl0ABFpbmRleCAtMSxsZW5ndGggMHVyAB5bTGphdmEubGFuZy5TdGFja1RyYWNlRWxlbWVudDsCRio8PP0iOQIAAHhwAAAANnNyABtqYXZhLmxhbmcuU3RhY2tUcmFjZUVsZW1lbnRhCcWaJjbdhQIACEIABmZvcm1hdEkACmxpbmVOdW1iZXJMAA9jbGFzc0xvYWRlck5hbWVxAH4ABkwADmRlY2xhcmluZ0NsYXNzcQB+AAZMAAhmaWxlTmFtZXEAfgAGTAAKbWV0aG9kTmFtZXEAfgAGTAAKbW9kdWxlTmFtZXEAfgAGTAANbW9kdWxlVmVyc2lvbnEAfgAGeHACAAAMznB0ABBqYXZhLmxhbmcuU3RyaW5ndAALU3RyaW5nLmphdmF0AApjaGVja0luZGV4dAAJamF2YS5iYXNldAAIMTEuMC45LjFzcQB+AA0CAAABM3B0AB9qYXZhLmxhbmcuQWJzdHJhY3RTdHJpbmdCdWlsZGVydAAaQWJzdHJhY3RTdHJpbmdCdWlsZGVyLmphdmF0AAZjaGFyQXRxAH4AEnEAfgATc3EAfgANAgAAAFVwdAAXamF2YS5sYW5nLlN0cmluZ0J1aWxkZXJ0ABJTdHJpbmdCdWlsZGVyLmphdmFxAH4AF3EAfgAScQB+ABNzcQB+AA0BAAAAPHQAA2FwcHQAKW9yZy5zbWFsbG1pbmQubnV0c25ib2x0cy51dGlsLkVudW1VdGlsaXR5dAAQRW51bVV0aWxpdHkuamF2YXQACnRvRW51bU5hbWVwcHNxAH4ADQEAAAXccQB+ABx0AEdjb20uZm9yaW8uZXBpY2VudGVyLnZlbnRyaWxvcXVpc3QuYWdncmVnYXRlLnJ1bi52My5BZ2dyZWdhdGVSdW5SZXNvdXJjZXQAGUFnZ3JlZ2F0ZVJ1blJlc291cmNlLmphdmF0ABJjb25zdHJ1Y3RHZXRBY3Rpb25wcHNxAH4ADQEAAAXGcQB+ABxxAH4AIXEAfgAidAATY29uc3RydWN0R2V0QWN0aW9uc3Bwc3EAfgANAQAAA3BxAH4AHHEAfgAhcQB+ACJ0AAtjb21wbGV0ZUdldHBwc3EAfgANAQAAAqxxAH4AHHEAfgAhcQB+ACJ0ABFnZXQ0X2Fyb3VuZEJvZHkyNnBwc3EAfgANAQAAAAFxAH4AHHQAVGNvbS5mb3Jpby5lcGljZW50ZXIudmVudHJpbG9xdWlzdC5hZ2dyZWdhdGUucnVuLnYzLkFnZ3JlZ2F0ZVJ1blJlc291cmNlJEFqY0Nsb3N1cmUyN3EAfgAidAADcnVucHBzcQB+AA0BAAAAp3EAfgAcdAApb3JnLmFzcGVjdGoucnVudGltZS5yZWZsZWN0LkpvaW5Qb2ludEltcGx0ABJKb2luUG9pbnRJbXBsLmphdmF0AAdwcm9jZWVkcHBzcQB+AA0BAAAAb3EAfgAcdAA0b3JnLnNtYWxsbWluZC5jbGF4b24ucmVnaXN0cnkuV29ya2luZ0luc3RydW1lbnRhdGlvbnQAG1dvcmtpbmdJbnN0cnVtZW50YXRpb24uamF2YXQAAm9ucHBzcQB+AA0BAAAAFHEAfgAcdAA7Y29tLmZvcmlvLmVwaWNlbnRlci5za2VsZXRvbi5pbnN0cnVtZW50LnJlc3QuR2V0VGltZXJBc3BlY3R0ABNHZXRUaW1lckFzcGVjdC5qYXZhdAAWYXJvdW5kRW50aXR5VHlwZU1ldGhvZHBwc3EAfgANAQAAAqlxAH4AHHEAfgAhcQB+ACJ0AARnZXQ0cHBzcQB+AA0A/////3B0AC9qZGsuaW50ZXJuYWwucmVmbGVjdC5HZW5lcmF0ZWRNZXRob2RBY2Nlc3NvcjM2N3B0AAZpbnZva2VwcHNxAH4ADQIAAAArcHQAMWpkay5pbnRlcm5hbC5yZWZsZWN0LkRlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGx0ACFEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmFxAH4APXEAfgAScQB+ABNzcQB+AA0CAAACNnB0ABhqYXZhLmxhbmcucmVmbGVjdC5NZXRob2R0AAtNZXRob2QuamF2YXEAfgA9cQB+ABJxAH4AE3NxAH4ADQEAAAA0cQB+ABx0AFFvcmcuZ2xhc3NmaXNoLmplcnNleS5zZXJ2ZXIubW9kZWwuaW50ZXJuYWwuUmVzb3VyY2VNZXRob2RJbnZvY2F0aW9uSGFuZGxlckZhY3Rvcnl0ACtSZXNvdXJjZU1ldGhvZEludm9jYXRpb25IYW5kbGVyRmFjdG9yeS5qYXZhdAAPbGFtYmRhJHN0YXRpYyQwcHBzcQB+AA0BAAAAfHEAfgAcdABRb3JnLmdsYXNzZmlzaC5qZXJzZXkuc2VydmVyLm1vZGVsLmludGVybmFsLkFic3RyYWN0SmF2YVJlc291cmNlTWV0aG9kRGlzcGF0Y2hlciQxdAApQWJzdHJhY3RKYXZhUmVzb3VyY2VNZXRob2REaXNwYXRjaGVyLmphdmFxAH4ALHBwc3EAfgANAQAAAKdxAH4AHHQAT29yZy5nbGFzc2Zpc2guamVyc2V5LnNlcnZlci5tb2RlbC5pbnRlcm5hbC5BYnN0cmFjdEphdmFSZXNvdXJjZU1ldGhvZERpc3BhdGNoZXJxAH4ASnEAfgA9cHBzcQB+AA0BAAAAsHEAfgAcdABib3JnLmdsYXNzZmlzaC5qZXJzZXkuc2VydmVyLm1vZGVsLmludGVybmFsLkphdmFSZXNvdXJjZU1ldGhvZERpc3BhdGNoZXJQcm92aWRlciRSZXNwb25zZU91dEludm9rZXJ0AClKYXZhUmVzb3VyY2VNZXRob2REaXNwYXRjaGVyUHJvdmlkZXIuamF2YXQACmRvRGlzcGF0Y2hwcHNxAH4ADQEAAABPcQB+ABxxAH4ATHEAfgBKdAAIZGlzcGF0Y2hwcHNxAH4ADQEAAAHVcQB+ABx0ADdvcmcuZ2xhc3NmaXNoLmplcnNleS5zZXJ2ZXIubW9kZWwuUmVzb3VyY2VNZXRob2RJbnZva2VydAAaUmVzb3VyY2VNZXRob2RJbnZva2VyLmphdmFxAH4APXBwc3EAfgANAQAAAYdxAH4AHHEAfgBUcQB+AFV0AAVhcHBseXBwc3EAfgANAQAAAFBxAH4AHHEAfgBUcQB+AFVxAH4AV3Bwc3EAfgANAQAAAP1xAH4AHHQAK29yZy5nbGFzc2Zpc2guamVyc2V5LnNlcnZlci5TZXJ2ZXJSdW50aW1lJDF0ABJTZXJ2ZXJSdW50aW1lLmphdmFxAH4ALHBwc3EAfgANAQAAAPhxAH4AHHQAJm9yZy5nbGFzc2Zpc2guamVyc2V5LmludGVybmFsLkVycm9ycyQxdAALRXJyb3JzLmphdmF0AARjYWxscHBzcQB+AA0BAAAA9HEAfgAccQB+AF1xAH4AXnEAfgBfcHBzcQB+AA0BAAABJHEAfgAcdAAkb3JnLmdsYXNzZmlzaC5qZXJzZXkuaW50ZXJuYWwuRXJyb3JzcQB+AF50AAdwcm9jZXNzcHBzcQB+AA0BAAABEnEAfgAccQB+AGJxAH4AXnEAfgBjcHBzcQB+AA0BAAAA9HEAfgAccQB+AGJxAH4AXnEAfgBjcHBzcQB+AA0BAAABCXEAfgAcdAAyb3JnLmdsYXNzZmlzaC5qZXJzZXkucHJvY2Vzcy5pbnRlcm5hbC5SZXF1ZXN0U2NvcGV0ABFSZXF1ZXN0U2NvcGUuamF2YXQACnJ1bkluU2NvcGVwcHNxAH4ADQEAAADocQB+ABx0AClvcmcuZ2xhc3NmaXNoLmplcnNleS5zZXJ2ZXIuU2VydmVyUnVudGltZXEAfgBbcQB+AGNwcHNxAH4ADQEAAAKocQB+ABx0AC5vcmcuZ2xhc3NmaXNoLmplcnNleS5zZXJ2ZXIuQXBwbGljYXRpb25IYW5kbGVydAAXQXBwbGljYXRpb25IYW5kbGVyLmphdmF0AAZoYW5kbGVwcHNxAH4ADQEAAAGKcQB+ABx0AClvcmcuZ2xhc3NmaXNoLmplcnNleS5zZXJ2bGV0LldlYkNvbXBvbmVudHQAEVdlYkNvbXBvbmVudC5qYXZhdAALc2VydmljZUltcGxwcHNxAH4ADQEAAAFacQB+ABxxAH4AcXEAfgBydAAHc2VydmljZXBwc3EAfgANAQAAAW5xAH4AHHQALW9yZy5nbGFzc2Zpc2guamVyc2V5LnNlcnZsZXQuU2VydmxldENvbnRhaW5lcnQAFVNlcnZsZXRDb250YWluZXIuamF2YXEAfgB1cHBzcQB+AA0BAAABP3EAfgAccQB+AHdxAH4AeHEAfgB1cHBzcQB+AA0BAAAAzXEAfgAccQB+AHdxAH4AeHEAfgB1cHBzcQB+AA0BAAAAfHEAfgAcdAAtb3JnLmdsYXNzZmlzaC5ncml6emx5LnNlcnZsZXQuRmlsdGVyQ2hhaW5JbXBsdAAURmlsdGVyQ2hhaW5JbXBsLmphdmF0AAhkb0ZpbHRlcnBwc3EAfgANAQAAACFxAH4AHHQAR2NvbS5mb3Jpby5lcGljZW50ZXIuYmVkcm9jay51dGlsaXR5LnNlcnZsZXQuZmlsdGVyLlF1ZXJ5VHJhbnNmb3JtRmlsdGVydAAZUXVlcnlUcmFuc2Zvcm1GaWx0ZXIuamF2YXEAfgB+cHBzcQB+AA0BAAAAcnEAfgAccQB+AHxxAH4AfXEAfgB+cHBzcQB+AA0BAAAASXEAfgAcdABHY29tLmZvcmlvLmVwaWNlbnRlci5iZWRyb2NrLnV0aWxpdHkuc2VydmxldC5maWx0ZXIuTWV0aG9kT3ZlcnJpZGVGaWx0ZXJ0ABlNZXRob2RPdmVycmlkZUZpbHRlci5qYXZhcQB+AH5wcHNxAH4ADQEAAABycQB+ABxxAH4AfHEAfgB9cQB+AH5wcHNxAH4ADQEAAAA7cQB+ABx0AD9jb20uZm9yaW8uZXBpY2VudGVyLmJlZHJvY2sudXRpbGl0eS5zZXJ2bGV0LmZpbHRlci5Ub1Bvc3RGaWx0ZXJ0ABFUb1Bvc3RGaWx0ZXIuamF2YXEAfgB+cHBzcQB+AA0BAAAAcnEAfgAccQB+AHxxAH4AfXEAfgB+cHBzcQB+AA0BAAAAPXEAfgAcdAA9b3JnLnNtYWxsbWluZC5udXRzbmJvbHRzLmxhbmcud2ViLlBlckFwcGxpY2F0aW9uQ29udGV4dEZpbHRlcnQAIFBlckFwcGxpY2F0aW9uQ29udGV4dEZpbHRlci5qYXZhcQB+AH5wcHNxAH4ADQEAAABycQB+ABxxAH4AfHEAfgB9cQB+AH5wcHNxAH4ADQEAAABTcQB+ABxxAH4AfHEAfgB9dAARaW52b2tlRmlsdGVyQ2hhaW5wcHNxAH4ADQEAAADKcQB+ABx0ACxvcmcuZ2xhc3NmaXNoLmdyaXp6bHkuc2VydmxldC5TZXJ2bGV0SGFuZGxlcnQAE1NlcnZsZXRIYW5kbGVyLmphdmF0ABBkb1NlcnZsZXRTZXJ2aWNlcHBzcQB+AA0BAAAAlXEAfgAccQB+AJJxAH4Ak3EAfgB1cHBzcQB+AA0BAAAAyHEAfgAcdAAvb3JnLmdsYXNzZmlzaC5ncml6emx5Lmh0dHAuc2VydmVyLkh0dHBIYW5kbGVyJDF0ABBIdHRwSGFuZGxlci5qYXZhcQB+ACxwcHNxAH4ADQEAAAI5cQB+ABx0ADpvcmcuZ2xhc3NmaXNoLmdyaXp6bHkudGhyZWFkcG9vbC5BYnN0cmFjdFRocmVhZFBvb2wkV29ya2VydAAXQWJzdHJhY3RUaHJlYWRQb29sLmphdmF0AAZkb1dvcmtwcHNxAH4ADQEAAAIlcQB+ABxxAH4AmnEAfgCbcQB+ACxwcHNxAH4ADQIAAANCcHQAEGphdmEubGFuZy5UaHJlYWR0AAtUaHJlYWQuamF2YXEAfgAscQB+ABJxAH4AE3NyAB9qYXZhLnV0aWwuQ29sbGVjdGlvbnMkRW1wdHlMaXN0ergXtDynnt4CAAB4cHg="
}
}