Giter Club home page Giter Club logo

paranoid's People

Contributors

michaelrocks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

paranoid's Issues

Compilation Error: it.source must not be null

Hey, i got a issue with following stracktrace.

`> Task :app:transformClassesWithParanoidForDebug FAILED
Compilation error
java.lang.IllegalStateException: it.source must not be null
at io.michaelrocks.paranoid.processor.Generator.generateDeobfuscator(Generator.kt:65)
at io.michaelrocks.paranoid.processor.ParanoidProcessor.process(ParanoidProcessor.kt:65)
at io.michaelrocks.paranoid.plugin.ParanoidTransform.transform(ParanoidTransform.kt:74)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:284)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:247)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:106)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:242)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:47)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:570)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:395)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:387)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:84)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:555)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:538)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:109)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:279)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:268)
at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
at java.base/java.util.Optional.map(Optional.java:258)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:67)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:36)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:159)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:72)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:43)
at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
at java.base/java.util.Optional.map(Optional.java:258)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
at java.base/java.util.Optional.orElseGet(Optional.java:362)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:195)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:187)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:832)

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:transformClassesWithParanoidForDebug'.

com.android.build.api.transform.TransformException: io.michaelrocks.paranoid.processor.ParanoidException: Compilation error`

i use java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) Client VM (build 25.261-b12, mixed mode, sharing)

i hope you can help me to fix that problem.

build fail for AndroidTest module after apply plugin.

I got an build Error for AndroidTest.
It's only occur when run AndroidTest with module applied plugin. ( module compile has no error! )

Executing tasks: [:module:assembleDebug, :module:assembleDebugAndroidTest]
...
:sdk:transformClassesWithParanoidForDebug UP-TO-DATE
...
:sdk:transformClassesWithParanoidForDebugAndroidTest UP-TO-DATE
:sdk:transformClassesWithDexForDebugAndroidTest FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':sdk:transformClassesWithDexForDebugAndroidTest'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lio/michaelrocks/paranoid/Deobfuscator;

Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lio/michaelrocks/paranoid/Deobfuscator;

Caused by: com.android.dex.DexException: Multiple dex files define Lio/michaelrocks/paranoid/Deobfuscator;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:584)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:539)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:521)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:167)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:191)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:522)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:344)
at com.android.dx.command.dexer.Main.run(Main.java:292)
at com.android.builder.internal.compiler.DexWrapper.run(DexWrapper.java:54)
at com.android.builder.core.DexByteCodeConverter.lambda$dexInProcess$0(DexByteCodeConverter.java:174)

Do you have any suggestions?

I'm using espresso-core:2.2.2
androidTestCompile "com.android.support.test.espresso:espresso-core:2.2.2", {
exclude group: 'com.android.support'
}

@Obfuscate only works once?

So, if I have two classes with @Obfuscate -- only one of them (first alphabetically) will be obfuscated? :()

Udate to 64bit

Hi Friend your work is great but please update the Lib to 64bit version because it getting error on google play when i am uploading the APK to play store using paranoid, and thanks for the great work.

Compilation Error: it.source must not be null (Java version 1.6 is out of date)

Hi,

This plugin currently fails when building my app with the following stacktrace:

> Task :app:transformClassesWithParanoidForDebug
Compilation error
java.lang.IllegalStateException: it.source must not be null
        at io.michaelrocks.paranoid.processor.Generator.generateDeobfuscator(Generator.kt:65)
        at io.michaelrocks.paranoid.processor.ParanoidProcessor.process(ParanoidProcessor.kt:65)
        at io.michaelrocks.paranoid.plugin.ParanoidTransform.transform(ParanoidTransform.kt:74)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:106)
        at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
        at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
        at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:401)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:390)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:373)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:79)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:210)
        at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
        at java.base/java.util.Optional.map(Optional.java:265)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
        at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
        at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
        at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
        at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
        at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
        at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
        at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
        at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
        at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
        at java.base/java.util.Optional.map(Optional.java:265)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
        at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:117)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
        at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.base/java.lang.Thread.run(Thread.java:835)

The error occurs here:

"Compilation error: {}:{}:{}: {}", it.source.name, it.lineNumber, it.columnNumber, it.getMessage(null)

Upon inspection, the contents of diagnostics appear to be:
image

It appears the Java version of this plugin is out of date. I suspect that this can be fixed by updating these lines in the build.gradle file of each subproject:

// Old
sourceCompatibility = JavaVersion.VERSION_1_6
targetCompatibility = JavaVersion.VERSION_1_6
// New--either JavaVersion.VERSION_1_7 or JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

I can submit a PR, but I'm unsure if there are any audits you would like to do first.

Thanks!

import paranoid whithout "com.android.application"

I have android module that doesn't have the line:

"apply plugin: 'com.android.application'"

when trying to apply paranoid I got the following error while syncing the gradle:

Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id 'io.michaelrocks.paranoid']
Caused by: org.gradle.api.GradleException: Paranoid plugin must be applied AFTER Android plugin

how to use paranoid without adding "com.android.application"

Error in version 0.3.3

Hi, I am using paranoid in every app and everything is works fine. I am used to using version 0.3.2 and today I update it to 0.3.3 but getting an error while trying to rebuild project.

The error says "Could not initialize class io.michaelrocks.paranoid.grip.ClassesQueryBuilder" and I don't know how to solve it. Can you give some clue how to solve this problem? Or should I stay in 0.3.2?

My project is currently using this seeting

  • Android Gradle Plugin = 4.1.3
  • Gradle Version = 6.5
  • Kotlin Version = 1.4.32
  • Target SDk = 30
  • buildToolVersion = 29.0.3

Is there any missing configuration? Thanks in advanced

Unable to find method 'kotlin.text.StringsKt.chunked(Ljava/lang/CharSequence;I)Ljava/util/List;'

Hi,

While running or building project I getting below error:
Unable to find method 'kotlin.text.StringsKt.chunked(Ljava/lang/CharSequence;I)Ljava/util/List;'.
Possible causes for this unexpected error include:
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)

The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
Stop Gradle build processes (requires restart)

Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.

In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

My Project Gradle is below:

buildscript {
repositories {
google()
jcenter()
maven {url 'https://maven.fabric.io/public'}
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:4.0.0'
classpath 'io.fabric.tools:gradle:1.25.4'
// classpath 'net.sf.proguard:proguard-gradle:6.2.2'
classpath 'io.michaelrocks:paranoid-gradle-plugin:0.3.2'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

// configurations.all {
// resolutionStrategy {
// force 'net.sf.proguard:proguard-base:6.0'
// }
// }
}

allprojects {
repositories {
google()
jcenter()
maven {url 'https://maven.google.com/'}
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

Module Gradle is below:

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'io.michaelrocks.paranoid'

android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
defaultConfig {
applicationId "mukesh.test.app"
minSdkVersion 16
targetSdkVersion 28
versionCode 17
versionName "1.1.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
debug {
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "boolean", "enableDebugLogging", "true"
buildConfigField "boolean", "enableExceptionLogging", "false"
/ext.enableCrashlytics = false/
}
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "boolean", "enableDebugLogging", "false"
buildConfigField "boolean", "enableExceptionLogging", "false"
}
}
lintOptions {
checkReleaseBuilds true
abortOnError false
}
}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.android.support:appcompat-v7:28.1.1'
//compile 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.volley:volley:1.1.0'
implementation 'com.android.support:design:28.1.1'
implementation 'com.android.support:support-v4:28.1.1'
implementation 'com.android.support:recyclerview-v7:28.1.1'
implementation 'com.android.support:cardview-v7:28.1.1'
implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
implementation 'com.github.bumptech.glide:glide:3.5.2'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.squareup.okio:okio:2.1.0'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'
implementation 'de.greenrobot:eventbus:3.0.0-beta1'
implementation 'com.github.d-max:spots-dialog:0.7@aar'
implementation 'com.google.firebase:firebase-core:16.0.3'
implementation 'com.google.firebase:firebase-analytics:16.0.3'
implementation 'com.google.firebase:firebase-messaging:17.1.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.5'
implementation 'com.android.support:customtabs:28.1.1'
implementation 'pub.devrel:easypermissions:1.0.1'
implementation 'com.facebook.android:facebook-android-sdk:[4,5)'
//implementation 'com.google.android.gms:play-services-vision:11.8.0'
implementation 'com.google.android.gms:play-services-vision:15.0.2'
implementation 'com.datatheorem.android.trustkit:trustkit:1.1.2'
// implementation 'androidx.preference:preference:1.1.1'
testImplementation 'junit:junit:4.12'
}

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
}
}
}

apply plugin: 'com.google.gms.google-services'

Thanks,
Mukesh

Using ProGuard crashes the compiling proccess

Using Proguard 6.2.2 instead of R8, the build compile process works for a while, until it doesn't. Removing the library solves the issue.

Cause: java.lang.ArrayIndexOutOfBoundsException

Gradle build error

Hello, my Gradle build crashes whenever using this library. Removing it fixed the issue.

Caused by: java.lang.ArrayIndexOutOfBoundsException

I am also using ProGuard 6.2.2

NoClassDefFoundError

I got this error after bumping to version 0.2.1. It was running fine with 0.1.8.

Caused by: java.lang.NoClassDefFoundError: io/michaelrocks/paranoid/processor/ParanoidProcessor
	at io.michaelrocks.paranoid.plugin.ParanoidTransform.transform(ParanoidTransform.kt:44)
	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:221)
	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:217)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
	at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
	at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
	... 32 more

Obfuscate don't work

Hello there!
In Windows the annotation @obfuscate is not working. I compiled your sample and decompiled with dex2jar, here is the result.
capturar

Support caching of deobfuscated strings

Deobfuscated strings may be cached by Deobfuscator. Maybe this behavior should be configurable via an additional annotation or a property in @Obfuscate annotation.

Obfuscate on extension functions

Let's say you extend the File class with an function which creates an intentChooser for it
Example:

fun File.intentChooser(): Intent {
    val intent = Intent(Intent.ACTION_VIEW)
    intent.setDataAndType(Uri.fromFile(this), "text/plain")

    return Intent.createChooser(intent, "Choose App to open file")
}

Currently you can't obfuscate this using @Obfuscate because this works on classes only.
Would it be possible to enhance that, so "text/plain" and "Choose App to open file" can be obfuscated?

Compilation Error Execution failed for task

I'm unable to compile with version 0.3.3. I get the following error message.

Execution failed for task ':Tools:transformClassesWithParanoidForMyProjectDebug'.

'void kotlin.jvm.internal.MutablePropertyReference1Impl.(java.lang.Class, java.lang.String, java.lang.String, int)'

On subsequent compiles I get the following variation.
Execution failed for task ':Tools:transformClassesWithParanoidForMyProjectDebug'.

Could not initialize class io.michaelrocks.paranoid.grip.ClassesQueryBuilder

I have added Kotlin to my project and used the same version as paranoid (1.4.31). I don't know what else I need to do/configure.

Cannot obfuscate a file

Error:Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Compilation error: C:\Users\Rab\AndroidStudioProjects\Kik\app\build\tmp\transformClassesWithParanoidForDebug\src\io\michaelrocks\paranoid\Deobfuscator.java:4:31: code too large
Compilation error
io.michaelrocks.paranoid.processor.ParanoidException: Compilation error:
C:\Users\Rab\AndroidStudioProjects\Kik\app\build\tmp\transformClassesWithParanoidForDebug\src\io\michaelrocks\paranoid\Deobfuscator.java:4:31: code too large
at io.michaelrocks.paranoid.processor.Generator.generateDeobfuscator(Generator.kt:65)
at io.michaelrocks.paranoid.processor.ParanoidProcessor.process(ParanoidProcessor.kt:39)
at io.michaelrocks.paranoid.processor.ParanoidProcessor$process.call(Unknown Source)
at io.michaelrocks.paranoid.plugin.ParanoidTransform.transform(ParanoidTransform.groovy:49)
at com.android.build.api.transform.Transform.transform(Transform.java:290)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:185)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:181)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:163)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:76)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:236)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:228)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:228)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:77)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:58)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$3.execute(DefaultGradleLauncher.java:196)
at org.gradle.initialization.DefaultGradleLauncher$3.execute(DefaultGradleLauncher.java:193)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:193)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:119)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:102)
at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:71)
at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:50)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner$1.execute(RunAsBuildOperationBuildActionRunner.java:43)
at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner$1.execute(RunAsBuildOperationBuildActionRunner.java:40)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:75)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:44)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:29)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:transformClassesWithParanoidForDebug'.

com.android.build.api.transform.TransformException: io.michaelrocks.paranoid.processor.ParanoidException: Compilation error

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

How to Randomly String in Every Build

Hi, thanks for the plugin, it really useful for me. However, I'm cust curious, how to make the string obfuscator use a "random dictionary"?

I mean, if I compile an app-debug or app-release, then I rename it and build again without any change in the code, does the string obfuscator are the same between the old and new app?

If yes, how to make it always change in every single build even I don't change anything in the source code.

Sorry for a dumb question and my bad english...

Can i decompile then use DeobfuscatorHelper to get my string?

Hi,
After use Paranoid, i try to decompile my app and i can know:

  • Paranoid is obfuscate library
  • Chunks of obfuscate strings
  • Method use to deobfuscate string.
    So my question is, if i'm decompile person, and i want to know what string you obfuscate, can i use your lib method:
    DeobfuscatorHelper
    to get string from Chunks i saw from decompiler tool?

Obfuscate don't work - Win7

Hi,
In Windows7 the annotation @obfuscate is not working for me. I compiled my project and decompiled with http://www.javadecompilers.com/apk, but no string is Obfuscate.
Tried on Win7 on both home and business pc, also tried with release 0.1.6...

I am almost new to android, so maybe I made some silly mistake in gradle...do you mind take a look. ASAP :)

Thanks man... wishing all the best.

proguard-rules.pro.txt
build.gradle ---module.txt
build.gradle ---project.txt
from gradle console.txt
gradle.properties.txt

C0886e.java - decompiled.txt

Not Working in some cases

Android Studio & Other Info :

Android Studio 3.5 Canary 7
Build #AI-183.5429.30.35.5346365, built on March 1, 2019
JRE: 1.8.0_152-release-1343-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0

I have double checked for @obfuscate anotation - It is OK
I have double checked for plugin implementation - It is OK

After trying to generate signed Bundle, the task seems to be activated ok, i see in build logs that it is invoked before R8 Shrinker - So, it is OK

In this moment everything seems to works fine.

But after generate APK from Bundle and analyze via APK analyzer or try to decompile the APK from online APK Decompilers, in both cases doesn't see any change in the source code, everything is like before applying this plugin.

In the App Gradle file i have also added :

paranoid {
        enabled = true
        includeSubprojects = true
    }

When executing task with --debug :

21:58:39.152 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor] Classes to obfuscate:
21:58:39.152 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor]   com/example/example/pro/fragments/kryesorja$shiko_per_version_te_ri$1:
21:58:39.153 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor]   com/example/example/pro/activities/paneli_kryesor$hap_dialogun_real_time_request$1$$special$$inlined$show$lambda$1:
21:58:39.153 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor]   com/example/example/pro/activities/paneli_kryesor$ndrysho_gjuhen$8:
21:58:39.153 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor]   com/example/example/pro/activities/paneli_kryesor$ndrysho_gjuhen$5$1:
21:58:39.153 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor]   com/example/example/pro/activities/paneli_kryesor$onCreate$1:
21:58:39.153 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor]   com/example/example/pro/fragments/kryesorja$feedMultiple1$1$1:
21:58:39.153 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor]   com/example/example/pro/activities/paneli_kryesor$onOptionsItemSelected$6:
21:58:39.153 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor]   com/example/example/pro/fragments/kryesorja$myPhoneStateListener$onSignalStrengthsChanged$1$3:
21:58:39.153 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor]   com/example/example/pro/MainApplication:
21:58:39.153 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor]   com/example/example/pro/activities/paneli_kryesor$hap_dialogun_real_time_request$1$$special$$inlined$show$lambda$2:
21:58:39.153 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor]   com/example/example/pro/activities/paneli_kryesor$ndrysho_gjuhen$9:

and more .....
after this :

21:58:39.161 [INFO] [io.michaelrocks.paranoid.processor.ParanoidProcessor] Prepare to generate Deobfuscator(type=Lio/michaelrocks/paranoid/Deobfuscator$app$Release;, deobfuscationMethod=getString(I)Ljava/lang/String;)
21:58:39.172 [INFO] [io.michaelrocks.paranoid.processor.Patcher] Patching...
21:58:39.172 [INFO] [io.michaelrocks.paranoid.processor.Patcher]    Input: DirectoryFileSource(C:\Users\example\Desktop\examplePRO\app\build\intermediates\javac\release\compileReleaseJavaWithJavac\classes)
21:58:39.172 [INFO] [io.michaelrocks.paranoid.processor.Patcher]   Output: DirectoryFileSink(C:\Users\example\Desktop\examplePRO\app\build\intermediates\transforms\paranoid\release\0)
21:58:39.682 [LIFECYCLE] [org.gradle.process.internal.health.memory.MemoryManager] 
21:58:39.682 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory status event {Total: 17012621312, Free: 9991536640}
21:58:39.682 [DEBUG] [org.gradle.launcher.daemon.server.health.LowMemoryDaemonExpirationStrategy] Received memory status update: {Total: 17012621312, Free: 9991536640}
21:58:39.682 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting JVM memory status event {Maximum: 3817865216, Committed: 645398528}
21:58:41.151 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] DaemonExpirationPeriodicCheck running
21:58:41.152 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
21:58:41.152 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
21:58:41.152 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
21:58:41.153 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
21:58:41.153 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
21:58:41.153 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
21:58:39.139 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] 
21:58:39.139 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] > Task :app:transformClassesWithParanoidForRelease
21:58:39.846 [INFO] [io.michaelrocks.paranoid.processor.Patcher] Patching...
21:58:39.846 [INFO] [io.michaelrocks.paranoid.processor.Patcher]    Input: DirectoryFileSource(C:\Users\example\Desktop\examplePRO\app\build\tmp\kotlin-classes\release)
21:58:39.846 [INFO] [io.michaelrocks.paranoid.processor.Patcher]   Output: DirectoryFileSink(C:\Users\example\Desktop\examplePRO\app\build\intermediates\transforms\paranoid\release\1)
21:58:40.427 [DEBUG] [io.michaelrocks.paranoid.processor.Patcher] Patching class com\example\example\pro\activities\paneli_kryesor$Companion.class
21:58:40.447 [INFO] [io.michaelrocks.paranoid.processor.StringLiteralsClassPatcher] com/example/example/pro/activities/paneli_kryesor$Companion.getPid(Ljava/lang/Process;)I:
21:58:40.447 [INFO] [io.michaelrocks.paranoid.processor.StringLiteralsClassPatcher]   Obfuscating string literal: "pid"
21:58:40.448 [INFO] [io.michaelrocks.paranoid.processor.StringLiteralsClassPatcher] com/example/example/pro/activities/paneli_kryesor$Companion.getPid(Ljava/lang/Process;)I:
21:58:40.448 [INFO] [io.michaelrocks.paranoid.processor.StringLiteralsClassPatcher]   Obfuscating string literal: "f"
21:58:40.452 [DEBUG] [io.michaelrocks.paranoid.processor.StandaloneClassWriter] [getCommonSuperClass]: java/lang/Throwable & java/lang/reflect/Field = 33
21:58:40.454 [DEBUG] [io.michaelrocks.paranoid.processor.Patcher] Patching class com\example\example\pro\activities\paneli_kryesor$hap_dialogun_real_time_request$1$$special$$inlined$show$lambda$1.class
21:58:40.455 [INFO] [io.michaelrocks.paranoid.processor.StringLiteralsClassPatcher] com/example/example/pro/activities/paneli_kryesor$hap_dialogun_real_time_request$1$$special$$inlined$show$lambda$1.invoke(Lcom/afollestad/materialdialogs/MaterialDialog;)V:
21:58:40.455 [INFO] [io.michaelrocks.paranoid.processor.StringLiteralsClassPatcher]   Obfuscating string literal: "dialog"

after this :

21:58:44.337 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] 
21:58:44.337 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] > Task :app:transformClassesWithParanoidForRelease FAILED
21:58:44.780 [INFO] [io.michaelrocks.paranoid.processor.Generator] Compiling C:\Users\example\Desktop\examplePRO\app\build\tmp\transformClassesWithParanoidForRelease\src\io\michaelrocks\paranoid\Deobfuscator$app$Release.java
21:58:44.781 [DEBUG] [io.michaelrocks.paranoid.processor.Generator] Source code:
package io.michaelrocks.paranoid;

public class Deobfuscator$app$Release {
  private static final String[] charChunks = new String[] {
      "\u0030\u0073\u0432\u0045\u0070\"\u0044\u0053\u006f\u0041\u0046\u005f\u0418\u0063\u0074\u004f\u0056\u044f\u0039\u007a\u00d6\u0057\n\u0043\u003c\u006e\u0069\u0050\u0062\u0440\u0066\u043b\u004c\u0031\u002c\u003d\u0038\u0071\u0075\u0061\u0034\u004e\u006d\u0052\u0028\u0032\u0033\u004d\u006c\u044c\u003f\u003e\u002e\'\u0055\u002a\u0025\u0059\u005d\u0049\u0020\u002d\u00e9\u0035\u002f\u0042\u0067\u0079\u0048\u0021\u0443\u006a\\\u004a\u0065\u004b\u044b\u0076\u0047\u2026\u005b\u0054\u015e\u0072\u0451\u0077\u0413\u006b\u003a\u0036\u0058\u0078\u0023\u0068\u0064\u0029\u0026"
  };
  private static final String[] indexChunks = new String[] {
      "\u0004\u001a\u005e\u001e\u005e\u001a\'\u0030\u0008\u0042\u0001\u000e\'\u000e\u0026\u0001\u001a\'\r\r\u004a\u0004\u000e\u004a\u005e\u005e\u001a\'\u0030\u0008\u0042\u0001\u000e\'\u000e\u0026\u0001\u001a\u005e\u004a\u0030\u004a\u000e\u004a\u005e\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u000b\'\r\r\u004a\u0001\u0001\u0009\u0001\u0057\u003c\n\u001a\u0053\u0001\u000e\u002b\u004a\'\u0030\u003d\u000e\u001a\u002a\u004a\u003c\u005e\'\u000e\'\u003c\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u003c\u001a\u0001\u003c\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u001a\u0019\u0042\u003c\u000e\u0008\u003c\u0026\u0001\u004a\u003c\u003c\u001e\u0053\u0008\u002a\u003c\u0043\u0008\u0026\u0053\u003c\u005e\u004a\u004d\u001a\r\u004a\u0009\r\u004a\u004a\u0004\u000e\u003c\u0060\u003c\u0017\u0008\u0019\u000e\u001a\u0019\u0026\u004a\u0006\u0008\u0019\u0035\u000e\u003c\'\r\r\u004a\u0004\u000e\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u000b\'\r\r\u004a\u0001\u0001\u0009\u0030\u0055\'\u0043\u0001\u003c\'\u0030\u0030\u0008\u0055\u0001\u000e\'\u000e\u0026\u0001\u001a\'\r\r\u004a\u0004\u000e\u004a\u005e\u005e\u0008\r\u0026\u002a\u004a\u0019\u000e\u000b\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\u004a\u0034\u0026\u0004\u005e\'\u000e\u004a\u002c\u000e\u004a\u000b\u005e\u005d\u004a\u0019\'\u000e\u005f\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u000b\'\r\r\u004a\u0001\u0001\u0009\u0030\u0055\'\u0043\u0001\u003c\u005e\u004a\u0019\u0043\u0001\u000e\'\u000e\u0026\u0001\u001a\u005e\u004a\u0030\u004a\u000e\u004a\u005e\u005e\u0008\r\u0026\u002a\u004a\u0019\u000e\u000b\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\u004a\u0034\u0026\u0004\u005e\'\u000e\u004a\u002c\u000e\u004a\u000b\u005e\u005d\u004a\u0019\'\u000e\u005f\u002a\u004a\u005e\u001a\u000e\u000e\u004a\u005b\u000e\u002a\u004a\u005e\u001a\u000e\u000e\u004a\u005b\u000e\u001b\u0030\u004a\'\u0001\u004a\u003c\u0055\u0053\u001a\u000e\u004a\u003c\u000e\u005d\u004a\u003c\u0004\'\u0001\u0055\u0008\u0053\u005e\u003c\u000e\u0008\u003c\r\u0008\u0019\u000e\u001a\u0019\u0026\u004a\u002a\u004a\u005e\u001a\u000e\u000e\u004a\u005b\u000e\u0018\'\u0019\u0008\u0019\u0043\u002a\u0008\u0026\u0001\u003c\u0004\'\u0053\'\u002a\u004a\u000e\u004a\u0053\u003c\u0000\u0033\u001e\u001a\u0030\u004a\u000e\u004a\u005b\u000e\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0016\u0048\u0037\u0048\u0037\u0048\u0037\u0048\u0037\u0048\u0037\u0048\u0037\u0048\u0037\u0048\u0037\u0048\u0037\u0048\u0037\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0047\'\u004d\'\u0034\u0026\u000e\u001a\u0030\u0034\u0017\u0008\u0030\u0030\u004a\r\u000e\u001a\u0008\u0019\u0018\u0051\u0033\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0057\u0008\u000e\u0030\u001a\u0019\u0034\u0009\u0053\u0053\'\u0043\u0018\u0051\u0033\u0017\u002b\u0003\u0009\u0051\u0003\u0006\u003c\u0041\u0039\u003c\u0029\u0003\u0051\u0015\u000f\u002b\u004b\u003c\u002f\u0009\u0029\u0009\u004e\u0003\u002b\u003c\u002c\u0003\u0009\u004b\u003c\u0051\u0003\u0009\u002f\u003c\u0003\u0020\u0003\u0017\u0051\u002b\u000f\u0029\u003b\u0017\u0007\u005f\u0001\u0057\u0053\u001a\u0004\u000e\u001a\u0051\u005d\u001a\u0001\u003c\u001a\u0001\u003c\u0019\u0008\u000e\u003c\r\u0008\u0053\u0053\u004a\r\u000e\u003c\u001c\'\r\u0057\u0026\u0004\u003c\u001e\u001a\u0030\u004a\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0051\u005d\'\u0019\u0057\u0001\u003c\u0014\u002f\u0003\u002b\u003c\u0051\u0036\u0051\u0036\u0052\u003c\u001e\u0008\u0053\u003c\u000e\u0053\'\u0019\u0001\u0030\'\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0051\u005d\'\u0019\u0057\u0001\u003c\u0014\u002f\u0003\u002b\u003c\u0051\u0036\u0051\u0036\u0052\u003c\u001e\u0008\u0053\u003c\u000e\u0053\'\u0019\u0001\u0030\'\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0051\u005d\'\u0019\u0057\u0001\u003c\u0003\u002a\u001a\u0019\u003c\u004b\u0008\u0057\'\u0030\'\u0053\u001a\u003c\u0060\u003c\u004b\u004a\u0030\u001a\u002a\'\u003c\u0006\u0026\u005e\u0026\u002a\u001a\u003c\u001e\u0008\u0053\u003c\u000e\u0053\'\u0019\u0001\u0030\'\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0051\u005d\'\u0019\u0057\u0001\u003c\u0003\u004d\'\u0019\u005e\u0053\u0008\u003c\u0007\'\u0019\u000e\u0008\u0001\u003c\u001e\u0008\u0053\u003c\u000e\u0053\'\u0019\u0001\u0030\'\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0051\u005d\'\u0019\u0057\u0001\u003c\u0051\u0008\u0019\u0043\u003c\u002b\'\u0019\u001a\u0019\u001a\u003c\u001e\u0008\u0053\u003c\u000e\u0053\'\u0019\u0001\u0030\'\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0051\u005d\'\u0019\u0057\u0001\u003c\u0017\'\u0004\u000e\'\u001a\u0019\u003c\u0041\u0030\'\r\u0057\u001c\u001a\u0053\u005e\u003c\u001e\u0008\u0053\u003c\u000e\u0053\'\u0019\u0001\u0030\'\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0051\u005d\'\u0019\u0057\u0001\u003c\u0049\u0008\u0001\u003e\u003c\u0020\u0026\u001a\u0001\u003c\u0041\'\u0030\u0008\u003c\u001e\u0008\u0053\u003c\u000e\u0053\'\u0019\u0001\u0030\'\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0051\u005d\'\u0019\u0057\u0001\u003c\u0020\u004a\u0008\u0004\u0008\u0030\u005e\u0008\u003c\u0007\'\u0042\u0042\u001a\u0019\u003c\'\u0057\'\u003c\u0051\u0008\u0004\u0008\u0030\u005e\u0008\u003c\u001e\u0008\u0053\u003c\u000e\u0053\'\u0019\u0001\u0030\'\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0051\u005d\'\u0019\u0057\u0001\u003c\u001b\u0053\u0008\u001e\u0034\u003c\u004b\u0008\u0001\u000e\'\u003c\u0020\u001a\u0030\u001a\u003c\u001e\u0008\u0053\u003c\u000e\u0053\'\u0019\u0001\u0030\'\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0051\u005d\'\u0019\u0057\u0001\u003c\u003b\u0030\u0043\'\u003c\u004e\u0026\u0053\u0043\u0030\u004a\u004d\u003c\u002c\u000c\u001f\u0031\u0011\u003c\u0056\u0046\u001d\u004c\u001f\u0054\u0002\u005f\u003c\u0060\u003c\u0049\u0008\u0019\u001a\u005e\'\u003c\u004b\'\u0030\'\u0019\u001a\u003c\u001e\u0008\u0053\u003c\u000e\u0053\'\u0019\u0001\u0030\'\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u001a\u000e\n\u0017\u002f\u003c\u0051\u000f\u004b\u0003\u0029\u003c\u0058\u003c\u001a\u000e\u0034\u0053\u004a\u0001\u0026\u0030\u000e\u0045\u0045\u005e\u001a\'\u0030\u0008\u0042\u0018\'\u0019\u0008\u0019\u0043\u002a\u0008\u0026\u0001\u003c\u0004\'\u0053\'\u002a\u004a\u000e\u004a\u0053\u003c\u002d\u0033\u001a\u000e\u0021\u001a\u000e\u0017\u0008\u0019\u001e\u001a\u0053\u002a\u001b\u0030\u004a\'\u0001\u004a\u003c\r\u0008\u0019\u001e\u001a\u0053\u002a\u003c\u0043\u0008\u0026\u003c\r\u005d\u0008\u001a\r\u004a\u0016\u0006\u0008\u003c\u0043\u0008\u0026\u003c\u0053\u004a\'\u0030\u0030\u0043\u003c\u0055\'\u0019\u000e\u003c\u000e\u0008\u003c\u005e\u004a\u0030\u004a\u000e\u004a\u003c\u0043\u0008\u0026\u0053\u003c\u0026\u0001\u004a\u0053\u003c\u0004\u0053\u0008\u001e\u001a\u0030\u004a\u003c\u0032\u005e\u001a\'\u0030\u0008\u0042\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u0019\u0001\u005e\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u004a\u002a\u0053\u001a\u000b\u001a\u000b\u0001\u005d\u004a\u0053\u001c\u001a\u002a\u001a\u000e\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u001a\u0004\u004a\u0053\u001e\r\u0026\u0053\u0001\u0008\u0053\u0021\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002d\u005f\u003d\u0001\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u0019\u004a\u000e\r\'\u000e\u0001\r\'\u0019\u0019\u004a\u0053\r\u0008\u0019\u0019\u004a\r\u000e\u000e\u004a\u0053\u002a\u001a\u0019\'\u0030\u001a\u000e\u0021\u001a\u000e\u001a\u000e\u0021\u0001\u000e\'\u000e\u0026\u0001\u001a\'\r\r\u004a\u0004\u000e\u004a\u005e\u001a\u000e\u0021\u0001\u000e\'\u000e\u0026\u0001\u001a\u005e\u004a\u0030\u004a\u000e\u004a\u005e\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u000b\'\r\r\u004a\u0001\u0001\u0009\u0001\u0057\u003c\n\u001a\u0053\u0001\u000e\u0001\u000e\'\u000e\u0026\u0001\u001a\u0026\u000b\u002a\u0008\u0053\u002b\u004a\'\u0030\u003d\u000e\u001a\u002a\u004a\u003c\u005e\'\u000e\'\u003c\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u003c\u001a\u0001\u003c\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u001a\u0019\u0042\u003c\u000e\u0008\u003c\u0026\u0001\u004a\u003c\u003c\u001e\u0053\u0008\u002a\u003c\u0043\u0008\u0026\u0053\u003c\u005e\u004a\u004d\u001a\r\u004a\u0009\r\u004a\u004a\u0004\u000e\u003c\u0060\u003c\u0017\u0008\u0019\u000e\u001a\u0019\u0026\u004a\u0006\u0008\u0019\u0035\u000e\u003c\'\r\r\u004a\u0004\u000e\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u000b\'\r\r\u004a\u0001\u0001\u0009\u0030\u0055\'\u0043\u0001\u003c\'\u0030\u0030\u0008\u0055\u0001\u000e\'\u000e\u0026\u0001\u001a\'\r\r\u004a\u0004\u000e\u004a\u005e\u005e\u0008\r\u0026\u002a\u004a\u0019\u000e\u000b\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\u004a\u0034\u0026\u0004\u005e\'\u000e\u004a\u002c\u000e\u004a\u000b\u005e\u005d\u004a\u0019\'\u000e\u005f\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u000b\'\r\r\u004a\u0001\u0001\u0009\u0030\u0055\'\u0043\u0001\u003c\u005e\u004a\u0019\u0043\u0001\u000e\'\u000e\u0026\u0001\u001a\u005e\u004a\u0030\u004a\u000e\u004a\u005e\u005e\u0008\r\u0026\u002a\u004a\u0019\u000e\u000b\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\u004a\u0034\u0026\u0004\u005e\'\u000e\u004a\u002c\u000e\u004a\u000b\u005e\u005d\u004a\u0019\'\u000e\u005f\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u005d\'\u0004\u000b\u005e\u001a\'\u0030\u0008\u0042\u0026\u0019\u000b\u0053\u004a\'\u0030\u000b\u000e\u001a\u002a\u004a\u000b\u0053\u004a\u0025\u0026\u004a\u0001\u000e\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u004a\u002a\u0053\u001a\u000b\u002a\u001c\u001a\u004a\u002a\u0053\u001a\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u002a\u0047\u004a\u000e\u001a\u0029\u0026\u0030\u0030\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\'\u0029\u0026\u0030\u0030\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u0026\u0001\u004a\u0053\u0019\'\u002a\u004a\u0029\u0026\u0030\u0030\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u0026\u0001\u004a\u0053\u001a\u000b\u0026\u0001\u004a\u0053\u0019\'\u002a\u004a\u0029\u0026\u0030\u0030\u001e\u001a\u0053\u004a\u001c\'\u0001\u004a\u0006\u001c\u0034\u005e\u0008\r\u0026\u002a\u004a\u0019\u000e\u002c\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\'\u000b\u004a\u000b\u005e\u0008\u0057\u0026\u002a\u004a\u0019\u000e\u001a\u000e\u005f\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\'\u000b\u004a\u000b\u002a\u0047\u004a\u000e\u001a\u000e\u0029\u0026\u0030\u0030\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u005d\u0008\u0001\u000e\u001a\u0029\u0026\u0030\u0030\u0004\u004a\u0053\u005e\u0008\u0053\u0026\u004a\u0001\u001a\u000e\u001e\u0053\u001a\u004a\u0019\u005e\u0001\u001e\u001a\u0053\u004a\u001c\'\u0001\u004a\u0006\u001c\u0034\r\u0008\u0030\u0030\u004a\r\u000e\u001a\u0008\u0019\u002c\u0005\u0004\u004f\u004a\u0019\u005e\u0001\u0005\u005f\u0034\u005e\u0008\r\u0026\u002a\u004a\u0019\u000e\u002c\u0026\u0001\u004a\u0053\u0019\'\u002a\u004a\u005f\u001a\u000e\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0007\u0051\u0009\u002b\u0051\u000b\u0007\u0003\u002b\u0010\u003b\u0017\u0003\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0007\u0051\u0009\u002b\u0051\u000b\u0007\u0003\u002b\u0010\u003b\u0017\u0003\u0018\'\u0019\u0008\u0019\u0043\u002a\u0008\u0026\u0001\u003c\u0004\'\u0053\'\u002a\u004a\u000e\u004a\u0053\u003c\u0000\u0033\u001e\u001a\u0030\u004a\u001e\u001a\u0030\u004a\u0034\u0019\'\u002a\u004a\u005e\u001a\'\u0030\u0008\u0042\u0018\'\u0019\u0008\u0019\u0043\u002a\u0008\u0026\u0001\u003c\u0004\'\u0053\'\u002a\u004a\u000e\u004a\u0053\u003c\u002d\u0033\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0004\'\r\u0057\u004a\u000e\u000b\r\'\u0004\u000e\u0026\u0053\u004a\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u001b\'\r\u0057\u004a\u000e\u003c\u0017\'\u0004\u000e\u0026\u0053\u004a\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0003\u0019\u004d\u001a\u0053\u0008\u0019\u002a\u004a\u0019\u000e\u0034\u0042\u004a\u000e\u0003\u005b\u000e\u004a\u0053\u0019\'\u0030\u0007\u000e\u0008\u0053\'\u0042\u004a\u0006\u001a\u0053\u004a\r\u000e\u0008\u0053\u0043\u002c\u005f\u0029\u004a\u000e\u0055\u0008\u0053\u0057\u002f\'\u0019\'\u0042\u004a\u0053\u000e\r\u0004\u005e\u0026\u002a\u0004\u000b\u001e\u001a\u0030\u004a\u0001\u0051\u005d\u004a\u0053\u004a\u003c\'\u0053\u004a\u003c\u0019\u0008\u003c\u0001\'\u004d\u004a\u005e\u003c\u001b\u0017\u0009\u001b\u003c\u001e\u001a\u0030\u004a\u0001\u001a\u000e\u0021\u0004\r\'\u0004\u001a\u000e\u001a\u000e\u000e\u001a\u000e\u0026\u0030\u0030\u001a\u002a\u004a\u0001\'\u0013\u005d\u001a\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003c\u003b\u0019\u000e\u004a\u0053\u0019\'\u0030\u003c\u0020\u001a\u0019\u0057\u0001\u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u0016\u0016\u0016\u0016\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003c\u0003\u005b\u000e\u004a\u0053\u0019\'\u0030\u003c\u0020\u001a\u0019\u0057\u0001\u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u0016\u0016\u0016\u0016\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003c\n\u001a\u0030\u004a\u0035\u0001\u003c\u0020\u001a\u0019\u0057\u0001\u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u0016\u0016\u0016\u0016\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003c\u003b\u002a\'\u0042\u004a\u0035\u0001\u003c\u0020\u001a\u0019\u0057\u0001\u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u0016\u0016\u0016\u0016\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003c\u0007\r\u0053\u001a\u0004\u000e\u0035\u0001\u003c\u0020\u001a\u0019\u0057\u0001\u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u0016\u0016\u0016\u0016\u0055\u004a\u001c\u000b\r\u0053\'\u0055\u0030\u004a\u0053\u0045\u0045\u0034\u0055\u004a\u001c\u000b\r\u0053\'\u0055\u0030\u004a\u0053\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0055\u004a\u001c\u000b\r\u0053\'\u0055\u0030\u004a\u0053\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0015\u004a\u001c\u003c\u0017\u0053\'\u0055\u0030\u004a\u0053\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u001a\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u005e\u001c\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u000e\u005d\u004a\u002a\u004a\u0018\u0001\u004a\u000e\u003d\u0032\u0033\'\u0026\u000e\u005d\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u001e\u001a\u0053\u004a\u001c\'\u0001\u004a\u0006\u001c\u0018\u0001\u004a\u000e\u003d\u0032\u0033\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u0004\u004a\u0053\u002a\u001a\u0001\u0001\u001a\u0008\u0019\u0034\u002b\u0003\u0009\u0006\u000b\u0003\u005a\u0051\u0003\u002b\u0029\u0009\u0020\u000b\u0007\u0051\u000f\u002b\u0009\u004e\u0003\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u0004\u004a\u0053\u002a\u001a\u0001\u0001\u001a\u0008\u0019\u0034\u002b\u0003\u0009\u0006\u000b\u0003\u005a\u0051\u0003\u002b\u0029\u0009\u0020\u000b\u0007\u0051\u000f\u002b\u0009\u004e\u0003\u0004\'\u0019\u004a\u0030\u001a\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\r\u0008\u002a\u0009\r\u000e\u001a\u0008\u0019\u0001\u0034\u0019\u004a\u0055\u0010\u001a\u004a\u0055\u002c\u0005\u0004\'\u0019\u004a\u0030\u001a\u000b\u004f\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\r\u0008\u002a\u0005\u005f\u001b\u0009\u0029\u0003\u0020\u003b\u003c\u004b\u002b\u0039\u0003\u0007\u000f\u002b\u000f\u0019\u003c\u0017\u0053\u004a\'\u000e\u004a\'\u0004\u0004\u0030\u001a\r\'\u000e\u001a\u0008\u0019\u0017\u0008\u0019\u000e\u004a\u005b\u000e\'\u0004\u0004\u0030\u001a\r\'\u000e\u001a\u0008\u0019\u0017\u0008\u0019\u000e\u004a\u005b\u000e\u005e\'\u0053\u0057\u005e\'\u0053\u0057\u0030\u001a\u0042\u005d\u000e\n\u001a\u0053\u004a\u001c\'\u0001\u004a\n\u001a\u0053\u004a\u0001\u000e\u0008\u0053\u004a\u0034\u0042\u004a\u000e\u003b\u0019\u0001\u000e\'\u0019\r\u004a\u002c\u005f\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u000e\u0008\u0008\u0030\u001c\'\u0053\u005f\u000e\u0008\u0008\u0030\u001c\'\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u0019\'\u004d\u000b\u004d\u001a\u004a\u0055\u005f\u0019\'\u004d\u001a\u0042\'\u000e\u001a\u0008\u0019\u0010\u001a\u004a\u0055\u000e\u005d\u004a\u002a\u004a\u005e\'\u0053\u0057\u0019\'\u004d\u001a\u0042\'\u000e\u001a\u0008\u0019\u0010\u001a\u004a\u0055\u0019\'\u004d\u001a\u0042\'\u000e\u001a\u0008\u0019\u0010\u001a\u004a\u0055\u0019\'\u004d\u001a\u0042\'\u000e\u001a\u0008\u0019\u0010\u001a\u004a\u0055\u005e\u001c\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0004\u0008\u0004\u0008\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\n\u001a\u0053\u004a\u001c\'\u0001\u004a\u003b\u0019\u0001\u000e\'\u0019\r\u004a\u003b\u005e\u0034\u0042\u004a\u000e\u003b\u0019\u0001\u000e\'\u0019\r\u004a\u002c\u005f\u001a\u0019\u000e\u004a\u0019\u000e\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0053\u004a\'\u0030\u000b\u000e\u001a\u002a\u004a\u000b\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u000b\u0008\u0057\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u005d\'\u0004\u000b\u005e\u001a\'\u0030\u0008\u0042\u0026\u0019\u000b\u0053\u004a\'\u0030\u000b\u000e\u001a\u002a\u004a\u000b\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000b\'\u005e\u004d\'\u0019\r\u004a\u005e\u000b\u0001\u0055\u001a\u000e\r\u005d\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000b\u005e\u004a\u001c\u0026\u0042\u000b\u0008\u0026\u000e\u0004\u0026\u000e\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000b\u0030\u0008\r\'\u0030\u000b\u0053\u0026\u0030\u004a\u0001\u000b\u0053\u004a\u0001\u0008\u0030\u0026\u000e\u001a\u0008\u0019\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000b\'\u0030\u0030\u0008\u0055\u000b\u005e\u0043\u0019\'\u002a\u001a\r\u000b\u0053\u0026\u0030\u004a\u000b\u0053\u004a\u0030\u0008\'\u005e\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000b\'\u005e\u004d\'\u0019\r\u004a\u005e\u000b\u0001\u0055\u001a\u000e\r\u005d\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000b\u005e\u004a\u001c\u0026\u0042\u000b\u0008\u0026\u000e\u0004\u0026\u000e\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000b\u0030\u0008\r\'\u0030\u000b\u0053\u0026\u0030\u004a\u0001\u000b\u0053\u004a\u0001\u0008\u0030\u0026\u000e\u001a\u0008\u0019\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000b\'\u0030\u0030\u0008\u0055\u000b\u005e\u0043\u0019\'\u002a\u001a\r\u000b\u0053\u0026\u0030\u004a\u000b\u0053\u004a\u0030\u0008\'\u005e\u0051\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u001b\u001a\u0019\u0042\u001b\u0008\u0053\u000e\u0001\u003c\u0007\r\'\u0019\u0019\u004a\u0053\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\u004a\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u005d\u0008\u0001\u000e\u001a\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u002a\u0047\u004a\u000e\u001a\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\u004a\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u005d\u0008\u0001\u000e\u001a\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u002a\u0047\u004a\u000e\u001a\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\u004a\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u005d\u0008\u0001\u000e\u001a\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u002a\u0047\u004a\u000e\u001a\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u004a\u002a\u0053\u001a\u000b\u002a\u001c\u001a\u004a\u002a\u0053\u001a\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u002a\u0047\u004a\u000e\u001a\u0029\u0026\u0030\u0030\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\'\u0029\u0026\u0030\u0030\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u0026\u0001\u004a\u0053\u0019\'\u002a\u004a\u0029\u0026\u0030\u0030\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u0026\u0001\u004a\u0053\u001a\u000b\u0026\u0001\u004a\u0053\u0019\'\u002a\u004a\u0029\u0026\u0030\u0030\u001e\u001a\u0053\u004a\u001c\'\u0001\u004a\u0006\u001c\u001e\u001a\u0053\u004a\u001c\'\u0001\u004a\u0006\u001c\u0034\u005e\u0008\r\u0026\u002a\u004a\u0019\u000e\u002c\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\'\u000b\u004a\u000b\u005e\u0008\u0057\u0026\u002a\u004a\u0019\u000e\u001a\u000e\u005f\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\'\u000b\u004a\u000b\u002a\u0047\u004a\u000e\u001a\u000e\u0029\u0026\u0030\u0030\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u005d\u0008\u0001\u000e\u001a\u0029\u0026\u0030\u0030\u001e\u001a\u0053\u004a\u001c\'\u0001\u004a\u0006\u001c\u0004\u004a\u0053\u005e\u0008\u0053\u0026\u004a\u0001\u001a\u000e\u001e\u0053\u001a\u004a\u0019\u005e\u0001\u001e\u001a\u0053\u004a\u001c\'\u0001\u004a\u0006\u001c\u0034\r\u0008\u0030\u0030\u004a\r\u000e\u001a\u0008\u0019\u002c\u0005\u0004\u004f\u004a\u0019\u005e\u0001\u0005\u005f\u0034\u005e\u0008\r\u0026\u002a\u004a\u0019\u000e\u002c\u0026\u0001\u004a\u0053\u0019\'\u002a\u004a\u005f\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u001e\u0053\u001a\u004a\u0019\u005e\u0001\u000b\u0030\u001a\u0001\u000e\u000b\u0001\u005d\u000e\u0008\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u001e\u0053\u001a\u004a\u0019\u005e\u0001\u000b\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\'\u0026\u000e\u005d\'\u0026\u000e\u005d\r\u0008\u0019\u0019\u004a\r\u000e\u000b\u0055\u001a\u000e\u005d\u000b\u001e\u0053\u001a\u004a\u0019\u005e\u0001\u0019\u004a\u0055\u0041\'\u0001\u004a\u0020\u0008\r\'\u0030\u004a\u0017\u005d\'\u0019\u0042\u004a\u0053\u0034\r\u0008\u0019\u001e\u001a\u0042\u0026\u0053\u004a\u0041\'\u0001\u004a\u0017\u0008\u0019\u000e\u004a\u005b\u000e\u002c\u0019\u004a\u0055\u0041\'\u0001\u004a\u0021\u005f\'\r\u000e\u001a\u0008\u0019\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0007\u0051\u000f\u001b\u000b\u0007\u0003\u002b\u0010\u003b\u0017\u0003\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0007\u0051\u000f\u001b\u000b\u0007\u0003\u002b\u0010\u003b\u0017\u0003\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u001e\'\u0025\u0047\'\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u004a\u000b\u004a\u000b\u0004\u004a\u0053\u005e\u0008\u0053\u0026\u004a\u0001\u001a\u000e\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0007\u0051\u000f\u001b\u000b\u0007\u0003\u002b\u0010\u003b\u0017\u0003\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0007\u0051\u000f\u001b\u000b\u0007\u0003\u002b\u0010\u003b\u0017\u0003\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\r\u0008\u0019\u0019\u004a\r\u000e\u000b\u0055\u001a\u000e\u005d\u000b\u001e\u0053\u001a\u004a\u0019\u005e\u0001\r\u0008\u0019\u0019\u004a\r\u000e\u000b\u0055\u001a\u000e\u005d\u000b\u001e\u0053\u001a\u004a\u0019\u005e\u0001\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0007\u0051\u000f\u001b\u000b\u0007\u0003\u002b\u0010\u003b\u0017\u0003\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0007\u0051\u000f\u001b\u000b\u0007\u0003\u002b\u0010\u003b\u0017\u0003\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\r\u0008\u0019\u0019\u004a\r\u000e\u000b\u0055\u001a\u000e\u005d\u000b\u001e\u0053\u001a\u004a\u0019\u005e\u0001\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0004\u0019\u0004\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u000e\u004a\u0030\u0019\u004a\u000e\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0055\u001a\u001e\u001a\u000b\u0004\'\u0001\u0001\u0055\u0008\u0053\u005e\u000b\u0053\u004a\r\u0008\u004d\u004a\u0053\u0043\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0001\u0001\u005d\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u001e\u000e\u0004\u000b\r\u0030\u001a\u004a\u0019\u000e\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0019\u002a\'\u0004\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u000e\r\u0004\u005e\u0026\u002a\u0004\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0042\u0047\u0026\u005d\'\u0009\u0030\u001c\'\u0019\u001a\'\u0019\u0003\u0019\u0042\u0030\u001a\u0001\u005d\u003b\u000e\'\u0030\u001a\'\u0019\n\u0053\u004a\u0019\r\u005d\u0051\u0026\u0053\u0057\u004a\u0043\u001b\u0008\u0030\u001a\u0001\u005d\u001b\u0008\u0053\u000e\u0026\u0042\u0026\u004a\u0001\u004a\u0007\u0004\'\u0019\u0019\u001a\u0001\u005d\u004e\u004a\u0053\u002a\'\u0019\u004e\u0053\u004a\u004a\u0057\u002b\u0026\u0001\u0001\u001a\'\u004a\u0019\u0036\u0007\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0025\u0009\u0020\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0004\u000e\u0041\u002b\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u001e\u0053\n\u002b\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u005e\u004a\u0006\u0003\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u004a\u0001\u0003\u0007\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u001a\u000e\u003b\u0051\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u004a\u0030\u004e\u002b\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0053\u0026\u002b\u0036\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000e\u0053\u0051\u002b\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0004\u0030\u001b\u0020\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u001e\u001a\u0019\u0042\u004a\u0053\u0019\u004a\u000e\r\'\u000e\u0055\u004a\u001c\u000b\r\u0053\'\u0055\u0030\u004a\u0053\u001e\u000e\u0004\u000b\r\u0030\u001a\u004a\u0019\u000e\u0004\u001a\u0019\u0042\u000b\u002a\u0026\u0030\u000e\u001a\u001e\'\u0025\u0047\'\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u004a\u000b\u004a\u000b\u0004\u004a\u0053\u005e\u0008\u0053\u0026\u004a\u0001\u001a\u000e\u0004\u001a\u0019\u0042\u0026\u0004\u0019\u0004\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0001\u0001\u005d\u000e\r\u0004\u005e\u0026\u002a\u0004\u0019\u0001\u005e\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u0019\u004a\u000e\u0001\u000e\'\u000e\u000b\u001a\u0019\u001e\u0008\u001a\u0004\u004a\u0053\u001e\u001e\u0053\u001a\u004a\u0019\u005e\u0001\u000b\u0053\u004a\u0025\u0026\u004a\u0001\u000e\u0030\'\u0019\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0001\u000e\u0053\u004a\u0001\u0001\u000b\u000e\u004a\u0001\u000e\u004a\u0053\u000e\u004a\u0030\u0019\u004a\u000e\u0026\u0019\u001a\u004d\u004a\u0053\u0001\'\u0030\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0001\u0004\u004a\u004a\u005e\u000b\u000e\u004a\u0001\u000e\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0019\u002a\'\u0004\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u001e\u0053\u001a\u004a\u0019\u005e\u0001\u000b\u0030\u001a\u0001\u000e\u000b\u0001\u005d\u000e\u0008\u005e\u001c\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u0019\u004a\u000e\r\'\u000e\u000e\u004a\u0053\u002a\u001a\u0019\'\u0030\u0007\u000e\u0008\u0004\u0057\u001a\u0030\u0030\u003c\u003d\u003b\u0029\u0051\u003c\u000e\u0008\u0008\u0030\u001c\'\u0053\u0017\u0008\u0019\u000e\'\r\u000e\u003c\u0020\u001a\u0001\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\u0017\u0008\u0019\u000e\'\r\u000e\u003c\u0020\u001a\u0001\u000e\u0019\'\u004d\u001a\u0042\'\u000e\u001a\u0008\u0019\u0010\u001a\u004a\u0055\u0009\u0030\u004a\u0053\u000e\u0006\u001a\'\u0030\u0008\u0042\u0034\u0041\u0026\u001a\u0030\u005e\u004a\u0053\u002c\u0019\'\u004d\u001a\u004f\u001a\u0008\u0019\u0010\u001a\u004a\u0055\u0034\r\u0008\u0019\u000e\u004a\u005b\u000e\u005f\u0034\r\u0053\u004a\'\u000e\u004a\u002c\u005f\u001c\u0026\u000e\u000e\u0008\u0019\u0003\u0019\u004d\u001a\u0053\u0008\u0019\u002a\u004a\u0019\u000e\u0034\u0042\u004a\u000e\u0003\u005b\u000e\u004a\u0053\u0019\'\u0030\u0007\u000e\u0008\u0053\'\u0042\u004a\u0006\u001a\u0053\u004a\r\u000e\u0008\u0053\u0043\u002c\u005f\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u001e\'\u0025\u0047\'\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u004a\u000b\u004a\u000b\u0004\u004a\u0053\u005e\u0008\u0053\u0026\u004a\u0001\u001a\u000e\u001e\'\u0025\u0047\'\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u004a\u000b\u004a\u000b\u0004\u004a\u0053\u005e\u0008\u0053\u0026\u004a\u0001\u001a\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\'\u0026\u000e\u005d\'\u0026\u000e\u005d\u0034\r\u0026\u0053\u0053\u004a\u0019\u000e\u0036\u0001\u004a\u0053\u0045\u0045\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u001e\u0053\'\u0042\u002a\u004a\u0019\u000e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u000e\u0008\u0008\u0030\u001c\'\u0053\u0019\'\u004d\u001a\u0042\'\u000e\u001a\u0008\u0019\u0010\u001a\u004a\u0055\u002a\u004a\u0019\u0026\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0007\u004a\u0019\u005e\u003c\n\u004a\u004a\u005e\u001c\'\r\u0057\u003b\u003c\u0055\u0008\u0026\u0030\u005e\u003c\u0030\u0008\u004d\u004a\u003c\u000e\u0008\u003c\u005d\u004a\'\u0053\u003c\u001e\u0053\u0008\u002a\u003c\u0043\u0008\u0026\u003c\'\u0019\u005e\u003c\u001a\u001e\u003c\u0043\u0008\u0026\u003c\u005d\'\u004d\u004a\u003c\'\u0019\u0043\u003c\u001a\u0001\u0001\u0026\u004a\u003c\u0055\u001a\u0030\u0030\u003c\u0001\u0008\u0030\u004d\u004a\u003c\u001a\u000e\u003c\'\u0001\u003c\u001e\'\u0001\u000e\u003c\'\u0001\u003c\u001a\u003c\r\'\u0019\u0034\u003c\u0015\u0053\u001a\u000e\u004a\u003c\u005d\u004a\u0053\u004a\u003c\u0043\u0008\u0026\u0053\u003c\u001a\u005e\u004a\'\u0001\"\u003c\u0001\u0026\u0042\u0042\u004a\u0001\u000e\u001a\u0008\u0019\u0001\u003c\u0008\u0053\u003c\u001c\u0026\u0042\u003c\u0053\u004a\u0004\u0008\u0053\u000e\u0001\u0034\u0015\u0053\u001a\u000e\u004a\u003c\u0043\u0008\u0026\u0053\u003c\u001e\u004a\u004a\u005e\u001c\'\r\u0057\u003c\u005d\u004a\u0053\u004a\u003b\u0019\r\u0030\u0026\u005e\u004a\u003c\u0001\r\u0053\u004a\u004a\u0019\u0001\u005d\u0008\u000e\u0051\u0008\u0026\r\u005d\u003c\u0051\u0008\u003c\u001b\u0053\u004a\u004d\u001a\u004a\u0055\u003c\'\u0019\u005e\u003c\u0003\u005e\u001a\u000e\u001b\u0030\u004a\'\u0001\u004a\u003c\u0055\u0053\u001a\u000e\u004a\u003c\u0043\u0008\u0026\u0053",
"\u003c\u002a\u004a\u0001\u0001\'\u0042\u004a\u003c\u001e\u001a\u0053\u0001\u000e\u001a\u000e\u004a\u002a\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u003c\u0001\u004a\u000e\u003c\'\u0004\u000b\u0019\'\u002a\u004a\u0001\u0023\u0035\u0047\u0008\u0035\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u003c\u0001\u004a\u000e\u003c\'\u0004\u000b\u0019\'\u002a\u004a\u0001\u0023\u0035\u0004\u0008\u0035\u004e\u004a\u0019\u004a\u0053\'\u000e\u004a\u003c\u0041\'\r\u0057\u0026\u0004\u003c\n\u001a\u0030\u004a\u002b\u004a\u0001\u000e\u0008\u0053\u004a\u003c\u001e\u0053\u0008\u002a\u003c\n\u001a\u0030\u004a\u0017\u005d\u0008\u0008\u0001\u004a\u003c\u001a\u000e\u004a\u002a\u003c\u000e\u0008\u003c\u0001\u005d\'\u0053\u004a\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000e\u0008\u0008\u0030\u001c\'\u0053\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u001a\u0019\u000e\u004a\u0019\u000e\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0007\u0003\u0029\u0006\u000e\u004a\u005b\u000e\u0040\u0004\u0030\'\u001a\u0019\u0029\u004a\u000e\u0055\u0008\u0053\u0057\u003c\u002f\'\u0019\'\u0042\u004a\u0053\u003c\u003d\u003c\u001b\u0053\u0008\u003c\u0029\u004a\u000e\u0055\u0008\u0053\u0057\u003c\u0051\u0008\u0008\u0030\u0001\u003c\'\u0019\u005e\u003c\u0036\u000e\u001a\u0030\u001a\u000e\u001a\u004a\u0001\u0016\u0016\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0004\u0030\'\u0043\u0034\u0042\u0008\u0008\u0042\u0030\u004a\u0034\r\u0008\u002a\u0040\u0001\u000e\u0008\u0053\u004a\u0040\'\u0004\u0004\u0001\u0040\u005e\u004a\u000e\'\u001a\u0030\u0001\u0032\u001a\u005e\u0023\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u001a\u0019\u000e\u004a\u0019\u000e\u0034\u004a\u005b\u000e\u0053\'\u0034\u0007\u0036\u0041\u0049\u0003\u0017\u0051\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u001a\u0019\u000e\u004a\u0019\u000e\u0034\u004a\u005b\u000e\u0053\'\u0034\u0051\u0003\u005a\u0051\u0029\u004a\u000e\u0055\u0008\u0053\u0057\u003c\u002f\'\u0019\'\u0042\u004a\u0053\u0036\u003c\u0057\u0030\u001a\u0057\u0026\'\u003c\u001c\u0026\u000e\u0008\u0019\u001a\u003c\u000e\u004a\u003c\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u003c\u0004\u004a\u0053\u003c\u0001\u005d\u0004\u004a\u0053\u0019\u005e\'\u0053\u0047\u004a\u0001\u005d\'\u0053\u004a\u000b\r\u0030\u001a\r\u0057\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u000b\u0001\u005d\'\u0053\u004a\u000b\'\u0004\u0004\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u005e\u001a\'\u0030\u0008\u0042\u000b\u0004\u001a\u0019\u0042\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u005e\u001a\'\u0030\u0008\u0042\u000b\u0004\u001a\u0019\u0042\u000b\u002a\u0026\u0030\u000e\u001a\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u005e\u001a\'\u0030\u0008\u0042\u000b\u000e\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u005e\u001a\'\u0030\u0008\u0042\u000b\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u005e\u001a\'\u0030\u0008\u0042\u000b\u005e\u0019\u0001\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u005e\u001a\'\u0030\u0008\u0042\u000b\u0019\u0001\u005e\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u005e\u001a\'\u0030\u0008\u0042\u000b\u0019\u0001\u005e\u000b\u0053\u004a\u0042\u001a\u0001\u000e\u004a\u0053\u000b\u0001\u004a\u0053\u004d\u001a\r\u004a\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u001a\r\u002a\u0004\u000b\u001e\u0030\u0008\u0008\u005e\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u000e\r\u0004\u000b\u001e\u0030\u0008\u0008\u005e\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u0026\u005e\u0004\u000b\u001e\u0030\u0008\u0008\u005e\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u005d\u000e\u000e\u0004\u000b\u001e\u0030\u0008\u0008\u005e\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u001a\u0004\u004a\u0053\u001e\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u0019\u004a\u000e\r\'\u000e\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u005e\u001c\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u0019\u004a\u000e\r\'\u000e\u000e\u004a\u0053\u002a\u001a\u0019\'\u0030\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u0001\u0001\u0030\u000b\u000e\u0030\u0001\u000b\'\u0019\'\u0030\u0043\u0013\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0006\u001a\u0001\r\u0008\u0019\u0019\u004a\r\u000e\u005e\u001c\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u000e\u004a\u0030\u0019\u004a\u000e\u005d\u0008\u0001\u000e\u001a\u000b\u005e\u001a\'\u0030\u0008\u0042\u0004\u0008\u0053\u000e\'\u000b\u005e\u001a\'\u0030\u0008\u0042\u0006\u001a\u0001\r\u0008\u0019\u0019\u004a\r\u000e\u005e\u001c\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u0001\u0001\u005d\u005d\u0008\u0001\u000e\u001a\u000b\u005e\u001a\'\u0030\u0008\u0042\u0004\u0008\u0053\u000e\'\u000b\u005e\u001a\'\u0030\u0008\u0042\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u005e\u001a\'\u0030\u0008\u0042\u000b\u001e\u001a\u0019\u0042\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u0053\u004a\u0042\u0026\u0030\'\u0053\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u001a\u0019\u000e\u004a\u0019\u0001\u004a\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u0025\u0026\u001a\r\u0057\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u0004\u001a\u0019\u0042\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u0025\u0026\u001a\r\u0057\u000b\u0004\u0030\u0026\u0001\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u0025\u0026\u001a\r\u0057\u000b\u0004\u0030\u0026\u0001\u000b\u000e\u0053\'\r\u004a\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u0053\u004a\u0042\u0026\u0030\'\u0053\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u001a\u0019\u000e\u004a\u0019\u0001\u004a\u000b\u0004\u0030\u0026\u0001\u000b\u0026\u005e\u0004\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u001a\u0019\u000e\u004a\u0019\u0001\u004a\u000b\'\u0030\u0030\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u001a\u0019\u000e\u004a\u0019\u0001\u004a\u000b\u0004\u001a\u0019\u0042\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u0001\u0030\u0008\u0055\u000b\u0053\u0008\u0008\u000e\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u0001\u0030\u0008\u0055\u000b\u0019\u0008\u0019\u000b\u0053\u0008\u0008\u000e\u0035\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u001a\u0004\u000b\u0008\u0053\u000b\u005d\u0008\u0001\u000e\u0019\'\u002a\u004a\u005f\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u002a\'\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\r\u0026\u0001\u000e\u0008\u002a\u0035\u0029\u002a\'\u0004\u003c\r\u0008\u002a\u002a\'\u0019\u005e\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u000e\r\u0004\u005e\u0026\u002a\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u000e\r\u0004\u005e\u0026\u002a\u0004\u000b\r\'\u0004\u000e\u0026\u0053\u004a\u000b\u0001\'\u004d\u004a\u000b\u0004\r\'\u0004\u000b\'\u0019\u0043\u0035\u000e\r\u0004\u005e\u0026\u002a\u0004\u003c\r\u0008\u002a\u002a\'\u0019\u005e\u001b\u0030\u004a\'\u0001\u004a\u003c\u0001\u000e\u0008\u0004\u003c\u000e\u005d\u004a\u003c\u0053\u0026\u0019\u0019\u001a\u0019\u0042\u003c\u0004\u0053\u0008\r\u004a\u0001\u0001\u003c\u001e\u001a\u0053\u0001\u000e\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u000e\r\u0004\u005e\u0026\u002a\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u000e\r\u0004\u005e\u0026\u002a\u0004\u000b\r\'\u0004\u000e\u0026\u0053\u004a\u000b\u0001\'\u004d\u004a\u000b\u0004\r\'\u0004\u000b\u0001\u0004\u004a\r\u001a\u001e\u001a\r\u0035\u000e\r\u0004\u005e\u0026\u002a\u0004\u003c\r\u0008\u002a\u002a\'\u0019\u005e\u001b\u0030\u004a\'\u0001\u004a\u003c\u0001\u000e\u0008\u0004\u003c\u000e\u005d\u004a\u003c\u0053\u0026\u0019\u0019\u001a\u0019\u0042\u003c\u0004\u0053\u0008\r\u004a\u0001\u0001\u003c\u001e\u001a\u0053\u0001\u000e\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u000e\r\u0004\u005e\u0026\u002a\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\u000e\r\u0004\u005e\u0026\u002a\u0004\u000b\r\'\u0004\u000e\u0026\u0053\u004a\u000b\u0030\u0008\u0042\u000b\'\u0019\u0043\u0035\u000e\r\u0004\u005e\u0026\u002a\u0004\u003c\r\u0008\u002a\u002a\'\u0019\u005e\u001b\u0030\u004a\'\u0001\u004a\u003c\u0001\u000e\u0008\u0004\u003c\u000e\u005d\u004a\u003c\u0053\u0026\u0019\u0019\u001a\u0019\u0042\u003c\u0004\u0053\u0008\r\u004a\u0001\u0001\u003c\u001e\u001a\u0053\u0001\u000e\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u000e\r\u0004\u005e\u0026\u002a\u0004\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\r\u0026\u0001\u000e\u0008\u002a\u0035\u000e\r\u0004\u005e\u0026\u002a\u0004\u003c\r\u0008\u002a\u002a\'\u0019\u005e\u001b\u0030\u004a\'\u0001\u004a\u003c\u0001\u000e\u0008\u0004\u003c\u000e\u005d\u004a\u003c\u0053\u0026\u0019\u0019\u001a\u0019\u0042\u003c\u0004\u0053\u0008\r\u004a\u0001\u0001\u003c\u001e\u001a\u0053\u0001\u000e\u005e\u001c\u0026\u0004\u005e\'\u000e\u004a\u003c\u0019\u0004\u001a\u0019\u0042\u003c\u0001\u004a\u000e\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0023\u0035\r\u0026\u0001\u000e\u0008\u002a\u0035\u0029\u0004\u001a\u0019\u0042\u003c\r\u0008\u002a\u002a\'\u0019\u005e\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0019\u0004\u001a\u0019\u0042\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0029\u0004\u001a\u0019\u0042\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0004\u001a\u0019\u0042\u0045\u0045\u0034\u0004\u001a\u0019\u0042\u000b\u0001\u005d\'\u0053\u004a\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0004\u001a\u0019\u0042\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u001b\u001a\u0019\u0042\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0001\u0004\u004a\u004a\u005e\u000b\u000e\u004a\u0001\u000e\u0045\u0045\u0034\u0001\u0004\u004a\u004a\u005e\u000b\u000e\u004a\u0001\u000e\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0001\u0004\u004a\u004a\u005e\u000b\u000e\u004a\u0001\u000e\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0007\u0004\u004a\u004a\u005e\u003c\u0051\u004a\u0001\u000e\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u001a\u0004\u004a\u0053\u001e\u0045\u0045\u0034\u001a\u0004\u004a\u0053\u001e\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u001a\u0004\u004a\u0053\u001e\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u001a\u001b\u004a\u0053\u001e\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u000e\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u000b\u002a\'\u001a\u0019\u0045\u0045\u0034\u000e\u0053\'\r\u004a\u0053\u004f\u000e\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u000e\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0051\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0055\u005d\u0008\u001a\u0001\u0045\u0045\u0034\u0055\u005d\u0008\u001a\u0001\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0055\u005d\u0008\u001a\u0001\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0015\u005d\u0008\u003b\u0001\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0045\u0045\u0034\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u001b\u0008\u0053\u000e\u0001\u003c\u0007\r\'\u0019\u0019\u004a\u0053\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0045\u0045\u0034\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0030\'\u0019\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0045\u0045\u0034\u0030\'\u0019\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0030\'\u0019\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0020\u0009\u0029\u003c\u0007\r\'\u0019\u0019\u004a\u0053\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0026\u0004\u0019\u0004\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0036\u001b\u0029\u001b\u0040\u0006\u0020\u0029\u0009\u003c\u0007\r\'\u0019\u0019\u004a\u0053\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0019\u0001\u005e\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0045\u0045\u0034\u0019\u0001\u005e\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0019\u0001\u005e\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0029\u004a\u000e\u0055\u0008\u0053\u0057\u003c\u0007\u004a\u0053\u004d\u001a\r\u004a\u003c\u0006\u001a\u0001\r\u0008\u004d\u004a\u0053\u0043\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0019\u002a\'\u0004\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0029\u002a\'\u0004\u003c\u0007\r\'\u0019\u0019\u004a\u0053\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0019\u004a\u000e\r\'\u000e\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0029\u004a\u000e\r\'\u000e\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0019\u004a\u000e\u0001\u000e\'\u000e\u0045\u0045\u0034\u0019\u004a\u000e\u0001\u000e\'\u000e\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0019\u004a\u000e\u0001\u000e\'\u000e\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0029\u004a\u000e\u0007\u000e\'\u000e\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\'\u0053\u0004\u000b\u0019\u005e\u000b\r\'\r\u005d\u004a\u0045\u0045\u0034\'\u0053\u0004\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\'\u0053\u0004\u000b\u0019\u005e\u000b\r\'\r\u005d\u004a\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0009\u002b\u001b\u0040\u0029\u0006\u003c\u0017\'\r\u005d\u004a\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0001\u0001\u0030\u000b\u000e\u0030\u0001\u000b\'\u0019\'\u0030\u0043\u0013\u004a\u0053\u0045\u0045\u0034\u0001\u0001\u0030\u000b\u000e\u0030\u0001\u000b\'\u0019\'\u0030\u0043\u0013\u004a\u0053\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u0001\u0001\u0030\u000b\u000e\u0030\u0001\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0007\u0007\u0020\u0040\u0051\u0020\u0007\u003c\u0009\u0019\'\u0030\u0043\u0013\u004a\u0053\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u005e\u0019\u0001\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u0045\u0045\u0034\u005e\u0019\u0001\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u005e\u0019\u0001\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u0006\u0029\u0007\u003c\u0020\u0008\u0008\u0057\u0026\u0004\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u001a\u0004\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u0045\u0045\u0034\u001a\u0004\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u000b\u0030\u0008\u0042\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\u0051\u005d\u004a\u003c\u005e\'\u000e\'\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u001a\u0004\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u000b\u0053\u004a\u0001\u0026\u0030\u000e\u0001\u003b\u001b\u003c\u0020\u0008\u0008\u0057\u0026\u0004\u003c\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u001b\u0030\u004a\'\u0001\u004a\u003c\u0001\u000e\u0008\u0004\u003c\u000e\u005d\u004a\u003c\u0053\u0026\u0019\u0019\u001a\u0019\u0042\u003c\u0004\u0053\u0008\r\u004a\u0001\u0001\u003c\u001e\u001a\u0053\u0001\u000e\u0003\u0019\u004d\u001a\u0053\u0008\u0019\u002a\u004a\u0019\u000e\u0034\u0042\u004a\u000e\u0003\u005b\u000e\u004a\u0053\u0019\'\u0030\u0007\u000e\u0008\u0053\'\u0042\u004a\u0006\u001a\u0053\u004a\r\u000e\u0008\u0053\u0043\u002c\u005f\u0029\u004a\u000e\u0055\u0008\u0053\u0057\u002f\'\u0019\'\u0042\u004a\u0053\u000e\r\u0004\u005e\u0026\u002a\u0004\u000b\u001e\u001a\u0030\u004a\u0001\u001b\u0030\u004a\'\u0001\u004a\u003c\u0001\u000e\u0008\u0004\u003c\u000e\u005d\u004a\u003c\u0053\u0026\u0019\u0019\u001a\u0019\u0042\u003c\u0004\u0053\u0008\r\u004a\u0001\u0001\u003c\u001e\u001a\u0053\u0001\u000e\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\'\u0019\u005e\u0053\u0008\u001a\u005e\u005b\u0034\'\u0004\u0004\r\u0008\u002a\u0004\'\u000e\u0034\u0055\u001a\u005e\u0042\u004a\u000e\u0034\u0007\u004a\'\u0053\r\u005d\u0010\u001a\u004a\u0055\u0007\u004a\'\u0053\r\u005d\u003c\u0034\u0034\u0034\'\u0026\u000e\u005d\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0007\u0051\u000f\u001b\u000b\u0007\u0003\u002b\u0010\u003b\u0017\u0003\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0007\u0051\u000f\u001b\u000b\u0007\u0003\u002b\u0010\u003b\u0017\u0003\u0051\u005d\u001a\u0001\u003c\u0055\u001a\u0030\u0030\u003c\u0004\u004a\u0053\u002a\'\u0019\u004a\u0019\u000e\u0030\u0043\u003c\u005e\u004a\u0030\u004a\u000e\u004a\u003c\u0043\u0008\u0026\u0053\u003c\u0026\u0001\u004a\u0053\u003c\u0004\u0053\u0008\u001e\u001a\u0030\u004a\"\u003c\u001a\u0019\r\u0030\u0026\u005e\u001a\u0019\u0042\u003c\u0043\u0008\u0026\u0053\u003c\u001e\u0053\u001a\u004a\u0019\u005e\u0001\u003c\'\u0019\u005e\u003c\u004a\u004d\u004a\u0053\u0043\u000e\u005d\u001a\u0019\u0042\u003c\u004a\u0030\u0001\u004a\u0003\u005a\u0003\u0017\u0036\u0051\u003b\u0029\u004e\u003c\u0015\u004a\u001c\u003c\u0017\u0053\'\u0055\u0030\u004a\u0053\u0016\u0016\u003b\u0019\u000e\u004a\u0053\u0019\'\u0030\u003c\u0020\u001a\u0019\u0057\u0001\u0003\u005b\u000e\u004a\u0053\u0019\'\u0030\u003c\u0020\u001a\u0019\u0057\u0001\n\u001a\u0030\u004a\u0035\u0001\u003c\u0020\u001a\u0019\u0057\u0001\u003b\u002a\'\u0042\u004a\u0035\u0001\u003c\u0020\u001a\u0019\u0057\u0001\u0007\r\u0053\u001a\u0004\u000e\u0035\u0001\u003c\u0020\u001a\u0019\u0057\u0001\u0017\u005d\u0008\u0008\u0001\u004a\u003c\u001a\u000e\u004a\u002a\u003c\u000e\u0008\u003c\u0001\u005d\'\u0053\u004a\u0007\u005d\'\u0053\u004a\u003c\u001b\u0017\u0009\u001b\u003c\u001e\u001a\u0030\u004a\u0007\u005d\'\u0053\u004a\u003c\u0051\u0017\u001b\u0006\u0026\u002a\u0004\u003c\u0020\u000f\u004e\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u0026\u0019\u0057\u0019\u0008\u0055\u0019\u005f\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u0026\u0019\u0057\u0019\u0008\u0055\u0019\u005f\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u0026\u0019\u0057\u0019\u0008\u0055\u0019\u005f\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u0026\u0019\u0057\u0019\u0008\u0055\u0019\u005f\u0055\u001a\u001e\u001a\u002a\u0008\u001c\u001a\u0030\u004a\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u0026\u0019\u0057\u0019\u0008\u0055\u0019\u005f\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u0026\u0019\u0057\u0019\u0008\u0055\u0019\u005f\u0004\u0000\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u001e\u001a\u0019\u0042\u004a\u0053\u0019\u004a\u000e\r\'\u000e\u0004\u001a\u0019\u0042\u000b\u002a\u0026\u0030\u000e\u001a\u0004\u001a\u0019\u0042\u0026\u0004\u0019\u0004\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0001\u0001\u005d\u0019\u0001\u005e\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u0019\u004a\u000e\u0001\u000e\'\u000e\u000b\u001a\u0019\u001e\u0008\u001a\u0004\u004a\u0053\u001e\u0030\'\u0019\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0001\u000e\u0053\u004a\u0001\u0001\u000b\u000e\u004a\u0001\u000e\u004a\u0053\u000e\u004a\u0030\u0019\u004a\u000e\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0001\u0004\u004a\u004a\u005e\u000b\u000e\u004a\u0001\u000e\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u005e\u001c\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u0019\u004a\u000e\r\'\u000e\u000e\u004a\u0053\u002a\u001a\u0019\'\u0030\u0057\u001a\u0030\u0030\u003c\u003d\u003b\u0029\u0051\u003c\u0019\'\u004d\u001a\u0042\'\u000e\u001a\u0008\u0019\u0010\u001a\u004a\u0055\u0019\'\u004d\u001a\u0042\'\u000e\u001a\u0008\u0019\u0010\u001a\u004a\u0055\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u001e\u0053\'\u0042\u002a\u004a\u0019\u000e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u000e\u0008\u0008\u0030\u001c\'\u0053\u005e\u001c\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u0008\u0004\u0001\u001a\u0008\u0019\u004a\u000e\u0004\u0008\u0004\u001a\u0019\u0042\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0004\u001a\u0019\u0042\u0004\u001a\u0019\u0042\u0004\u001a\u0019\u0042\u0004\u001a\u0019\u0042\u000e\u0008\u0008\u0030\u001c\'\u0053\u000e\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u000e\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u000e\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u000e\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u000e\u0053\'\r\u004a\u0053\u0008\u0026\u000e\u004a\u000e\u0008\u0008\u0030\u001c\'\u0053\u0055\u005d\u0008\u001a\u0001\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0055\u005d\u0008\u001a\u0001\u0055\u005d\u0008\u001a\u0001\u0055\u005d\u0008\u001a\u0001\u0055\u005d\u0008\u001a\u0001\u000e\u0008\u0008\u0030\u001c\'\u0053\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0004\u0008\u0053\u000e\u0001\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u0030\'\u0019\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0030\'\u0019\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0030\'\u0019\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0030\'\u0019\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0030\'\u0019\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u0026\u0001\u004a\u0053\u000b\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000e\u0008\u0008\u0030\u001c\'\u0053\u001a\u0004\u000b\r\'\u0030\r\u0026\u0030\'\u000e\u0008\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u001a\u0004\u000b\r\'\u0030\r\u0026\u0030\'\u000e\u0008\u0053\u001a\u0004\u000b\r\'\u0030\r\u0026\u0030\'\u000e\u0008\u0053\u001a\u0004\u000b\r\'\u0030\r\u0026\u0030\'\u000e\u0008\u0053\u001a\u0004\u000b\r\'\u0030\r\u0026\u0030\'\u000e\u0008\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u0055\'\u0057\u004a\u000b\u0008\u0019\u000b\u0030\'\u0019\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0055\'\u0057\u004a\u000b\u0008\u0019\u000b\u0030\'\u0019\u0055\'\u0057\u004a\u000b\u0008\u0019\u000b\u0030\'\u0019\u0055\'\u0057\u004a\u000b\u0008\u0019\u000b\u0030\'\u0019\u0055\'\u0057\u004a\u000b\u0008\u0019\u000b\u0030\'\u0019\u000e\u0008\u0008\u0030\u001c\'\u0053\u005e\u0019\u0001\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u005e\u0019\u0001\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u005e\u0019\u0001\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u005e\u0019\u0001\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u005e\u0019\u0001\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u000e\u0008\u0008\u0030\u001c\'\u0053\u0001\u000e\'\u000e\u0026\u0001\u000b\u000e\u0053\'\r\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0001\u000e\'\u000e\u0026\u0001\u000b\u000e\u0053\'\r\u004a\u0053\u0001\u000e\'\u000e\u0026\u0001\u000b\u000e\u0053\'\r\u004a\u0053\u0001\u000e\'\u000e\u0026\u0001\u000b\u000e\u0053\'\r\u004a\u0053\u0001\u000e\'\u000e\u0026\u0001\u000b\u000e\u0053\'\r\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001a\u0004\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u001a\u0004\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u001a\u0004\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u001a\u0004\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u001a\u0004\u000b\u0030\u0008\u0008\u0057\u0026\u0004\u000e\u0008\u0008\u0030\u001c\'\u0053\u0001\u0004\u004a\u004a\u005e\u000b\u000e\u004a\u0001\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0001\u0004\u004a\u004a\u005e\u000b\u000e\u004a\u0001\u000e\u0001\u0004\u004a\u004a\u005e\u000b\u000e\u004a\u0001\u000e\u0001\u0004\u004a\u004a\u005e\u000b\u000e\u004a\u0001\u000e\u0001\u0004\u004a\u004a\u005e\u000b\u000e\u004a\u0001\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\u0026\u0004\u0019\u0004\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0026\u0004\u0019\u0004\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0026\u0004\u0019\u0004\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0026\u0004\u0019\u0004\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0026\u0004\u0019\u0004\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u0019\u0001\u005e\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0019\u0001\u005e\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0019\u0001\u005e\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0019\u0001\u005e\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0019\u0001\u005e\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u005e\u001c\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0004\u0008\u001a\u000e\u004a\u002a\u0021\u001a\u000e\u004a\u002a\u0021\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0055\u001a\u001e\u001a\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001a\u0004\u004a\u0053\u001e\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u001a\u0004\u004a\u0053\u001e\u001a\u0004\u004a\u0053\u001e\u001a\u0004\u004a\u0053\u001e\u001a\u0004\u004a\u0053\u001e\u000e\u0008\u0008\u0030\u001c\'\u0053\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0001\u000e\u0053\u004a\u0001\u0001\u000b\u000e\u004a\u0001\u000e\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0001\u000e\u0053\u004a\u0001\u0001\u000b\u000e\u004a\u0001\u000e\u004a\u0053\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0001\u000e\u0053\u004a\u0001\u0001\u000b\u000e\u004a\u0001\u000e\u004a\u0053\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0001\u000e\u0053\u004a\u0001\u0001\u000b\u000e\u004a\u0001\u000e\u004a\u0053\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0001\u000e\u0053\u004a\u0001\u0001\u000b\u000e\u004a\u0001\u000e\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u0001\u0001\u0030\u000b\u000e\u0030\u0001\u000b\'\u0019\'\u0030\u0043\u0013\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0001\u0001\u0030\u000b\u000e\u0030\u0001\u000b\'\u0019\'\u0030\u0043\u0013\u004a\u0053\u0001\u0001\u0030\u000b\u000e\u0030\u0001\u000b\'\u0019\'\u0030\u0043\u0013\u004a\u0053\u0001\u0001\u0030\u000b\u000e\u0030\u0001\u000b\'\u0019\'\u0030\u0043\u0013\u004a\u0053\u0001\u0001\u0030\u000b\u000e\u0030\u0001\u000b\'\u0019\'\u0030\u0043\u0013\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u0019\u004a\u000e\u0001\u000e\'\u000e\u000b\u001a\u0019\u001e\u0008\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0019\u004a\u000e\u0001\u000e\'\u000e\u000b\u001a\u0019\u001e\u0008\u0019\u004a\u000e\u0001\u000e\'\u000e\u000b\u001a\u0019\u001e\u0008\u0019\u004a\u000e\u0001\u000e\'\u000e\u000b\u001a\u0019\u001e\u0008\u0019\u004a\u000e\u0001\u000e\'\u000e\u000b\u001a\u0019\u001e\u0008\u000e\u0008\u0008\u0030\u001c\'\u0053\'\u0053\u0004\u000b\u0019\u005e\u000b\r\'\r\u005d\u004a\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\'\u0053\u0004\u000b\u0019\u005e\u000b\r\'\r\u005d\u004a\'\u0053\u0004\u000b\u0019\u005e\u000b\r\'\r\u005d\u004a\'\u0053\u0004\u000b\u0019\u005e\u000b\r\'\r\u005d\u004a\'\u0053\u0004\u000b\u0019\u005e\u000b\r\'\r\u005d\u004a\u000e\u0008\u0008\u0030\u001c\'\u0053\u000e\u004a\u0030\u0019\u004a\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u000e\u004a\u0030\u0019\u004a\u000e\u000e\u004a\u0030\u0019\u004a\u000e\u000e\u004a\u0030\u0019\u004a\u000e\u000e\u004a\u0030\u0019\u004a\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u001a\u0019\u0042\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u001e\u001a\u0019\u0042\u004a\u0053\u001e\u001a\u0019\u0042\u004a\u0053\u001e\u001a\u0019\u0042\u004a\u0053\u001e\u001a\u0019\u0042\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u0004\u001a\u0019\u0042\u000b\u002a\u0026\u0030\u000e\u001a\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0004\u001a\u0019\u0042\u000b\u002a\u0026\u0030\u000e\u001a\u0004\u001a\u0019\u0042\u000b\u002a\u0026\u0030\u000e\u001a\u0004\u001a\u0019\u0042\u000b\u002a\u0026\u0030\u000e\u001a\u0004\u001a\u0019\u0042\u000b\u002a\u0026\u0030\u000e\u001a\u000e\u0008\u0008\u0030\u001c\'\u0053\u0019\u004a\u000e\r\'\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0019\u004a\u000e\r\'\u000e\u0019\u004a\u000e\r\'\u000e\u0019\u004a\u000e\r\'\u000e\u0019\u004a\u000e\r\'\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\u0001\u0001\u005d\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0001\u0001\u005d\u0001\u0001\u005d\u0001\u0001\u005d\u0001\u0001\u005d\u000e\u0008\u0008\u0030\u001c\'\u0053\u0026\u0019\u001a\u004d\u004a\u0053\u0001\'\u0030\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0026\u0019\u001a\u004d\u004a\u0053\u0001\'\u0030\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0026\u0019\u001a\u004d\u004a\u0053\u0001\'\u0030\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0026\u0019\u001a\u004d\u004a\u0053\u0001\'\u0030\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u0026\u0019\u001a\u004d\u004a\u0053\u0001\'\u0030\u000b\u0001\r\'\u0019\u0019\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u0055\u004a\u001c\u000b\r\u0053\'\u0055\u0030\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0055\u004a\u001c\u000b\r\u0053\'\u0055\u0030\u004a\u0053\u0055\u004a\u001c\u000b\r\u0053\'\u0055\u0030\u004a\u0053\u0055\u004a\u001c\u000b\r\u0053\'\u0055\u0030\u004a\u0053\u0055\u004a\u001c\u000b\r\u0053\'\u0055\u0030\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u000e\u0004\u000b\r\u0030\u001a\u004a\u0019\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u001e\u000e\u0004\u000b\r\u0030\u001a\u004a\u0019\u000e\u001e\u000e\u0004\u000b\r\u0030\u001a\u004a\u0019\u000e\u001e\u000e\u0004\u000b\r\u0030\u001a\u004a\u0019\u000e\u001e\u000e\u0004\u000b\r\u0030\u001a\u004a\u0019\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\u0019\u002a\'\u0004\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0019\u002a\'\u0004\u0019\u002a\'\u0004\u0019\u002a\'\u0004\u0019\u002a\'\u0004\u000e\u0008\u0008\u0030\u001c\'\u0053\u000e\r\u0004\u005e\u0026\u002a\u0004\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u000e\r\u0004\u005e\u0026\u002a\u0004\u000e\r\u0004\u005e\u0026\u002a\u0004\u000e\r\u0004\u005e\u0026\u002a\u0004\u000e\r\u0004\u005e\u0026\u002a\u0004\u000e\u0008\u0008\u0030\u001c\'\u0053\u0019\u0004\u001a\u0019\u0042\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c",
"\u005f\u0019\u0004\u001a\u0019\u0042\u0019\u0004\u001a\u0019\u0042\u0019\u0004\u001a\u0019\u0042\u0019\u0004\u001a\u0019\u0042\u000e\u0008\u0008\u0030\u001c\'\u0053\u0047\u002a\u005e\u0019\u0001\u000b\u001c\u0008\u0019\u0047\u0008\u0026\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0047\u002a\u005e\u0019\u0001\u000b\u001c\u0008\u0019\u0047\u0008\u0026\u0053\u0047\u002a\u005e\u0019\u0001\u000b\u001c\u0008\u0019\u0047\u0008\u0026\u0053\u0047\u002a\u005e\u0019\u0001\u000b\u001c\u0008\u0019\u0047\u0008\u0026\u0053\u0047\u002a\u005e\u0019\u0001\u000b\u001c\u0008\u0019\u0047\u0008\u0026\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u0055\u001a\u001e\u001a\u000b\u0004\'\u0001\u0001\u0055\u0008\u0053\u005e\u000b\u0053\u004a\r\u0008\u004d\u004a\u0053\u0043\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u0055\u001a\u001e\u001a\u000b\u0004\'\u0001\u0001\u0055\u0008\u0053\u005e\u000b\u0053\u004a\r\u0008\u004d\u004a\u0053\u0043\u0055\u001a\u001e\u001a\u000b\u0004\'\u0001\u0001\u0055\u0008\u0053\u005e\u000b\u0053\u004a\r\u0008\u004d\u004a\u0053\u0043\u0055\u001a\u001e\u001a\u000b\u0004\'\u0001\u0001\u0055\u0008\u0053\u005e\u000b\u0053\u004a\r\u0008\u004d\u004a\u0053\u0043\u0055\u001a\u001e\u001a\u000b\u0004\'\u0001\u0001\u0055\u0008\u0053\u005e\u000b\u0053\u004a\r\u0008\u004d\u004a\u0053\u0043\u000e\u0008\u0008\u0030\u001c\'\u0053\'\u0026\u000e\u005d\'\u0026\u000e\u005d\'\u0026\u000e\u005d\u0034\r\u0026\u0053\u0053\u004a\u0019\u000e\u0036\u0001\u004a\u0053\u0045\u0045\u001e\'\u0025\u0047\'\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u004a\u000b\u004a\u000b\u0004\u004a\u0053\u005e\u0008\u0053\u0026\u004a\u0001\u001a\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\'\u0026\u000e\u005d\'\u0026\u000e\u005d\u0034\r\u0026\u0053\u0053\u004a\u0019\u000e\u0036\u0001\u004a\u0053\u0045\u0045\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u001e\'\u0025\u0047\'\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u004a\u000b\u004a\u000b\u0004\u004a\u0053\u005e\u0008\u0053\u0026\u004a\u0001\u001a\u000e\u001e\'\u0025\u0047\'\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u004a\u000b\u004a\u000b\u0004\u004a\u0053\u005e\u0008\u0053\u0026\u004a\u0001\u001a\u000e\u001e\'\u0025\u0047\'\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u004a\u000b\u004a\u000b\u0004\u004a\u0053\u005e\u0008\u0053\u0026\u004a\u0001\u001a\u000e\u001e\'\u0025\u0047\'\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u004a\u000b\u004a\u000b\u0004\u004a\u0053\u005e\u0008\u0053\u0026\u004a\u0001\u001a\u000e\u000e\u0008\u0008\u0030\u001c\'\u0053\'\u0026\u000e\u005d\'\u0026\u000e\u005d\u0034\r\u0026\u0053\u0053\u004a\u0019\u000e\u0036\u0001\u004a\u0053\u0045\u0045\r\u0008\u0019\u0019\u004a\r\u000e\u000b\u0055\u001a\u000e\u005d\u000b\u001e\u0053\u001a\u004a\u0019\u005e\u0001\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\r\u0008\u0019\u0019\u004a\r\u000e\u000b\u0055\u001a\u000e\u005d\u000b\u001e\u0053\u001a\u004a\u0019\u005e\u0001\r\u0008\u0019\u0019\u004a\r\u000e\u000b\u0055\u001a\u000e\u005d\u000b\u001e\u0053\u001a\u004a\u0019\u005e\u0001\r\u0008\u0019\u0019\u004a\r\u000e\u000b\u0055\u001a\u000e\u005d\u000b\u001e\u0053\u001a\u004a\u0019\u005e\u0001\r\u0008\u0019\u0019\u004a\r\u000e\u000b\u0055\u001a\u000e\u005d\u000b\u001e\u0053\u001a\u004a\u0019\u005e\u0001\u000e\u0008\u0008\u0030\u001c\'\u0053\u005e\u0019\u0001\u000b\r\u005d\'\u0019\u0042\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u001e\u002a\u0034\u001c\u004a\u0042\u001a\u0019\u0051\u0053\'\u0019\u0001\'\r\u000e\u001a\u0008\u0019\u002c\u005f\u005e\u0019\u0001\u000b\r\u005d\'\u0019\u0042\u004a\u0053\u005e\u0019\u0001\u000b\r\u005d\'\u0019\u0042\u004a\u0053\u005e\u0019\u0001\u000b\r\u005d\'\u0019\u0042\u004a\u0053\u005e\u0019\u0001\u000b\r\u005d\'\u0019\u0042\u004a\u0053\u000e\u0008\u0008\u0030\u001c\'\u0053\u0004\u004a\u0053\u002a\u001a\u0001\u0001\u001a\u0008\u0019\u0001\u0042\u0053\'\u0019\u000e\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0019\u0004\u001a\u0019\u0042\u001e\u000e\u0004\u000b\r\u0030\u001a\u004a\u0019\u000e\u000e\r\u0004\u005e\u0026\u002a\u0004\u0019\u002a\'\u0004\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u0047\'\u0019\u0004\u001a\u0019\u0042\u001e\u000e\u0004\u000b\r\u0030\u001a\u004a\u0019\u000e\u000e\r\u0004\u005e\u0026\u002a\u0004\u0019\u002a\'\u0004\u000e\u001a\u000e\u0026\u0030\u0030\u001a\u002a\u004a\u0001\'\u0013\u005d\u001a\u0038\u0001\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0053\u004a\u0001\u0026\u0030\u000e\u0053\u004a\u0001\u0026\u0030\u000e\u0034\u0026\u0053\u001a\'\u0004\u0004\u0030\u001a\r\'\u000e\u001a\u0008\u0019\u0017\u0008\u0019\u000e\u004a\u005b\u000e\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u005e\u0019\u0001\r\u005d\'\u0019\u0042\u004a\u0053\u0034\u0001\u004a\u0053\u004d\u001a\r\u004a\u0034\u0006\'\u004a\u005e\'\u0030\u0026\u0001\u0010\u0004\u0019\u0007\u004a\u0053\u004d\u001a\r\u004a\u0034\u0009\u0017\u0051\u003b\u000f\u0029\u000b\u0009\u0017\u0051\u003b\u0010\u0009\u0051\u0003\u001b\u0009\u0029\u0003\u0020\u003b\u003c\u004b\u002b\u0039\u0003\u0007\u000f\u002b\u000f\u0029\u003c\u0007\u0051\u0009\u002b\u0051\u0004\'\u0019\u004a\u0030\u001a\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\r\u0008\u002a\'\u0004\u0004\u0030\u001a\r\'\u000e\u001a\u0008\u0019\u0017\u0008\u0019\u000e\u004a\u005b\u000e\u0001\u0026\u0004\u0004\u0008\u0053\u000e\n\u0053\'\u0042\u002a\u004a\u0019\u000e\u002f\'\u0019\'\u0042\u004a\u0053\u000e\'\u0001\u0057\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0038\u0001\u0038\u0001\u0038\u0001\u0038\u0001\u0038\u0001\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0055\u001a\u001e\u001a\u0055\u001a\u001e\u001a\u002f\'\u0019\'\u0042\u004a\u0053\u0045\u0045\u0034\r\u0008\u0019\u0019\u004a\r\u000e\u001a\u0008\u0019\u003b\u0019\u001e\u0008\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0007\u0007\u003b\u0006\u000b\u0055\u001a\u001e\u001a\u0026\u0019\u0057\u0019\u0008\u0055\u0019\u003c\u0001\u0001\u001a\u005e\u0038\u0001\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0007\u0007\u003b\u0006\u000b\u0055\u001a\u001e\u001a\u0038\u0001\u0038\u0001\u0018\u0026\u0033\u002c\u0017\u0030\u001a\r\u0057\u003c\u005d\u004a\u0053\u004a\u003c\u000e\u0008\u003c\u004a\u0019\'\u001c\u0030\u004a\u005f\u0018\u0040\u0026\u0033\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u0038\u0001\u0018\u0026\u0033\u002c\u0017\u0030\u001a\r\u0057\u003c\u005d\u004a\u0053\u004a\u003c\u000e\u0008\u003c\u004a\u0019\'\u001c\u0030\u004a\u005f\u0018\u0040\u0026\u0033\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0007\u0007\u003b\u0006\u000b\u0055\u001a\u001e\u001a\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0055\u001a\u001e\u001a\u0055\u001a\u001e\u001a\u002f\'\u0019\'\u0042\u004a\u0053\u0045\u0045\u0034\r\u0008\u0019\u0019\u004a\r\u000e\u001a\u0008\u0019\u003b\u0019\u001e\u0008\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0038\u0001\u003c\u0038\u0001\u0038\u0001\u0038\u0001\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0034\u0021\u001e\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u003c\u0038\u0001\u0038\u0001\u0038\u0001\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0034\u0021\u001e\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u003c\u0038\u0001\u0038\u0001\u0038\u0001\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0034\u0021\u001e\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u003c\u0038\u0001\u0038\u0001\u0038\u0001\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0034\u0021\u001e\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u003c\u0038\u0001\u0038\u0001\u0038\u0001\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0034\u0021\u001e\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u003c\u0038\u0001\u0038\u0001\u0038\u0001\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0034\u0021\u001e\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\r\u0008\u002a\u0040\'\u0004\u0004\u0030\u001a\r\'\u000e\u001a\u0008\u0019\u000b\u0004\u0008\u0001\u000e\u000b\r\u004a\u0053\u000e\u0034\u0004\u005d\u0004\u0032\u005e\u004a\u0053\u0042\u0026\'\u0053\u0023\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u0036\u0051\n\u003d\u0024\u0048\u0009\u0049\u000f\u0017\u0003\u002b\u0051\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u0029\u0026\u0030\u0030\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\'\r\u000e\u001a\u004d\u001a\u000e\u001a\u004a\u0001\u0034\u0004\'\u0019\u004a\u0030\u001a\u000b\u0057\u0053\u0043\u004a\u0001\u0008\u0053\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u000e\'\u0001\u0057\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\r\u0008\u002a\u0034\u0042\u0008\u0008\u0042\u0030\u004a\u0034\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u0042\u002a\u0001\u0034\r\u0008\u002a\u002a\u0008\u0019\u0034\'\u0004\u001a\u0034\u002b\u004a\u0001\u0008\u0030\u004d\'\u001c\u0030\u004a\u0009\u0004\u001a\u0003\u005b\r\u004a\u0004\u000e\u001a\u0008\u0019\u0058\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0057\'\u000b\u004d\u0004\u0019\u0058\u0058\u0058\u0010\u001b\u0029\u0015\u003b\n\u003b\u002f\u000f\u0041\u003b\u0020\u0003\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0058\u0045\u0045\u0045\u0045\u0045\u0045\u0029\u0036\u0020\u0020\u0050\u003a\"\u000b\u000b\u000b\u0045\u0045\u0045\u0045\u0045\u0045\u0029\u0036\u0020\u0020\u0050\u003a\"\u000b\u000b\u000b\u0045\u0045\u0045\u0045\u0045\u0045\u0029\u0036\u0020\u0020\u0050\u003a\"\u000b\u000b\u000b\u0026\u0019\u0057\u0019\u0008\u0055\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0001\u0038\u0001\u0038\u005e\u0038\u0001\u0038\u0001\u0038\u0001\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u0038\u0001\u0038\u0001\u003c\u002c\u0020\u0051\u0003\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0001\u0038\u0001\u0038\u005e\u0038\u0001\u0038\u0001\u0038\u0001\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u0038\u0001\u0038\u0001\u003c\u002c\u0020\u0051\u0003\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0038\u0001\u0038\u0001\u0038\u0001\u003c\u002c\u0020\u0051\u0003\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0001\u0038\u0001\u0038\u005e\u0038\u0001\u0038\u0001\u0038\u0001\u0038\u005e\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u002a\u000e\u005d\u005e\u0042\u004a\u000e\u0020\u000e\u004a\u002b\u0001\u0053\u0004\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0057\u0008\u000e\u0030\u001a\u0019\u0034\u003b\u0019\u000e\u003c\u002c\u0020\u0051\u0003\u005f\u003c\u002c\u0020\u0051\u0003\u005f\u003c\u002c\u0020\u0051\u0003\u005f\u000e\u004a\u0030\u004a\u0004\u005d\u0008\u0019\u0043\u002f\'\u0019\'\u0042\u004a\u0053\u0045\u0045\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000f\u0004\u004a\u0053\'\u000e\u0008\u0053\u0029\'\u002a\u004a\u000e\u004a\u0030\u004a\u0004\u005d\u0008\u0019\u0043\u002f\'\u0019\'\u0042\u004a\u0053\u0045\u0045\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000f\u0004\u004a\u0053\'\u000e\u0008\u0053\u0029\'\u002a\u004a\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0001\u001a\u0042\u0019\'\u0030\u0007\u000e\u0053\u004a\u0019\u0042\u000e\u005d\u0029\u0008\u003c\r\u0008\u0019\u0019\u004a\r\u000e\u004a\u005e\u003c\r\u0030\u001a\u004a\u0019\u000e\u0001\u0017\u0030\u001a\u004a\u0019\u000e\u003c\u0021\u0016\u002f\u0009\u0017\u003c\u0009\u005e\u005e\u0053\u004a\u0001\u0001\u003c\u0058\u003c\u0016\u003b\u001b\u003c\u0009\u005e\u005e\u0053\u004a\u0001\u0001\u003c\u0058\u003c\u0016\u0016\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u003c\u0017\u0008\u0019\u0019\u004a\r\u000e\u004a\u005e\u003c\u0017\u0030\u001a\u004a\u0019\u000e\u0001\u002c\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u003c\u0038\u0001\u003c\u003d\u003c\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u001a\u000e\u002a\'\u0053\u0057\u004a\u000e\u0058\u0040\u0040\u005e\u004a\u000e\'\u001a\u0030\u0001\u0032\u001a\u005e\u0023\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u001a\u0019\u000e\u004a\u0019\u000e\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0010\u003b\u0003\u0015\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u001a\u0019\u000e\u004a\u0019\u000e\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0010\u003b\u0003\u0015\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0004\u0030\'\u0043\u0034\u0042\u0008\u0008\u0042\u0030\u004a\u0034\r\u0008\u002a\u0040\u0001\u000e\u0008\u0053\u004a\u0040\'\u0004\u0004\u0001\u0040\u005e\u004a\u000e\'\u001a\u0030\u0001\u0032\u001a\u005e\u0023\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u001a\u000e\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u0036\u0004\u005e\'\u000e\u004a\u003c\u0019\u004a\u004a\u005e\u004a\u005e\u0039\u0008\u0026\u003c\u005d\'\u004d\u004a\u003c\'\u003c\u004d\u004a\u0053\u0043\u003c\u0008\u0030\u005e\u003c\'\u0004\u0004\u003c\u004d\u004a\u0053\u0001\u001a\u0008\u0019\u003c\u001a\u0019\u0001\u000e\'\u0030\u0030\u004a\u005e\u003c\u0008\u0019\u003c\u0043\u0008\u0026\u0053\u003c\u005e\u004a\u004d\u001a\r\u004a\u0016\u001b\u0030\u004a\'\u0001\u004a\u003c\u0026\u0004\u005e\'\u000e\u004a\u003c\u000e\u0008\u003c\u0030\'\u000e\u004a\u0001\u000e\u003c\u004d\u004a\u0053\u0001\u001a\u0008\u0019\u003c\u000e\u0008\u003c\r\u0008\u0019\u000e\u001a\u0019\u0026\u004a\u003c\u0026\u0001\u001a\u0019\u0042\u003c\u000e\u005d\u001a\u0001\u003c\'\u0004\u0004\u0016\u0051\u005d\'\u0019\u0057\u003c\u0043\u0008\u0026\u0036\u0004\u005e\'\u000e\u004a\u0017\'\u0019\r\u004a\u0030\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u004d\u004a\u0053\u0001\u001a\u0008\u0019\u001a\u000b\u002a\u001a\u0019\u001a\u002a\'\u0030\u000b\u0004\u0053\u0008\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u001a\u000e\u002a\'\u0053\u0057\u004a\u000e\u0058\u0040\u0040\u005e\u004a\u000e\'\u001a\u0030\u0001\u0032\u001a\u005e\u0023\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u001a\u0019\u000e\u004a\u0019\u000e\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0010\u003b\u0003\u0015\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u001a\u0019\u000e\u004a\u0019\u000e\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0010\u003b\u0003\u0015\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0004\u0030\'\u0043\u0034\u0042\u0008\u0008\u0042\u0030\u004a\u0034\r\u0008\u002a\u0040\u0001\u000e\u0008\u0053\u004a\u0040\'\u0004\u0004\u0001\u0040\u005e\u004a\u000e\'\u001a\u0030\u0001\u0032\u001a\u005e\u0023\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u001a\u000e\u002a\'\u0053\u0057\u004a\u000e\u0058\u0040\u0040\u005e\u004a\u000e\'\u001a\u0030\u0001\u0032\u001a\u005e\u0023\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u001a\u0019\u000e\u004a\u0019\u000e\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0010\u003b\u0003\u0015\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u001a\u0019\u000e\u004a\u0019\u000e\u0034\'\r\u000e\u001a\u0008\u0019\u0034\u0010\u003b\u0003\u0015\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0004\u0030\'\u0043\u0034\u0042\u0008\u0008\u0042\u0030\u004a\u0034\r\u0008\u002a\u0040\u0001\u000e\u0008\u0053\u004a\u0040\'\u0004\u0004\u0001\u0040\u005e\u004a\u000e\'\u001a\u0030\u0001\u0032\u001a\u005e\u0023\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u001a\u000e\u0026\u0004\u005e\'\u000e\u004a\u003c\u004d\u004a\u0053\u0001\u001a\u0008\u0019\u000b\u001a\u000b\u0053\u001a\u000b\u005e\u005d\u004a\u000b\u0019\u0047\u0008\u001e\u000e\u001a\u002a\u004a\u000e\u003c\u0001\u004a\u000e\u003c\u004d\u004a\u0053\u0001\u001a\u0008\u0019\u000b\u001a\u000b\u0053\u001a\u000b\u001e\u001a\u0053\u004a\u001c\'\u0001\u004a\u000b\u0053\u004a\u002a\u0008\u000e\u004a\u0023\u0035\u003d\u003d\u003d\u0047\u0008\u0035\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u004d\u004a\u0053\u0001\u001a\u0008\u0019\u000b\u001a\u000b\u0053\u001a\u000b\u005e\u005d\u004a\u000b\u0019\u0047\u0008\u001e\u000e\u001a\u002a\u004a\u000e\r\u0026\u0053\u0001\u0008\u0053\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u0021\u005f\u003d\u003d\u003d\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0047\'\u004d\'\u0034\u0026\u000e\u001a\u0030\u0034\u0017\u0008\u0030\u0030\u004a\r\u000e\u001a\u0008\u0019\u0018\u0051\u0033\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0057\u0008\u000e\u0030\u001a\u0019\u0034\u0009\u0053\u0053\'\u0043\u0018\u0051\u0033\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\'\r\u000e\u001a\u004d\u001a\u000e\u0043\u0045\u0045\'\r\u000e\u001a\u004d\u001a\u000e\u0043\u0045\u0045\'\r\u000e\u001a\u004d\u001a\u000e\u0043\u0045\u0045\u0034\u0004\'\r\u0057\'\u0042\u004a\u002f\'\u0019\'\u0042\u004a\u004f\r\u000e\u001a\u004d\u001a\u000e\u0043\u0045\u0045\u0034\u0004\'\r\u0057\'\u0042\u004a\u0029\'\u002a\u004a\"\u003c\u0000\u005f\r\u0026\u0053\u0053\u004a\u0019\u000e\u0009\u0004\u0004\u0010\u004a\u0053\u0001\u001a\u0008\u0019\u0029\'\u002a\u004a\u0041\u0003\u0051\u0009\u004d\u004a\u0053\u0001\u001a\u0008\u0019\u000b\u0019\u0026\u002a\u001c\u004a\u0053\u000b\u0053\u004a\u0030\u004a\'\u0001\u004a\u000b\u0004\u0053\u0008\u0053\u004a\u0030\u004a\'\u0001\u004a\u000b\u0019\u0008\u000e\u004a\u0001\u002a\n\u001a\u0053\u004a\u001c\'\u0001\u004a\u002b\u004a\u002a\u0008\u000e\u004a\u0017\u0008\u0019\u001e\u001a\u0042\u0045\u0045\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u0005\u0053\u004a\u0030\u004a\'\u0001\u004a\u000b\u0019\u0008\u000e\u004a\u0001\u0005\u005f\u003d\u003d\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0047\'\u004d\'\u0034\u0026\u000e\u001a\u0030\u0034\u0017\u0008\u0030\u0030\u004a\r\u000e\u001a\u0008\u0019\u0018\u0051\u0033\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0057\u0008\u000e\u0030\u001a\u0019\u0034\u0009\u0053\u0053\'\u0043\u0018\u0051\u0033\u0053\u004a\r\u0008\u002a\u002a\u004a\u0019\u005e\u004a\u005e\u000b\u0019\u0008\u000e\u004a\u0001\u004d\u004a\u0053\u0001\u001a\u0008\u0019\u000b\u0019\'\u002a\u004a\u000b\u0053\u004a\u0030\u004a\'\u0001\u004a\u0016\u0016\u0016\u0019\u0026\u0030\u0030\u0053\u004a\r\u0008\u002a\u002a\u004a\u0019\u005e\u004a\u005e\u0029\u0008\u000e\u004a\u0001\u003d\u003d\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0047\'\u004d\'\u0034\u0026\u000e\u001a\u0030\u0034\u0017\u0008\u0030\u0030\u004a\r\u000e\u001a\u0008\u0019\u0018\u0051\u0033\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0057\u0008\u000e\u0030\u001a\u0019\u0034\u0009\u0053\u0053\'\u0043\u0018\u0051\u0033\u0016\u0016\u002b\u004a\u0030\u004a\'\u0001\u004a\u003c\u0029\u0008\u000e\u004a\u0001\u0016\u0037\u003c\u0016\u0026\u0004\u005e\'\u000e\u004a\u003c\u004d\u004a\u0053\u0001\u001a\u0008\u0019\u000b\u001a\u000b\u0053\u001a\u000b\u005e\u005d\u004a\u000b\u0019\u0047\u0008\u001e\u000e\u001a\u002a\u004a\u000e\u003c\u0001\u004a\u000e\u003c\u004d\u004a\u0053\u0001\u001a\u0008\u0019\u000b\u001a\u000b\u0053\u001a\u000b\u001e\u001a\u0053\u004a\u001c\'\u0001\u004a\u000b\u0053\u004a\u002a\u0008\u000e\u004a\u0023\u0035\u003d\u003d\u003d\u0004\u0008\u0035\u0004\u0008\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0038\u0001\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0038\u0001\u0038\u0001\u0038\u0001\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0055\u001a\u001e\u001a\u002f\'\u0019\'\u0042\u004a\u0053\u0045\u0045\u0034\r\u0008\u0019\u0019\u004a\r\u000e\u001a\u0008\u0019\u003b\u0019\u001e\u0008\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u004f\u0030\u004a\u0004\u005d\u0008\u0019\u0043\u000b\u001a\u0001\u000b\u0019\u0008\u000e\u000b\r\u0008\u0019\u0019\u004a\r\u000e\u004a\u005e\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u004f\u0030\u004a\u0004\u005d\u0008\u0019\u0043\u000b\u001a\u0001\u000b\u0019\u0008\u000e\u000b\r\u0008\u0019\u0019\u004a\r\u000e\u004a\u005e\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\r\u0030\u001a\u004a\u0019\u000e\u0001\u0038\u0001\u003c\u0018\u0026\u0033\u0018\u001e\u0008\u0019\u000e\u003c\r\u0008\u0030\u0008\u0053\u0023\\\n\n\u0028\u0000\u0024\u0021\u0033\u002c\u0017\u0030\u001a\r\u0057\u003c\u000e\u0008\u003c\u0001\u005d\u0008\u0055\u005f\u0018\u0040\u001e\u0008\u0019\u000e\u0033\u0018\u0040\u0026\u0033\u003c\r\u0008\u0019\u0019\u004a\r\u000e\u004a\u005e\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u003c\u0018\u0026\u0033\u0018\u001e\u0008\u0019\u000e\u003c\r\u0008\u0030\u0008\u0053\u0023\\\n\n\u0028\u0000\u0024\u0021\u0033\u002c\u0017\u0030\u001a\r\u0057\u003c\u000e\u0008\u003c\u0001\u005d\u0008\u0055\u005f\u0018\u0040\u001e\u0008\u0019\u000e\u0033\u0018\u0040\u0026\u0033\u003c\r\u0008\u0019\u0019\u004a\r\u000e\u004a\u005e\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u000e\u004a\u000b\u005e\u005d\u004a\u0019\'\u000e\u000b\u001a\u0004\u0045\u0045\u0050\u0000\u003a\u000b\u000b\u000b\u000e\u004a\u000b\u005e\u005d\u004a\u0019\'\u000e\u000b\u001a\u0004\u0050\u0000\u003a\u000b\u000b\u000b\u0038\u0001\u003c\u002c\u0040\u0038\u0001\u005f\u002c\u0009\u0026\u000e\u0008\u005f\u003c\u002d\u003f\u003f\u0034\u002d\u003f\u003f\u0034\u002d\u003f\u003f\u0034\u0000\u0040\u002d\u0028\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053",
"\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u003c\u003d\u003c\u0038\u0001\u002c\u0009\u0026\u000e\u0008\u005f\u003c\u0021\u0012\u002d\u0034\u0021\u0059\u0024\u0034\u0028\u002e\u0034\u0021\u0021\u0012\u002d\u0034\u0021\u0059\u0024\u0034\u0028\u002e\u0034\u002d\u003f\u0028\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u000e\u004a\u000b\u005e\u005d\u004a\u0019\'\u000e\u000b\u001a\u0004\u0050\u0000\u003a\u000b\u000b\u000b\u0040\u000e\u004a\u000b\u005e\u005d\u004a\u0019\'\u000e\u000b\u001a\u0004\u0050\u0000\u003a\u000b\u000b\u000b\u000e\u004a\u000b\u005e\u005d\u004a\u0019\'\u000e\u000b\u001a\u0004\u0050\u0000\u003a\u000b\u000b\u000b\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0040\u0040\u0040\u0040\u0040\u0040\u0040\u0040\u0040\u0040\u005e\'\u0053\u0057\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0001\u0038\u0001\u0038\u0001\u0040\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u003c\u002c\u0040\u0038\u0001\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u003c\u003d\u003c\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0038\u0001\u003c\u002c\u0040\u0038\u0001\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u003c\u003d\u003c\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0040\u0040\u0040\u0040\u0040\u0040\u0040\u0040\u0040\u0040\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u005e\'\u0053\u0057\u0020\u0008\r\'\u0030\u004a\u0034\u0036\u0007\u0038\u0001\u0038\u0001\u0038\u0001\u0040\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u0030\u0008\r\'\u0030\u004a\"\u003c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0040\u0040\u0040\u0040\u0040\u0040\u0040\u0040\u0040\u0040\u0038\u0001\u003c\u002c\u0040\u0038\u0001\u005f\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0038\u0001\u003c\u003d\u003c\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\u0055\u001a\u001e\u001a\u000b\u0019\'\u002a\u004a\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u002a\u0055\u001a\u001e\u001a\u000b\u0019\'\u002a\u004a\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u002a\r\u004a\u0030\u0030\u000b\u0008\u0004\u004a\u0053\'\u000e\u0008\u0053\u000b\u0019\'\u002a\u004a\u0018\u0001\u004a\u000e\u003d\u0032\u0033\r\u0026\u0053\u0053\u004a\u0019\u000e\u000b\u001a\u0004\u000b\'\u005e\u005e\u0053\u004a\u0001\u0001\u000b\u000e\u004a\u0057\u0001\u000e\u001a\u0018\u0001\u004a\u000e\u003d\u0032\u0033\r\u0026\u0053\u0053\u004a\u0019\u000e\u000b\u004a\u005b\u000e\u004a\u0053\u0019\'\u0030\u000b\u001a\u0004\u000b\'\u005e\u005e\u0053\u004a\u0001\u0001\u000b\u000e\u004a\u0057\u0001\u000e\u001a\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0053\'\u0019\u0042\u004a\u000b\u005e\u004a\u000e\'\u0047\u004a\u000e\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u0053\u0053\u0047\u004a\u000e\u001a\u0018\u0001\u004a\u000e\u003d\u0032\u0033\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u0034\u0004\'\r\u0057\'\u0042\u004a\u002f\'\u0019\'\u0042\u004a\u0053\u004f\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u0034\u0004\'\r\u0057\'\u0042\u004a\u0029\'\u002a\u004a\"\u003c\u0000\u005f\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u001a\u0019\u001e\u0030\'\u000e\u004a\u0053\u004d\u001a\u004a\u0055\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u000e\u004a\u005b\u000e\u0010\u001a\u004a\u0055\u000b\u001a\u0004\u000b\r\u0026\u0053\u0053\u004a\u0019\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u000e\u004a\u005b\u000e\u0010\u001a\u004a\u0055\u000b\u004a\u005b\u000e\u004a\u0053\u0019\'\u0030\u000b\r\u0026\u0053\u0053\u004a\u0019\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0053\'\u0019\u0042\u004a\u000b\u0030\'\u0043\u0008\u0026\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u000e\u004f\u004a\u0055\u000b\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0053\'\u0019\u0042\u004a\u000b\u005e\u004a\u000e\'\u0047\u004a\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u000e\u004a\u005b\u000e\u0010\u001a\u004a\u0055\u000b\u0019\u004a\u000e\u002a\'\u0001\u0057\u000b\u005e\u004a\u000e\'\u0047\u004a\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u0001\u0026\u001c\u0019\u004a\u000e\u000b\u002a\'\u0001\u0057\u000b\u0030\'\u0043\u0008\u0026\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u0055\u001a\u001e\u001a\u000b\u0008\u0001\u004a\u000b\u002a\u0008\u001c\u001a\u0030\u004a\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u001a\u002a\'\u0042\u004a\u0010\u001a\u004a\u0055\u000b\r\u004a\u0030\u0030\u0004\u005d\u0008\u0019\u004a\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\r\'\u0053\u005e\u000b\'\u0053\u0053\u0008\u0055\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u0055\u001a\u001e\u001a\u000b\u0019\'\u002a\u004a\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\r\u005d\'\u0053\u000e\u000b\u0055\u001a\u001e\u001a\u000b\u0001\u000e\u0053\u004a\u0019\u0042\u000e\u005d\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\r\u005d\'\u0053\u000e\u000b\r\u004a\u0030\u0030\u000b\u0001\u000e\u0053\u004a\u0019\u0042\u000e\u005d\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\r\'\u0053\u005e\u000b\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u000e\u0053\'\u001e\u001e\u001a\r\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\r\'\u0053\u005e\u000b\r\u004a\u0030\u0030\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\r\u004a\u0030\u0030\u000b\u0008\u0004\u004a\u0053\'\u000e\u0008\u0053\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u005d\u004f\r\u0008\u0019\u0019\u004a\r\u000e\u001a\u0008\u0019\u000b\u0030\u001a\u0019\u004a\'\u0053\u000b\u0030\'\u0043\u0008\u0026\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u005d\u004f\u0004\u0008\u000e\u000b\u0001\u0001\u001a\u005e\u000b\'\u005e\u005e\u0053\u004a\u0001\u0001\u000b\u005e\u004a\u000e\'\u0047\u004a\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\u0001\u0001\u001a\u005e\u000b\u0030\'\u0043\u0008\u0026\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u005d\u004f\u0008\u000e\u000b\u001c\u0001\u0001\u001a\u005e\u000b\'\u005e\u005e\u0053\u004a\u0001\u0001\u000b\u005e\u004a\u000e\'\u0047\u004a\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\u001c\u0001\u0001\u001a\u005e\u000b\u0030\'\u0043\u0008\u0026\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u005d\u004f\u0001\u0004\u0008\u000e\u000b\u0057\u004a\u0043\u000b\'\u005e\u005e\u0053\u004a\u0001\u0001\u000b\u005e\u004a\u000e\'\u0047\u004a\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u005d\u004f\u000e\u004a\u005b\u000e\u0010\u001a\u004a\u0055\u000b\u0019\u004a\u000e\u002a\'\u0001\u0057\u000b\u005e\u004a\u000e\'\u0047\u004a\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u005d\u004f\u004a\u0055\u000b\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0053\'\u0019\u0042\u004a\u000b\u005e\u004a\u000e\'\u0047\u004a\u000e\u005f\u004d\u001a\u004a\u0055\u0034\u001e\u001a\u0019\u005e\u0010\u001a\u004a\u0055\u0041\u0043\u003b\u005e\u002c\u002b\u0034\u001a\u005e\u0034\u005d\u004f\u000b\r\u0030\u001a\u004a\u0019\u000e\u0001\u000b\'\u005e\u005e\u0053\u004a\u0001\u0001\u000b\u005e\u004a\u000e\'\u0047\u004a\u000e\u005f\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\r\u0030\u001a\u004a\u0019\u000e\u0001\u005e\u004a\u001e\'\u0026\u0030\u000e\r\u0026\u0053\u0053\u004a\u0019\u000e\u000b\u001a\u0004\u000b\'\u005e\u005e\u0053\u004a\u0001\u0001\u000b\u000e\u004a\u0057\u0001\u000e\u001a\u005e\u004a\u001e\'\u0026\u0030\u000e\r\u0026\u0053\u0053\u004a\u0019\u000e\u000b\u004a\u005b\u000e\u004a\u0053\u0019\'\u0030\u000b\u001a\u0004\u000b\'\u005e\u005e\u0053\u004a\u0001\u0001\u000b\u000e\u004a\u0057\u0001\u000e\u001a\u0055\u001a\u001e\u001a\u000b\u0019\'\u002a\u004a\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u005e\'\u0053\u0057\r\'\u0053\u005e\u000b\'\u0053\u0053\u0008\u0055\r\'\u0053\u005e\u000b\'\u0053\u0053\u0008\u0055\u001a\u0057\u0008\u0019\'\u000b\r\u004a\u0030\u0030\u000b\u0004\u005d\u0008\u0019\u004a\r\'\u0053\u005e\u000b\'\u0053\u0053\u0008\u0055\r\'\u0053\u005e\u000b\'\u0053\u0053\u0008\u0055\u001a\u0057\u0008\u0019\'\u000b\r\u004a\u0030\u0030\u000b\u0004\u005d\u0008\u0019\u004a\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u0026\u0019\u0057\u0019\u0008\u0055\u0019\u005f\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u0026\u0019\u0057\u0019\u0008\u0055\u0019\u005f\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0042\u004a\u000e\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u0026\u0019\u0057\u0019\u0008\u0055\u0019\u005f\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u0055\u001a\u001e\u001a\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u0019\u004a\u000e\u0034\u0055\u001a\u001e\u001a\u0034\u0015\u001a\u001e\u001a\u002f\'\u0019\'\u0042\u004a\u0053\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u0004\u005d\u0008\u0019\u004a\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u000e\u004a\u0030\u004a\u0004\u005d\u0008\u0019\u0043\u0034\u0051\u004a\u0030\u004a\u0004\u005d\u0008\u0019\u0043\u002f\'\u0019\'\u0042\u004a\u0053\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u0055\u001a\u001e\u001a\u000b\u0019\'\u002a\u004a\u0038\u0001\u0038\u0001\u0018\u0026\u0033\u002c\u0017\u0030\u001a\r\u0057\u003c\u005d\u004a\u0053\u004a\u003c\u000e\u0008\u003c\u004a\u0019\'\u001c\u0030\u004a\u005f\u0018\u0040\u0026\u0033\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0044\u000e\u002a\u0030\u0034\u001e\u0053\u0008\u002a\u0044\u000e\u002a\u0030\u002c\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u004f\u002a\u0030\u0034\n\u002b\u000f\u002f\u000b\u0044\u0051\u002f\u0020\u000b\u002f\u000f\u0006\u0003\u000b\u0020\u0003\u004e\u0009\u0017\u0039\u005f\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0055\u001a\u001e\u001a\u000b\u0019\'\u002a\u004a\u0038\u0001\u0038\u0001\u0018\u0026\u0033\u002c\u0017\u0030\u001a\r\u0057\u003c\u005d\u004a\u0053\u004a\u003c\u000e\u0008\u003c\u004a\u0019\'\u001c\u0030\u004a\u005f\u0018\u0040\u0026\u0033\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0044\u000e\u002a\u0030\u0034\u001e\u0053\u0008\u002a\u0044\u000e\u002a\u0030\u002c\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u004f\u0053\u001a\u0019\u0042\u002c\u002b\u0034\u0001\u000e\u0053\u001a\u0019\u0042\u0034\u005d\'\u0004\u004a\u0001\u001a\u0053\u004a\u005f\u005f\u005f\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\r\'\u0053\u005e\u000b\u000e\u0053\'\u001e\u001a\u001a\r\u0006\u0008\u0055\u0019\u0030\u0008\'\u005e\u0036\u0004\u0030\u0008\'\u005e\u0030\u0030\u004a\u0042\u004a\u0019\u005e\u000b\u005e\u0008\u0055\u0019\u0030\u0008\'\u005e\u0030\u004a\u0042\u004a\u0019\u005e\u000b\u0026\u0004\u0030\u0008\'\u005e\u005e\'\u0053\u0057\u005b\u0030\u002a\u000e\u0053\'\u001e\u001e\u001a\r\r\u005d\'\u0053\u000e\u0045\u0045\u0034\'\u005b\u001a\u0001\u002b\u001a\u0042\u005d\u000e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u0006\u0008\u0055\u0019\u0030\u0008\'\u005e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u0030\u0030\u004a\u0042\u004a\u0019\u005e\u000b\u0055\u001a\u001e\u001a\u000b\u0001\u001a\u0042\u0019\'\u0030\u005e\'\u0053\u0057\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u005b\u0030\u0021\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u0030\u004a\u001e\u000e\u0009\u005b\u001a\u0001\u0021\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u0034\'\u005b\u001a\u0001\u002b\u001a\u0042\u005d\u000e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u0006\u0008\u0055\u0019\u0030\u0008\'\u005e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u0030\u0030\u004a\u0042\u004a\u0019\u005e\u000b\r\u004a\u0030\u0030\u000b\u0001\u001a\u0042\u0019\'\u0030\u005e\'\u0053\u0057\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u005b\u0030\u0021\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u0030\u004a\u001e\u000e\u0009\u005b\u001a\u0001\u002d\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u0034\'\u005b\u001a\u0001\u002b\u001a\u0042\u005d\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u0055\u001a\u001e\u001a\u002f\'\u0019\'\u0042\u004a\u0053\u0045\u0045\u0034\r\u0008\u0019\u0019\u004a\r\u000e\u001a\u0008\u0019\u003b\u0019\u001e\u0008\u005e\u001c\u0001\u004a\u0030\u004a\r\u000e\u003c\u0037\u003c\u001e\u0053\u0008\u002a\u003c\u0001\u000e\'\u000e\u0026\u0001\u000b\u000e\u0053\'\r\u004a\u0053\u0040\u0055\u001a\u001e\u001a\u0040\u0040\u002a\u0008\u001c\u001a\u0030\u004a\u0040\u0019\u0026\u0030\u0030\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u002a\u0055\u001a\u001e\u001a\r\u005d\'\u0053\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u002a\r\u004a\u0030\u0030\r\u005d\'\u0053\u000e\u0006\u0008\u0055\u0019\u0030\u0008\'\u005e\u0036\u0004\u0030\u0008\'\u005e\u0055\u001a\u001e\u001a\u000b\u0001\u001a\u0042\u0019\'\u0020\u0017\u004a\u0030\u0030\r\u0008\u0019\u000e\u004a\u005b\u000e\u0045\u0045\u0030\u0008\r\'\u000e\u001a\u0008\u0019\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u0030\u0008\r\'\u000e\u001a\u0008\u0019\u0034\u0020\u0008\r\'\u000e\u001a\u0008\u0019\u002f\'\u0019\'\u0042\u004a\u0053\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u0004\'\r\u0057\'\u0042\u004a\u003b\u0019\u001e\u0008\u0045\u0045\u0034\u0001\u001a\u0042\u0019\u001a\u0019\u0042\u003b\u0019\u001e\u0008\u005a\u003f\u0000\u0012\u0009\u0001\u0001\u004a\u0053\u000e\u001a\u0008\u0019\u003c\u001e\'\u001a\u0030\u004a\u005e\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0047\'\u004d\'\u0034\u0001\u004a\r\u0026\u0053\u001a\u000e\u0043\u0034\r\u004a\u0053\u000e\u0034\u005a\u003f\u0000\u0012\u0017\u004a\u0053\u000e\u001a\u001e\u001a\r\'\u000e\u004a\u0007\u0044\u0009\u0021\u0004\u0026\u001c\u0030\u001a\r\u004b\u004a\u0043\u005d\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u000e\u005d\u001a\u0001\u003c\'\u0001\u003c\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u004f\u001a\u0019\u0042\u002c\u0001\u000e\'\u0053\u000e\u003b\u0019\u005e\u004a\u005b\"\u003c\u004a\u0019\u005e\u003b\u0019\u005e\u004a\u005b\u005f\u005d\u0019\u0026\u0030\u0030\u003c\r\'\u0019\u0019\u0008\u000e\u003c\u001c\u004a\u003c\r\'\u0001\u000e\u003c\u000e\u0008\u003c\u0019\u0008\u0019\u003d\u0019\u0026\u0030\u0030\u003c\u000e\u0043\u0004\u004a\u003c\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u000e\u005d\u001a\u0001\u003c\'\u0001\u003c\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u005f\u0034\u000e\u0008\u0036\u0004\u0004\u004a\u0053\u0017\'\u0001\u004a\u002c\u005f\u0001\u000e\u0053\u0034\u000e\u0008\u0007\u000e\u0053\u001a\u0019\u0042\u002c\u005f\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u0004\u004a\u0053\u002a\u001a\u0001\u0001\u001a\u0008\u0019\u0034\u0009\u0017\u0017\u0003\u0007\u0007\u000b\u0017\u000f\u0009\u002b\u0007\u0003\u000b\u0020\u000f\u0017\u0009\u0051\u003b\u000f\u0029\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u0004\u004a\u0053\u002a\u001a\u0001\u0001\u001a\u0008\u0019\u0034\u0009\u0017\u0017\u0003\u0007\u0007\u000b\u0017\u000f\u0009\u002b\u0007\u0003\u000b\u0020\u000f\u0017\u0009\u0051\u003b\u000f\u0029\'\u0019\u005e\u0053\u0008\u001a\u005e\u0034\u0004\u004a\u0053\u002a\u001a\u0001\u0001\u001a\u0008\u0019\u0034\u0009\u0017\u0017\u0003\u0007\u0007\u000b\u0017\u000f\u0009\u002b\u0007\u0003\u000b\u0020\u000f\u0017\u0009\u0051\u003b\u000f\u0029\u0004\u004a\u0053\u002a\u001a\u0001\u0001\u001a\u0008\u0019\u0001\u0042\u0053\'\u0019\u000e\u002b\u004a\u0001\u0026\u0030\u000e\u0001\u0055\u001a\u001e\u001a\u000b\u0019\'\u002a\u004a\u0038\u0001\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u0055\u001a\u001e\u001a\u000b\u0019\'\u002a\u004a\u0038\u0001\u0038\u0001\u0038\u0001\u0047\'\u004d\'\u0034\u0030\'\u0019\u0042\u0034\u0007\u000e\u0053\u001a\u0019\u0042\u0034\u001e\u0008\u0053\u002a\'\u000e\u002c\u001e\u0008\u0053\u002a\'\u000e\"\u003c\u0037\'\u0053\u0042\u0001\u005f\u005e\u004a\u001e\'\u0026\u0030\u000e\u005e\u004a\u001e\'\u0026\u0030\u000e\u0030\u004a\u0042\u004a\u0019\u005e\u000b\r\u004a\u0030\u0030\u000b\u0001\u001a\u0042\u0019\'\u0030\r\u004a\u0030\u0030\u000b\u0008\u0004\u004a\u0053\'\u000e\u0008\u0053\u000b\u0019\'\u002a\u004a\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\r\u0030\u001a\u004a\u0019\u000e\u0001\u0057\u0030\u001a\u004a\u0019\u000e\u004a\u000e\u005e\u001c\r\'\u0053\u005e\u000b\r\u004a\u0030\u0030\u0030\u004a\u0042\u004a\u0019\u005e\u000b\u0055\u001a\u001e\u001a\u000b\u0001\u001a\u0042\u0019\'\u0030\u0001\u0026\u001c\u0019\u004a\u000e\u000b\u002a\'\u0001\u0057\u000b\u0030\'\u0043\u0008\u0026\u000e\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0053\'\u0019\u0042\u004a\u000b\u0030\'\u0043\u0008\u0026\u000e\u001a\u0057\u0008\u0019\'\u000b\u0055\u001a\u001e\u001a\u000b\u0008\u0001\u004a\u000b\u002a\u0008\u001c\u001a\u0030\u004a\u0001\u0026\u001c\u0019\u004a\u000e\u000b\u002a\'\u0001\u0057\u000b\u005e\u004a\u000e\'\u0047\u004a\u000e\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\u0030\'\u0043\u0008\u0026\u000e\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\u0001\u0001\u001a\u005e\u000b\u0030\'\u0043\u0008\u0026\u000e\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\u001c\u0001\u0001\u001a\u005e\u000b\u0030\'\u0043\u0008\u0026\u000e\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\u0001\u0001\u001a\u005e\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\u001c\u0001\u0001\u001a\u005e\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\u0042\'\u000e\u004a\u0055\'\u0043\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\u0001\u0026\u001c\u0019\u004a\u000e\u000b\u002a\'\u0001\u0057\u005d\u0008\u000e\u0001\u0004\u0008\u000e\u000b\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u0053\'\u0019\u0042\u004a\u0030\u004a\u0042\u004a\u0019\u005e\u000b\u005e\u0008\u0055\u0019\u0030\u0008\'\u005e\u0030\u004a\u0042\u004a\u0019\u005e\u000b\u0026\u0004\u0030\u0008\'\u005e\u0003\u0009\u004b\u003c\u0051\u0003\u0009\u002f\u0040\u0006\u004a\u001e\'\u0026\u0030\u000e\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u005d\u0008\u0001\u000e\u0001\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0053\'\u0055\u0034\u0042\u001a\u000e\u005d\u0026\u001c\u0026\u0001\u004a\u0053\r\u0008\u0019\u000e\u004a\u0019\u000e\u0034\r\u0008\u002a\u0040\u001a\u0051\u005a\u0051\u004a\r\u005d\u0040\u0006\'\u004a\u005e\'\u0030\u0026\u0001\u0040\u002a\'\u0001\u000e\u004a\u0053\u0040\u005e\u004a\u001e\'\u0026\u0030\u000e\u0034\u005d\u0008\u0001\u000e\u0001\u0042\u0008\u0008\u0042\u0030\u004a\u005d\u0008\u0001\u000e\u0001\u0040\u005d\u0008\u0001\u000e\u0001\u0042\u0008\u0008\u0042\u0030\u004a\u005d\u0008\u0001\u000e\u0001\u0034\u005d\u0008\u0001\u000e\u0001\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0053\'\u0055\u0034\u0042\u001a\u000e\u005d\u0026\u001c\u0026\u0001\u004a\u0053\r\u0008\u0019\u000e\u004a\u0019\u000e\u0034\r\u0008\u002a\u0040\u0042\u0008\u0008\u0042\u0030\u004a\u005d\u0008\u0001\u000e\u0001\u0040\u005d\u0008\u0001\u000e\u0001\u0040\u002a\'\u0001\u000e\u004a\u0053\u0040\u005d\u0008\u0001\u000e\u0001\u003d\u001e\u001a\u0030\u004a\u0001\u0040\u005d\u0008\u0001\u000e\u0001\u004d\u0008\u0057\u001a\u0019\u0001\u0040\u0043\u005d\u0008\u0001\u000e\u0001\u004d\u0008\u0057\u001a\u0019\u0001\u0034\u005d\u0008\u0001\u000e\u0001\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0053\'\u0055\u0034\u0042\u001a\u000e\u005d\u0026\u001c\u0026\u0001\u004a\u0053\r\u0008\u0019\u000e\u004a\u0019\u000e\u0034\r\u0008\u002a\u0040\u004d\u0008\u0057\u001a\u0019\u0001\u0040\u0043\u005d\u0008\u0001\u000e\u0001\u0040\u002a\'\u0001\u000e\u004a\u0053\u0040\u005d\u0008\u0001\u000e\u0001\'\u005e\'\u0055\'\u0043\'\u005e\'\u0055\'\u0043\u0034\u005d\u0008\u0001\u000e\u0001\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\'\u005e\'\u0055\'\u0043\u0034\u0008\u0053\u0042\u0040\u005d\u0008\u0001\u000e\u0001\u0034\u000e\u005b\u000e\u004d\u0008\u0057\u001a\u0019\u0001\u0040\u0043\u005d\u0008\u0001\u000e\u0001\u0040\u0026\u0019\u001a\u0008\u0019\u0026\u0019\u001a\u0008\u0019\u0034\u005e\u0019\u0001\u002a\'\u0001\u0025\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0053\'\u0055\u0034\u0042\u001a\u000e\u005d\u0026\u001c\u0026\u0001\u004a\u0053\r\u0008\u0019\u000e\u004a\u0019\u000e\u0034\r\u0008\u002a\u0040\u004d\u0008\u0057\u001a\u0019\u0001\u0040\u0043\u005d\u0008\u0001\u000e\u0001\u0040\u002a\'\u0001\u000e\u004a\u0053\u0040\u005e\u0019\u0001\u002a\'\u0001\u0025\u0040\u0026\u0019\u001a\u0008\u0019\u0034\r\u0008\u0019\u001e\u001a\u0019\u0001\u000e\'\u0019\r\u004a\r\u0008\u0019\u000e\u004a\u005b\u000e\u0034\u0053\u004a\u0001\u0008\u0026\u0053\r\u004a\u0001\u0034\u0008\u0004\u004a\u0019\u002b\'\u0055\u002b\u004a\u0001\u0008\u0026\u0053\r\u004a\u002c\u002b\u0034\u0053\'\u0055\u0034\u005d\u0008\u0001\u000e\u0001\u005f\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u005d\u0008\u0001\u000e\u0001\u001c\u004a\'\u0019\u0017\u0030\'\u0001\u0001\u0053\u004a\'\u005e\u004a\u0053\u0001\u004a\u000e\u000e\u001a\u0019\u0042\u0001\u000b\u0030\u0008\r\'\u0030\u000b\u0053\u0026\u0030\u004a\u0001\u000b\u0053\u004a\u0001\u0008\u0030\u0026\u000e\u001a\u0008\u0019\u0053\u0026\u0030\u004a\u0026\u0001\u001a\u0019\u0042\u002b\u0026\u0030\u004a\u0001\u0050\u0000\u003a\u0004\u0053\u004a\u001e\u0001\r\u0008\u0019\u000e\u004a\u005b\u000e\r\u0008\u0019\u000e\u004a\u005b\u000e\r\u0008\u002a\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u0004\u0053\u0008\u0034\u005e\u0019\u0001\r\u005d\'\u0019\u0042\u004a\u0053\u0034\u0001\u004a\u0053\u004d\u001a\r\u004a\u0034\u0006\'\u004a\u005e\'\u0030\u0026\u0001\u0010\u0004\u0019\u0007\u004a\u0053\u004d\u001a\r\u004a\u0034\u0009\u0017\u0051\u003b\u000f\u0029\u000b\u0006\u0003\u0009\u0017\u0051\u003b\u0010\u0009\u0051\u0003\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u0018\u0001\u004a\u000e\u003d\u0032\u0033\r\u0008\u0019\u001e\u001a\u0042\u0026\u0053\'\u000e\u001a\u0008\u0019\u0001\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u0053\u0026\u0030\u004a\u001b\'\u000e\u005d\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u0030\u0008\u0042\u001b\'\u000e\u005d\u0018\u0001\u004a\u000e\u003d\u0032\u0033\u005d\u000e\u000e\u0004\u0001\u0058\u0040\u0040\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u002a\'\u0019\'\u0042\u004a\u0053\u0034\u004a\'\u0057\u000e\u004a\'\u002a\u0034\r\u0008\u002a\u0040\'\u0004\u0004\u0030\u001a\r\'\u000e\u001a\u0008\u0019\u000b\u0004\u0008\u0001\u000e\u000b\r\u004a\u0053\u000e\u0034\u0004\u005d\u0004\u0032\u005e\u004a\u0053\u0042\u0026\'\u0053\u0023\'\u0004\u0004\u0030\u001a\r\'\u000e\u001a\u0008\u0019\u0017\u0008\u0019\u000e\u004a\u005b\u000e\u0036\u0051\n\u003d\u0024\u0048\u0009\u0049\u000f\r\'\u0030\u0030\u003c\u000e\u0008\u003c\u0035\u0053\u004a\u0001\u0026\u002a\u004a\u0035\u003c\u001c\u004a\u001e\u0008\u0053\u004a\u003c\u0035\u001a\u0019\u004d\u0008\u0057\u004a\u0035\u003c\u0055\u001a\u000e\u005d\u003c\r\u0008\u0053\u0008\u0026\u000e\u001a\u0019\u004a\r\u0008\u002a\u0004\u0030\u004a\u000e\u001a\u0008\u0019\'\u0004\u0004\u0030\u001a\r\'\u000e\u001a\u0008\u0019\u0017\u0008\u0019\u000e\u004a\u005b\u000e\u001b\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\u004a\u002f\'\u0019\'\u0042\u004a\u0053\u0034\u0042\u004a\u000e\u0006\u004a\u001e\u004f\u0030\u000e\u0007\u005d\'\u0053\u004a\u005e\u001b\u0053\u004a\u001e\u004a\u0053\u004a\u0019\r\u004a\u0001\u002c\u000e\u005d\u001a\u0001\u005f\u001e\u001a\u0030\u004a\u0001\u0006\u001a\u0053\u0040\u0006\u0029\u0007\u0017\u005d\'\u0019\u0042\u004a\u0053\u0040\u0010\u0004\u0019\u002b\u0026\u0030\u004a\u0001\u0040\u001e\u001a\u0030\u004a\u0001\u0006\u001a\u0053\u0040\u0006\u0029\u0007\u0017\u005d\'\u0019\u0042\u004a\u0053\u0040\u0010\u0004\u0019\u0020\u0008\u0042\u0001\u0040\u001e\u001a\u0030\u004a\u0001\u0006\u001a\u0053\u0040\u0006\u0029\u0007\u0017\u005d\'\u0019\u0042\u004a\u0053\u0040\r\u0008\u0019\u001e\u001a\u0042\u0034\u0047\u0001\u0008\u0019\r\u0008\u0019\u001e\u001a\u0042\u001b\'\u000e\u005d\u0017\u0008\u0019\u001e\u001a\u0042\u0026\u0053\'\u000e\u001a\u0008\u0019\u0001\u0034\u0030\u0008\'\u005e\u002c\n\u001a\u0030\u004a\u002c\r\u0008\u0019\u001e\u001a\u0042\u001b\'\u000e\u005d\u005f\u005f\u0053\u0026\u0030\u004a\u001b\'\u000e\u005d\u0030\u0008\u0042\u001b\'\u000e\u005d\u0019\u004a\u0055\u0017\u0008\u0019\u001e\u001a\u0042\u003c\u001a\u0001\u003c\u0019\u0008\u000e\u003c\'\u003c\u005e\u001a\u0053\u004a\r\u000e\u0008\u0053\u0043\u0034\u003c\u0006\u004a\u0030\u004a\u000e\u004a\u003c\u0058\u003c\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u003c\u0008\u0053\u003c\u004a\u002a\u0004\u000e\u0043\u0034\u003c\u0017\u0053\u004a\'\u000e\u004a\u003c\u0058\u003c\u003c\u001a\u0001\u003c\u0019\u0008\u000e\u003c\'\u003c\u005e\u001a\u0053\u004a\r\u000e\u0008\u0053\u0043\u0034\u003c\u0006\u004a\u0030\u004a\u000e\u004a\u003c\u0058\u003c\u003c\u005e\u0008\u004a\u0001\u003c\u0019\u0008\u000e\u003c\u004a\u005b\u001a\u0001\u000e\u003c\u0008\u0053\u003c\u004a\u002a\u0004\u000e\u0043\u0034\u003c\u0017\u0053\u004a\'\u000e\u004a\u003c\u0058\u003c\u0010\u0004\u0019\u002b\u0026\u0030\u004a\u0001\u0003\u0009\u004b\u003c\u0051\u0003\u0009\u002f\u0040\u0006\u004a\u001e\'\u0026\u0030\u000e\u004a\'\u0057\u000e\u004a\'\u002a\u0034\u005d\u0008\u0001\u000e\u0001\u0030\u0008\r\'\u0030\u004a\r\u0008\u0019\u001e\u001a\u0042\u0026\u0053\'\u000e\u001a\u0008\u0019\u0001\u004a\'\u0057\u000b\u000e\u004a\'\u002a\u000b\u0019\u004a\u000e\u0055\u0008\u0053\u0057\u000b\u002a\'\u0019\'\u0042\u004a\u0053\u004a\u0019\u0036\u0007\u0001\u0025\u0009\u0020\u0004\u000e\u0041\u002b\u001e\u0053\n\u002b\u005e\u004a\u0006\u0003\u004a\u0001\u0003\u0007\u001a\u000e\u003b\u0051\u004a\u0030\u004e\u002b\u0053\u0026\u002b\u0036\u000e\u0053\u0051\u002b\u0004\u0030\u001b\u0020"
  };
  private static final String[] locationChunks = new String[] {
      "\u0000\u0000\u0003\u0000\u0004\u0000\n\u0000\u0011\u0000\u0019\u0000\u001f\u0000\u0026\u0000\u002d\u0000\u003b\u0000\u0044\u0000\u005a\u0000\u0070\u0000\u0081\u0000\u0092\u0000\u009e\u0000\u00ac\u0000\u00b8\u0000\u00bf\u0000\u00c7\u0000\u00eb\u0000\u00f9\u0000\u0104\u0000\u010b\u0000\u0112\u0000\u0136\u0000\u013f\u0000\u0148\u0000\u016c\u0000\u0175\u0000\u018c\u0000\u0190\u0000\u019f\u0000\u01a0\u0000\u01a0\u0000\u01b4\u0000\u01f0\u0000\u0224\u0000\u0255\u0000\u025c\u0000\u027b\u0000\u02aa\u0000\u02b4\u0000\u02d5\u0000\u0304\u0000\u030e\u0000\u033d\u0000\u0347\u0000\u0368\u0000\u0397\u0000\u03a1\u0000\u03d0\u0000\u03da\u0000\u040e\u0000\u043d\u0000\u0447\u0000\u0476\u0000\u0480\u0000\u04a5\u0000\u04d4\u0000\u04de\u0000\u050d\u0000\u0517\u0000\u0539\u0000\u0568\u0000\u0572\u0000\u05a1\u0000\u05ab\u0000\u05d3\u0000\u0602\u0000\u060c\u0000\u063b\u0000\u0645\u0000\u066a\u0000\u0699\u0000\u06a3\u0000\u06d2\u0000\u06dc\u0000\u070e\u0000\u073d\u0000\u0747\u0000\u0776\u0000\u0780\u0000\u07a7\u0000\u07d6\u0000\u07e0\u0000\u080f\u0000\u0819\u0000\u085b\u0000\u088a\u0000\u0894\u0000\u08c3\u0000\u08cd\u0000\u08fc\u0000\u0906\u0000\u0908\u0000\u0914\u0000\u091f\u0000\u0925\u0000\u093c\u0000\u093f\u0000\u0941\u0000\u0948\u0000\u0992\u0000\u0998\u0000\u09b1\u0000\u09c1\u0000\u09d4\u0000\u09e8\u0000\u09ea\u0000\u09fe\u0000\u0a05\u0000\u0a0c\u0000\u0a0c\u0000\u0a14\u0000\u0a17\u0000\u0a19\u0000\u0a1c\u0000\u0a23\u0000\u0a2b\u0000\u0a2e\u0000\u0a35\u0000\u0a3c\u0000\u0a4a\u0000\u0a53\u0000\u0a5a\u0000\u0a5f\u0000\u0a75\u0000\u0a8b\u0000\u0a9c\u0000\u0aad\u0000\u0ab9\u0000\u0ac7\u0000\u0ad3\u0000\u0ada\u0000\u0ae2\u0000\u0b06\u0000\u0b14\u0000\u0b1f\u0000\u0b26\u0000\u0b2d\u0000\u0b51\u0000\u0b95\u0000\u0bc0\u0000\u0be4\u0000\u0be8\u0000\u0c10\u0000\u0c14\u0000\u0c3b\u0000\u0c3f\u0000\u0c6c\u0000\u0c70\u0000\u0c9b\u0000\u0ccc\u0000\u0cd0\u0000\u0cf4\u0000\u0cf8\u0000\u0d03\u0000\u0d0a\u0000\u0d3c\u0000\u0d3e\u0000\u0d71\u0000\u0da4\u0000\u0dbb\u0000\u0dbf\u0000\u0dc8\u0000\u0dce\u0000\u0de5\u0000\u0dfc\u0000\u0e12\u0000\u0e28\u0000\u0e51\u0000\u0e5f\u0000\u0e6c\u0000\u0e89\u0000\u0e8c\u0000\u0e90\u0000\u0e92\u0000\u0e94\u0000\u0e9b\u0000\u0ea2\u0000\u0eab\u0000\u0eb9\u0000\u0ec2\u0000\u0ec3\u0000\u0ec4\u0000\u0ec6\u0000\u0ecf\u0000\u0edd\u0000\u0ee6\u0000\u0ee7\u0000\u0ee8\u0000\u0eea\u0000\u0ef3\u0000\u0eff\u0000\u0f08\u0000\u0f09\u0000\u0f0a\u0000\u0f0c\u0000\u0f15\u0000\u0f22\u0000\u0f2b\u0000\u0f2c\u0000\u0f2d\u0000\u0f2f\u0000\u0f38\u0000\u0f46\u0000\u0f4f\u0000\u0f50\u0000\u0f51\u0000\u0f53\u0000\u0f7b\u0000\u0f92\u0000\u0fa5\u0000\u0fb8\u0000\u0fba\u0000\u0fc1\u0000\u0fc8\u0000\u0fcf\u0000\u0fd1\u0000\u0fd8\u0000\u0fdd\u0000\u0fe4\u0000\u0fe8\u0000\u0fef\u0000\u0ff9\u0000\u1000\u0000\u1028\u0000\u1050\u0000\u105e\u0000\u1080\u0000\u10b2\u0000\u10c0\u0000\u10c9\u0000\u10db\u0000\u10ed\u0000\u10f1\u0000\u10f5\u0000\u10fa\u0000\u1119\u0000\u1133\u0000\u113a\u0000\u1141\u0000\u1148\u0000\u1163\u0000\u1171\u0000\u1176\u0000\u117a\u0000\u1188\u0000\u1196\u0000\u11a4\u0000\u11a6\u0000\u11bc\u0000\u11be\u0000\u11c0\u0000\u11d5\u0000\u11de\u0000\u11e7\u0000\u1207\u0000\u120d\u0000\u1247\u0000\u128b\u0000\u12a3\u0000\u12b8\u0000\u12d7\u0000\u12f9\u0000\u1311\u0000\u1326\u0000\u1345\u0000\u1367\u0000\u1371\u0000\u1375\u0000\u1382\u0000\u13aa\u0000\u13ce\u0000\u13f2\u0000\u141a\u0000\u143e\u0000\u1462\u0000\u148a\u0000\u14ae\u0000\u14d2\u0000\u14fd\u0000\u1521\u0000\u1525\u0000\u154d\u0000\u1551\u0000\u1578\u0000\u157c\u0000\u15a9\u0000\u15ad\u0000\u15b7\u0000\u15e2\u0000\u1613\u0000\u1617\u0000\u163b\u0000\u163f\u0000\u1649\u0000\u1654\u0000\u165b\u0000\u168d\u0000\u16a2\u0000\u16b3\u0000\u16ba\u0000\u16cf\u0000\u16de\u0000\u16e5\u0000\u16e9\u0000\u16ed\u0000\u1701\u0000\u1708\u0000\u1734\u0000\u173a\u0000\u176c\u0000\u179e\u0000\u17a7\u0000\u17c3\u0000\u17f5\u0000\u1827\u0000\u182e\u0000\u1843\u0000\u1857\u0000\u186b\u0000\u189d\u0000\u18cf\u0000\u18df\u0000\u18e8\u0000\u18fc\u0000\u190c\u0000\u1915\u0000\u1921\u0000\u1931\u0000\u193a\u0000\u1946\u0000\u1956\u0000\u195f\u0000\u1965\u0000\u1975\u0000\u197e\u0000\u1994\u0000\u19a4\u0000\u19ad\u0000\u19b0\u0000\u19c0\u0000\u19c9\u0000\u19d3\u0000\u19e3\u0000\u19ec\u0000\u19f0\u0000\u1a00\u0000\u1a09\u0000\u1a10\u0000\u1a20\u0000\u1a29\u0000\u1a36\u0000\u1a3b\u0000\u1a43\u0000\u1a4a\u0000\u1a51\u0000\u1a57\u0000\u1a5d\u0000\u1a63\u0000\u1a6d\u0000\u1a75\u0000\u1a7b\u0000\u1a80\u0000\u1a86\u0000\u1a88\u0000\u1a8a\u0000\u1a9a\u0000\u1aa3\u0000\u1ab0\u0000\u1ab2\u0000\u1ab4\u0000\u1ac4\u0000\u1acd\u0000\u1ada\u0000\u1adc\u0000\u1ade\u0000\u1aee\u0000\u1af7\u0000\u1b04\u0000\u1b06\u0000\u1b08\u0000\u1b18\u0000\u1b21\u0000\u1b2e\u0000\u1b30\u0000\u1b32\u0000\u1b42\u0000\u1b4b\u0000\u1b58\u0000\u1b5a\u0000\u1b5c\u0000\u1b6c\u0000\u1b75\u0000\u1b82\u0000\u1b84\u0000\u1b86\u0000\u1b96\u0000\u1b9f\u0000\u1bac\u0000\u1bae\u0000\u1bb0\u0000\u1bc0\u0000\u1bc9\u0000\u1bd6\u0000\u1bd8\u0000\u1bda\u0000\u1bea\u0000\u1bf3\u0000\u1c00\u0000\u1c02\u0000\u1c04\u0000\u1c14\u0000\u1c1d\u0000\u1c2a\u0000\u1c2c\u0000\u1c2e\u0000\u1c3e\u0000\u1c47\u0000\u1c54\u0000\u1c64\u0000\u1c6d\u0000\u1c73\u0000\u1c79\u0000\u1c84\u0000\u1c8e\u0000\u1c98\u0000\u1cb4\u0000\u1cb8\u0000\u1cc4\u0000\u1cc7\u0000\u1cce\u0000\u1cd9\u0000\u1ce3\u0000\u1cef\u0000\u1cf4\u0000\u1d03\u0000\u1d0e\u0000\u1d23\u0000\u1d29\u0000\u1d3a\u0000\u1d46\u0000\u1d50\u0000\u1d5d\u0000\u1d69\u0000\u1d7a\u0000\u1d7c\u0000\u1d90\u0000\u1d98\u0000\u1d9c\u0000\u1da6\u0000\u1dad\u0000\u1db9\u0000\u1dc0\u0000\u1dcc\u0000\u1dda\u0000\u1e0c\u0000\u1e12\u0000\u1e3b\u0000\u1e50\u0000\u1e6c\u0000\u1e88\u0000\u1e8f\u0000\u1e93\u0000\u1ea5\u0000\u1eae\u0000\u1ec4\u0000\u1ecc\u0000\u1ed5\u0000\u1ede\u0000\u1ee5\u0000\u1ef3\u0000\u1ef7\u0000\u1f15\u0000\u1f22\u0000\u1fac\u0000\u1fc4\u0000\u1fd6\u0000\u1fef\u0000\u200e\u0000\u2012\u0000\u2014\u0000\u2039\u0000\u203b\u0000\u2060\u0000\u2074\u0000\u2085\u0000\u2099\u0000\u20a6\u0000\u20ad\u0000\u20c2\u0000\u20cf\u0000\u20dc\u0000\u20e9\u0000\u20fe\u0000\u210b\u0000\u2112\u0000\u212c\u0000\u2136\u0000\u21b5\u0000\u21d1\u0000\u21ea\u0000\u21f9\u0000\u2225\u0000\u2230\u0000\u2243\u0000\u2259\u0000\u226d\u0000\u2283\u0000\u229d\u0000\u22b3\u0000\u22cd\u0000\u22e3\u0000\u2300\u0000\u2316\u0000\u2330\u0000\u2346\u0000\u2359\u0000\u236f\u0000\u238a\u0000\u23a0\u0000\u23b5\u0000\u23cb\u0000\u23de\u0000\u23f4\u0000\u2406\u0000\u241c\u0000\u242e\u0000\u2444\u0000\u2457\u0000\u246d\u0000\u247b\u0000\u2491\u0000\u24a0\u0000\u24a2\u0000\u24b6\u0000\u24be\u0000\u24d4\u0000\u24ed\u0000\u24f7\u0000\u24f9\u0000\u250d\u0000\u2519\u0000\u2525\u0000\u252f\u0000\u2531\u0000\u2542\u0000\u2542\u0000\u2542\u0000\u254e\u0000\u255a\u0000\u2570\u0000\u2586\u0000\u2588\u0000\u25aa\u0000\u25d6\u0000\u25d8\u0000\u25fa\u0000\u2626\u0000\u2628\u0000\u2648\u0000\u2674\u0000\u2676\u0000\u2695\u0000\u26c1\u0000\u26c3\u0000\u26e8\u0000\u2714\u0000\u2716\u0000\u2741\u0000\u276d\u0000\u276f\u0000\u2791\u0000\u27bd\u0000\u27bf\u0000\u27ea\u0000\u2816\u0000\u2818\u0000\u283e\u0000\u286a\u0000\u286c\u0000\u2893\u0000\u28bf\u0000\u28c1\u0000\u28e5\u0000\u2911\u0000\u2913\u0000\u293b\u0000\u2967\u0000\u2969\u0000\u298a\u0000\u2996\u0000\u2998\u0000\u29d3\u0000\u29e2\u0000\u2a07\u0000\u2a09\u0000\u2a49\u0000\u2a58\u0000\u2a7d\u0000\u2a7f\u0000\u2ab4\u0000\u2ac3\u0000\u2ae8\u0000\u2aea\u0000\u2b0e\u0000\u2b1d\u0000\u2b42\u0000\u2b44\u0000\u2b66\u0000\u2b73\u0000\u2b8a\u0000\u2b97\u0000\u2ba4\u0000\u2bc0\u0000\u2bd7\u0000\u2be3\u0000\u2bef\u0000\u2c15\u0000\u2c2c\u0000\u2c3e\u0000\u2c50\u0000\u2c6c\u0000\u2c83\u0000\u2c90\u0000\u2c9d\u0000\u2ccf\u0000\u2ce6\u0000\u2cf8\u0000\u2d0a\u0000\u2d26\u0000\u2d3d\u0000\u2d4a\u0000\u2d57\u0000\u2d83\u0000\u2d9a\u0000\u2daf\u0000\u2dc4\u0000\u2df0\u0000\u2e18\u0000\u2e2f\u0000\u2e42\u0000\u2e55\u0000\u2e6c\u0000\u2e80\u0000\u2e99\u0000\u2eb9\u0000\u2ed0\u0000\u2ee3\u0000\u2f04\u0000\u2f1b\u0000\u2f2f\u0000\u2f43\u0000\u2f5a\u0000\u2f68\u0000\u2f76\u0000\u2f96\u0000\u2fad\u0000\u2fbc\u0000\u2fcb\u0000\u2fec\u0000\u3003\u0000\u3017\u0000\u302b\u0000\u305d\u0000\u3074\u0000\u3083\u0000\u309b\u0000\u30c1\u0000\u30d8\u0000\u30ea\u0000\u30fc\u0000\u3120\u0000\u3137\u0000\u3148\u0000\u3159\u0000\u317e\u0000\u31a7\u0000\u31b5\u0000\u31c2\u0000\u31e7\u0000\u3230\u0000\u323a\u0000\u323e\u0000\u3270\u0000\u32a2\u0000\u32fc\u0000\u3311\u0000\u3313\u0000\u3321\u0000\u332f\u0000\u333b\u0000\u3348\u0000\u3356\u0000\u336a\u0000\u3379\u0000\u338a\u0000\u33af\u0000\u33d4\u0000\u33f9\u0000\u341e\u0000\u3422\u0000\u3428\u0000\u344d\u0000\u3472\u0000\u3474\u0000\u347d\u0000\u3483\u0000\u3489\u0000\u3493\u0000\u3497\u0000\u34a3\u0000\u34a6\u0000\u34b1\u0000\u34bb\u0000\u34c7\u0000\u34cc\u0000\u34d7\u0000\u34ec\u0000\u34f2\u0000\u34fe\u0000\u3508\u0000\u3515\u0000\u3517\u0000\u352b\u0000\u3533\u0000\u353d\u0000\u354b\u0000\u3559\u0000\u3562\u0000\u3578\u0000\u3580\u0000\u3589\u0000\u3592\u0000\u3599\u0000\u359b\u0000\u35b1\u0000\u35b3\u0000\u35b7\u0000\u35be\u0000\u35d3\u0000\u35d7\u0000\u35db\u0000\u35df\u0000\u35e3\u0000\u35ea\u0000\u35f4\u0000\u35fb\u0000\u3610\u0000\u361a\u0000\u3624\u0000\u362e\u0000\u3638\u0000\u363f\u0000\u3644\u0000\u364b\u0000\u3660\u0000\u3665\u0000\u366a\u0000\u366f\u0000\u3674\u0000\u367b\u0000\u3688\u0000\u368f\u0000\u36a4\u0000\u36b1\u0000\u36be\u0000\u36cb\u0000\u36d8\u0000\u36df\u0000\u36ea\u0000\u36f1\u0000\u3706\u0000\u3711\u0000\u371c\u0000\u3727\u0000\u3732\u0000\u3739\u0000\u3746\u0000\u374d\u0000\u3762\u0000\u376f\u0000\u377c\u0000\u3789\u0000\u3796\u0000\u379d\u0000\u37aa\u0000\u37b1\u0000\u37c6\u0000\u37d3\u0000\u37e0\u0000\u37ed\u0000\u37fa\u0000\u3801\u0000\u380c\u0000\u3813\u0000\u3828\u0000\u3833\u0000\u383e\u0000\u3849\u0000\u3854\u0000\u385b\u0000\u3865\u0000\u386c\u0000\u3881\u0000\u388b\u0000\u3895\u0000\u389f\u0000\u38a9\u0000\u38b0\u0000\u38bd\u0000\u38c4\u0000\u38d9\u0000\u38e6\u0000\u38f3\u0000\u3900\u0000\u390d\u0000\u3914\u0000\u391d\u0000\u3924\u0000\u3939\u0000\u3942\u0000\u394b\u0000\u3954\u0000\u395d\u0000\u3964\u0000\u396e\u0000\u3975\u0000\u398a\u0000\u3994\u0000\u399e\u0000\u39a8\u0000\u39b2\u0000\u39b9\u0000\u39c5\u0000\u39cc\u0000\u39e1\u0000\u39ed\u0000\u39f9\u0000\u3a05\u0000\u3a11\u0000\u3a18\u0000\u3a23\u0000\u3a2a\u0000\u3a3f\u0000\u3a4a\u0000\u3a55\u0000\u3a60\u0000\u3a6b\u0000\u3a72\u0000\u3a74\u0000\u3a8e\u0000\u3a90\u0000\u3a95\u0000\u3a9a\u0000\u3aa6\u0000\u3aad\u0000\u3ac2\u0000\u3ace\u0000\u3ada\u0000\u3ae6\u0000\u3af2\u0000\u3af9\u0000\u3afe\u0000\u3b05\u0000\u3b1a\u0000\u3b1f\u0000\u3b24\u0000\u3b29\u0000\u3b2e\u0000\u3b35\u0000\u3b4a\u0000\u3b51\u0000\u3b66\u0000\u3b7b\u0000\u3b90\u0000\u3ba5\u0000\u3bba\u0000\u3bc1\u0000\u3bd1\u0000\u3bd8\u0000\u3bed\u0000\u3bfd\u0000\u3c0d\u0000\u3c1d\u0000\u3c2d\u0000\u3c34\u0000\u3c40\u0000\u3c47\u0000\u3c5c\u0000\u3c68\u0000\u3c74\u0000\u3c80\u0000\u3c8c\u0000\u3c93\u0000\u3c9f\u0000\u3ca6\u0000\u3cbb\u0000\u3cc7\u0000\u3cd3\u0000\u3cdf\u0000\u3ceb\u0000\u3cf2\u0000\u3cf8\u0000\u3cff\u0000\u3d14\u0000\u3d1a\u0000\u3d20\u0000\u3d26\u0000\u3d2c\u0000\u3d33\u0000\u3d39\u0000\u3d40\u0000\u3d55\u0000\u3d5b\u0000\u3d61\u0000\u3d67\u0000\u3d6d\u0000\u3d74\u0000\u3d7e\u0000\u3d85\u0000\u3d9a\u0000\u3da4\u0000\u3dae\u0000\u3db8\u0000\u3dc2\u0000\u3dc9\u0000\u3dcf\u0000\u3dd6\u0000\u3deb\u0000\u3df1\u0000\u3df7\u0000\u3dfd\u0000\u3e03\u0000\u3e0a\u0000\u3e0d\u0000\u3e14\u0000\u3e29\u0000\u3e2c\u0000\u3e2f\u0000\u3e32\u0000\u3e35\u0000\u3e3c\u0000\u3e4d\u0000\u3e54\u0000\u3e69\u0000\u3e7a\u0000\u3e8b\u0000\u3e9c\u0000\u3ead\u0000\u3eb4\u0000\u3ebf\u0000\u3ec6\u0000\u3edb\u0000\u3ee6\u0000\u3ef1\u0000\u3efc\u0000\u3f07\u0000\u3f0e\u0000\u3f18\u0000\u3f1f\u0000\u3f34\u0000\u3f3e\u0000\u3f48\u0000\u3f52\u0000\u3f5c\u0000\u3f63\u0000\u3f67\u0000\u3f6e\u0000\u3f83\u0000\u3f87\u0000\u3f8b\u0000\u3f8f\u0000\u3f93\u0000\u3f9a\u0000\u3fa1\u0000\u3fa8\u0000\u3fbd\u0000\u3fc4\u0000\u3fcb\u0000\u3fd2\u0000\u3fd9\u0000\u3fe0\u0000\u3fe5\u0000\u3fec\u0000\u4001\u0000\u4006\u0000\u400b\u0000\u4010\u0000\u4015\u0000\u401c\u0000\u4029\u0000\u4030\u0000\u4045\u0000\u4052\u0000\u405f\u0000\u406c\u0000\u4079\u0000\u4080\u0000\u4096\u0000\u409d\u0000\u40b2\u0000\u40c8\u0000\u40de\u0000\u40f4\u0000\u410a\u0000\u4111\u0000\u4115\u0000\u4119\u0000\u412b\u0000\u4147\u0000\u414e\u0000\u4152\u0000\u4164\u0000\u4179\u0000\u4195\u0000\u41b1\u0000\u41cd\u0000\u41e9\u0000\u41f0\u0000\u41f4\u0000\u4206\u0000\u421a\u0000\u4221\u0000\u4236\u0000\u424a\u0000\u425e\u0000\u4272\u0000\u4286\u0000\u428d\u0000\u4298\u0000\u429f\u0000\u42b4\u0000\u42bf\u0000\u42ca\u0000\u42d5\u0000\u42e0\u0000\u42e7\u0000\u42f2\u0000\u42fe\u0000\u430e\u0000\u4317\u0000\u431c\u0000\u4326\u0000\u432d\u0000\u4331\u0000\u4341\u0000\u434a\u0000\u434f\u0000\u4359\u0000\u4360\u0000\u4364\u0000\u436b\u0000\u4372\u0000\u4378\u0000\u439e\u0000\u43a4\u0000\u43ca\u0000\u43d0\u0000\u43da\u0000\u43ec\u0000\u4440\u0000\u444e\u0000\u4456\u0000\u4464\u0000\u4486\u0000\u4498\u0000\u44ae\u0000\u44b2\u0000\u44e1\u0000\u44eb\u0000\u451a\u0000\u4524\u0000\u4553\u0000\u455d\u0000\u458c\u0000\u4596\u0000\u45c5\u0000\u45cf\u0000\u45fe\u0000\u4608\u0000\u4637\u0000\u4641\u0000\u464f\u0000\u4675\u0000\u46a4\u0000\u46ae\u0000\u46b2\u0000\u46ce\u0000\u46fd\u0000\u4707\u0000\u4710\u0000\u471c\u0000\u4722\u0000\u4748\u0000\u4751\u0000\u4772\u0000\u4798\u0000\u47b9\u0000\u47df\u0000\u47e8\u0000\u4817\u0000\u4821\u0000\u4825\u0000\u4841\u0000\u4870\u0000\u487a\u0000\u4883\u0000\u488c\u0000\u4890\u0000\u48be\u0000\u48e4\u0000\u48ed\u0000\u48f6\u0000\u48fa\u0000\u4928\u0000\u494e\u0000\u4957\u0000\u4960\u0000\u4964\u0000\u4992\u0000\u49b8\u0000\u49c1\u0000\u49ca\u0000\u49ce\u0000\u49fc\u0000\u4a22\u0000\u4a2b\u0000\u4a34\u0000\u4a38\u0000\u4a66\u0000\u4a8c\u0000\u4a95\u0000\u4a9e\u0000\u4aa2\u0000\u4ad0\u0000\u4af6\u0000\u4b25\u0000\u4b2f\u0000\u4b5e\u0000\u4b68\u0000\u4bad\u0000\u4bb6\u0000\u4bbb\u0000\u4bbd\u0000\u4bbf\u0000\u4bc3\u0000\u4bcc\u0000\u4bd0\u0000\u4c2d\u0000\u4c5c\u0000\u4c66\u0000\u4c6a\u0000\u4cc7\u0000\u4cc8\u0000\u4cf7\u0000\u4d01\u0000\u4d30\u0000\u4d3a\u0000\u4d69\u0000\u4d73\u0000\u4da2\u0000\u4dac\u0000\u4ddb\u0000\u4de5\u0000\u4e14\u0000\u4e1e\u0000\u4e4d\u0000\u4e57\u0000\u4e86\u0000\u4e90\u0000\u4e96\u0000\u4e99\u0000\u4e9c\u0000\u4ea0\u0000\u4ea6\u0000\u4ea9\u0000\u4eac\u0000\u4eaf\u0000\u4eb2\u0000\u4eb5\u0000\u4eb9\u0000\u4eba\u0000\u4eba\u0000\u4ebb\u0000\u4ebb\u0000\u4ebc\u0000\u4ebf\u0000\u4ec2\u0000\u4ec5\u0000\u4ec9\u0000\u4eca\u0000\u4eca\u0000\u4ecb\u0000\u4ecb\u0000\u4ecc\u0000\u4ecf\u0000\u4ed2\u0000\u4ed5\u0000\u4ed9\u0000\u4eda\u0000\u4eda\u0000\u4edb\u0000\u4edb\u0000\u4edc\u0000\u4edf\u0000\u4ee6\u0000\u4f15\u0000\u4f1f\u0000\u4f28\u0000\u4f38\u0000\u4f66\u0000\u4f6c\u0000\u4f72\u0000\u4f98\u0000\u4fc7\u0000\u4fd1\u0000\u4fda\u0000\u4fea\u0000\u5018\u0000\u501e\u0000\u5024\u0000\u504a\u0000\u5079\u0000\u5083\u0000\u5089\u0000\u508f\u0000\u50b5\u0000\u50e4\u0000\u50ee\u0000\u50f2\u0000\u5118\u0000\u5147\u0000\u5151\u0000\u515a\u0000\u516a\u0000\u5198\u0000\u519c\u0000\u51c2\u0000\u51f1\u0000\u51fb\u0000\u51ff\u0000\u5209\u0000\u5238\u0000\u523e\u0000\u5244\u0000\u524a\u0000\u5270\u0000\u5296\u0000\u52c5\u0000\u52cf\u0000\u52dd\u0000\u52f1\u0000\u52f9\u0000\u52fa\u0000\u5308\u0000\u5309\u0000\u5316\u0000\u5318\u0000\u5321\u0000\u5333\u0000\u5334\u0000\u533d\u0000\u5345\u0000\u536b\u0000\u539a\u0000\u53a4\u0000\u53d3\u0000\u53dd\u0000\u53df\u0000\u5411\u0000\u542b\u0000\u5445\u0000\u5491\u0000\u5493\u0000\u549c\u0000\u54a9\u0000\u5526\u0000\u552c\u0000\u5532\u0000\u5561\u0000\u556b\u0000\u557f\u0000\u55ae\u0000\u55b8\u0000\u55ba\u0000\u55ec\u0000\u5606\u0000\u5620\u0000\u566c\u0000\u5675\u0000\u56a4\u0000\u56ae\u0000\u56b0\u0000\u56e2\u0000\u56fc\u0000\u5716\u0000\u5762\u0000\u5764\u0000\u57a8\u0000\u57ae\u0000\u57b7\u0000\u57e6\u0000\u57f0\u0000\u5818\u0000\u582b\u0000\u582e\u0000\u586a\u0000\u589e\u0000\u58ae\u0000\u58b8\u0000\u58c2\u0000\u58f4\u0000\u5909\u0000\u590d\u0000\u5927\u0000\u5934\u0000\u5966\u0000\u5968\u0000\u59a4\u0000\u59d8\u0000\u59e9\u0000\u59fd\u0000\u59fe\u0000\u5a00\u0000\u5a04\u0000\u5a14\u0000\u5a16\u0000\u5a52\u0000\u5a86\u0000\u5a87\u0000\u5a88\u0000\u5a96\u0000\u5a98\u0000\u5a99\u0000\u5add\u0000\u5ae3\u0000\u5ae5\u0000\u5b14\u0000\u5b1e\u0000\u5b4d\u0000\u5b57\u0000\u5b5d\u0000\u5b83\u0000\u5bb2\u0000\u5bbc\u0000\u5beb\u0000\u5bf5\u0000\u5c24\u0000\u5c2e\u0000\u5c5d\u0000\u5c67\u0000\u5c71\u0000\u5c97\u0000\u5cc6\u0000\u5cd0\u0000\u5cec\u0000\u5d1b\u0000\u5d25\u0000\u5d54\u0000\u5d5e\u0000\u5d8d\u0000\u5d97\u0000\u5dc6\u0000\u5dd0\u0000\u5e02\u0000\u5e31\u0000\u5e3b\u0000\u5e6d\u0000\u5e9c\u0000\u5ea6\u0000\u5ea6\u0000\u5ed5\u0000\u5edf\u0000\u5ee6\u0000\u5f1a\u0000\u5f24\u0000\u5f4a\u0000\u5f7e\u0000\u5f88\u0000\u5fae\u0000\u5fbf\u0000\u5fc2\u0000\u5fd1\u0000\u5fd4\u0000\u5fdc\u0000\u5ff0\u0000\u5ff3\u0000\u6019\u0000\u6020\u0000\u6033\u0000\u6041\u0000\u6067\u0000\u6096\u0000\u60a0\u0000\u60af\u0000\u60b2\u0000\u60b3\u0000\u60c2\u0000\u60c5\u0000\u60d4\u0000\u60d7\u0000\u6106\u0000\u6110\u0000\u6111\u0000\u6111\u0000\u6112\u0000\u6112\u0000\u6113\u0000\u6113\u0000\u6114\u0000\u6114\u0000\u6115\u0000\u6115\u0000\u6116\u0000\u6116\u0000\u6117\u0000\u6117\u0000\u6118\u0000\u6118\u0000\u6119\u0000\u6119\u0000\u611a\u0000\u611a\u0000\u611e\u0000\u6127\u0000\u612d\u0000\u612e\u0000\u615c\u0000\u6165\u0000\u6167\u0000\u6195\u0000\u619d\u0000\u61c3\u0000\u61ca\u0000\u61f0\u0000\u621f\u0000\u6229\u0000\u6231\u0000\u6257\u0000\u625e\u0000\u6284\u0000\u6285\u0000\u6285\u0000\u6286\u0000\u6286\u0000\u6287\u0000\u6287\u0000\u6288\u0000\u6288\u0000\u6289\u0000\u6289\u0000\u628a\u0000\u628a\u0000\u628b\u0000\u628b\u0000\u628c\u0000\u628c\u0000\u628d\u0000\u628d\u0000\u628e\u0000\u628e\u0000\u62bd\u0000\u62c7\u0000\u62cb\u0000\u62d4\u0000\u62da\u0000\u62db\u0000\u6309\u0000\u630a\u0000\u630a\u0000\u630b\u0000\u630b\u0000\u630c\u0000\u630c\u0000\u630d\u0000\u630d\u0000\u630e\u0000\u630e\u0000\u630f\u0000\u630f\u0000\u6310\u0000\u6310\u0000\u6311\u0000\u6311\u0000\u6312\u0000\u6312\u0000\u6313\u0000\u6313\u0000\u631b\u0000\u6341\u0000\u6348\u0000\u636e\u0000\u639d\u0000\u63a7\u0000\u63b0\u0000\u63b7\u0000\u63c1\u0000\u63c8\u0000\u63db\u0000\u63e2\u0000\u63fb\u0000\u6402\u0000\u6424\u0000\u642b\u0000\u6440\u0000\u6447\u0000\u644e\u0000\u6455\u0000\u645b\u0000\u6462\u0000\u646b\u0000\u6474\u0000\u64a6\u0000\u64af\u0000\u64b8\u0000\u64c0\u0000\u64c4\u0000\u64ef\u0000\u6520\u0000\u654c\u0000\u657e\u0000\u65ae\u0000\u65d8\u0000\u65ff\u0000\u662a\u0000\u664c\u0000\u666d\u0000\u6698\u0000\u66c3\u0000\u66ef\u0000\u6710\u0000\u6735\u0000\u6767\u0000\u6799\u0000\u67c4\u0000\u67f6\u0000\u6822\u0000\u6854\u0000\u6886\u0000\u68b8\u0000\u68ea\u0000\u68f9\u0000\u6900\u0000\u6919\u0000\u6920\u0000\u6942\u0000\u694b\u0000\u6954\u0000\u6958\u0000\u6962\u0000\u696c\u0000\u697c\u0000\u6986\u0000\u6990\u0000\u69a0\u0000\u69a9\u0000\u69ce\u0000\u69f3\u0000\u6a18\u0000\u6a21\u0000\u6a25\u0000\u6a66\u0000\u6a6f\u0000\u6a74\u0000\u6abb\u0000\u6ac4\u0000\u6acd\u0000\u6aee\u0000\u6b14\u0000\u6b46\u0000\u6b7b\u0000\u6b84\u0000\u6ba5\u0000\u6bcb\u0000\u6bfd\u0000\u6c32\u0000\u6c3e\u0000\u6c46\u0000\u6c4c\u0000\u6c4d\u0000\u6c5c\u0000\u6c69\u0000\u6c6d\u0000\u6c6f\u0000\u6c88\u0000\u6c92\u0000\u6c9c\u0000\u6ca6\u0000\u6cb0\u0000\u6cba\u0000\u6cc4\u0000\u6cce\u0000\u6cd6\u0000\u6ce0\u0000\u6ce1\u0000\u6cf3\u0000\u6cf7\u0000\u6d01\u0000\u6d04\u0000\u6d0e\u0000\u6d17\u0000\u6d21\u0000\u6d35\u0000\u6d3f\u0000\u6d49\u0000\u6d53\u0000\u6d5d\u0000\u6d67\u0000\u6d71\u0000\u6d7b\u0000\u6d85\u0000\u6d8d\u0000\u6d97\u0000\u6d98\u0000\u6daa\u0000\u6dae\u0000\u6db8\u0000\u6dbb\u0000\u6dc5\u0000\u6dce\u0000\u6dd8\u0000\u6dec\u0000\u6df6\u0000\u6e12\u0000\u6e14\u0000\u6e2f\u0000\u6e30\u0000\u6e34\u0000\u6e35\u0000\u6e36\u0000\u6e3c\u0000\u6e3d\u0000\u6e41\u0000\u6e4b\u0000\u6e55\u0000\u6e5f\u0000\u6e69\u0000\u6e73\u0000\u6e7d\u0000\u6e85\u0000\u6e8b\u0000\u6e96\u0000\u6e9a\u0000\u6ea3\u0000\u6eab\u0000\u6ef0\u0000\u6ef7\u0000\u6f10\u0000\u6f14\u0000\u6f24\u0000\u6f6b\u0000\u6f6f\u0000\u6f78\u0000\u6f79\u0000\u6fae\u0000\u6fe0\u0000\u6fe1\u0000\u7016\u0000\u703e\u0000\u704c\u0000\u7075\u0000\u709e\u0000\u70c7\u0000\u70d2\u0000\u70de\u0000\u70e7\u0000\u70ed\u0000\u7113\u0000\u711c\u0000\u7122\u0000\u7148\u0000\u714f\u0000\u7156\u0000\u7168\u0000\u717a\u0000\u7189\u0000\u7191\u0000\u7193\u0000\u719c\u0000\u71ae\u0000\u71c0\u0000\u71d4\u0000\u71e9\u0000\u71fc\u0000\u720a\u0000\u721d\u0000\u7231\u0000\u723d\u0000\u724a\u0000\u7259\u0000\u726c\u0000\u7281\u0000\u7290\u0000\u729d\u0000\u72ad\u0000\u72ba\u0000\u7301\u0000\u7312\u0000\u7323\u0000\u736f\u0000\u737c\u0000\u7388\u0000\u73c4\u0000\u73ca\u0000\u73d6\u0000\u73f2\u0000\u7405\u0000\u7412\u0000\u745b\u0000\u7463\u0000\u7491\u0000\u749e\u0000\u74a7\u0000\u74ad\u0000\u74cc\u0000\u74d0\u0000\u74dd\u0000\u74e2\u0000\u74e9\u0000\u74f0\u0000\u7546\u0000\u754d\u0000\u7554\u0000\u7562\u0000\u7569\u0000\u7571\u0000\u7578\u0000\u757f\u0000\u7586\u0000\u75cb\u0000\u75dd\u0000\u75e2\u0000\u75e4\u0000\u75e6\u0000\u7615\u0000\u761f\u0000\u7631\u0000\u7663\u0000\u766b\u0000\u7680\u0000\u7688\u0000\u769c\u0000\u76a4\u0000\u76bb\u0000\u76c5\u0000\u76ea\u0000\u76f2\u0000\u76f9\u0000\u7702\u0000\u7720\u0000\u7743\u0000\u7761\u0000\u7784\u0000\u778c\u0000\u779c\u0000\u77a9\u0000\u77af\u0000\u77bd\u0000\u77d5\u0000\u77d7\u0000\u77d9\u0000\u77db\u0000\u77dd\u0000\u77df\u0000\u77e1\u0000\u77e3\u0000\u77e5\u0000\u77e7\u0000\u77e9\u0000\u77eb\u0000\u77ed\u0000\u77ef\u0000\u77f1\u0000\u77f3\u0000\u77f5\u0000\u77f7\u0000\u77f9\u0000\u77fb\u0000\u77fd\u0000\u77ff\u0000\u7801\u0000"
  };

  public static String getString(final int id) {
    final int location1ChunkIndex = id / 4096;
    final int location1Index = id % 4096;
    final int location2ChunkIndex = (id + 1) / 4096;
    final int location2Index = (id + 1) % 4096;
    final String locations1 = locationChunks[location1ChunkIndex];
    final String locations2 = locationChunks[location2ChunkIndex];
    final int offset1Low = locations1.charAt(2 * location1Index) & 0xffff;
    final int offset1High = locations1.charAt(2 * location1Index + 1) & 0xffff;
    final int offset1 = (offset1High << 16) | offset1Low;
    final int offset2Low = locations2.charAt(2 * location2Index);
    final int offset2High = locations2.charAt(2 * location2Index + 1);
    final int offset2 = (offset2High << 16) | offset2Low;
    final int length = offset2 - offset1;
    final char[] stringChars = new char[length];
    for (int i = 0; i < length; ++i) {
      final int offset = offset1 + i;
      final int indexChunkIndex = offset / 8192;
      final int indexIndex = offset % 8192;
      final String indexes = indexChunks[indexChunkIndex];
      final int index = indexes.charAt(indexIndex) & 0xffff;
      final int charChunkIndex = index / 8192;
      final int charIndex = index % 8192;
      final String chars = charChunks[charChunkIndex];
      stringChars[i] = chars.charAt(charIndex);
    }
    return new String(stringChars);
  }
}

Bug: can't import project

Hello,

I wanted to have a look at this repository before using it on a real app.
I got this when I tried to open it:

image

How come?

full log:

log.txt

I want to hide Deobfuscator on Reverse Engineering

deobfuscator

I want to hide your deobfuscator class because if i didn't do it then everybody will be able to decode the string used in my project using the array return in the class.

So please help me and sorry for the disturbance.

Strings are not obfuscated on innerclasses.

Strings are not obfuscated in inner classes when decompiled. for example

Public static void Test(){
AlertDialog test = new AlertDialog(this);
test .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@OverRide
public void onClick(DialogInterface dialog, int which) {
//Strings in here wont be obfuscated
dialog.dismiss();
}
});
}

Dex format not supported

I obtained this error using annotaition @obfuscate over an interface in android java.

name '$private$<clinit>' in class 'com.**********.utils.Constants$Storage$-CC' cannot be represented in dex format.

after removing the @obfuscate annotaion this error disappeared.

Not compatible with Windows

Hello, I´m trying to use it on Android Studio for windows, but I cannot because it generate a long path that windows don´t recognize.
On linux this problem do not occurs.

compileSdkVersion is not specified. Please add it to build.gradle

After I click Sync Now I get next error:
Executing tasks: [:app:assembleDebug] in project /Users/macbook/AndroidStudioProjects/ObfuscationTest

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring root project 'Obfuscation Test'.

compileSdkVersion is not specified. Please add it to build.gradle

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 99ms`

My build.gradle (project):

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.2"
classpath "io.michaelrocks:paranoid-gradle-plugin:0.3.2"

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

}

apply plugin: 'com.android.application'
apply plugin: 'io.michaelrocks.paranoid'

allprojects {
repositories {
google()
jcenter()
}
}

My build.gradle (module):
plugins {
id 'com.android.application'
}

android {
compileSdkVersion 30
buildToolsVersion "30.0.3"

defaultConfig {
    applicationId "com.artem.obfuscationtest"
    minSdkVersion 24
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

}

dependencies {

implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

}

Error while building Debug Apk

Error:Execution failed for task ':app:transformClassesWithParanoidForDebug'.

com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.ClassNotFoundException: android.location.Address

R8 guildelines

Hi Micheal!
Thanks for the neat project. It took me a while to test it with R8 and BuildConfig and I'd like to contribute back by writing these guidelines. Do they make sense? Do you use it in any other way?

I would say issue #11 is not necessary to do if obfuscation is used like in my example.

Usage with R8 and BuildConfig

A common use case is to have configuration specific variables in the generated BuildConfig class which cannot be obfuscated by adding @Obfuscate, for example:

public final class BuildConfig {
  public static final String API_URL = "https://github.com/";
}

Instead of using the variables directly, we can define another class that will wrap the BuildConfig fields and optionally add its own.

@Obfuscate
object Secrets {
    val API_SECRET = "user:password"
    val API_URL = BuildConfig.API_URL
}

If you are using R8, it's important that the fields are NOT const val as they would get moved to usage sites and not obfuscated. That also means that R8 will remove all public static final String fields from the compiled BuildConfig class, so they only have to be obfuscated where they are used.

Decompiled Secrets.kt with R8 enabled shows that Deobfuscator is called in the constructor to initialize API_SECRET and API_URL fields and the generated getter functions can access them afterwards without calling Deobfuscator again.

.class public final Lcom/example/app/Secrets;
.super Ljava/lang/Object;
.source "Secrets.kt"


# static fields
.field private static final API_SECRET:Ljava/lang/String;

.field private static final API_URL:Ljava/lang/String;

.field public static final INSTANCE:Lcom/example/app/Secrets;


# direct methods
.method static constructor <clinit>()V
    .registers 2
    const-wide v0, -0x52ca9f23686ca7e4L    # -6.559274792077535E-91
    invoke-static {v0, v1}, Lio/michaelrocks/paranoid/Deobfuscator$app$App;->getString(J)Ljava/lang/String;
    move-result-object v0
    sput-object v0, Lcom/example/app/Secrets;->API_SECRET:Ljava/lang/String;
    const-wide v0, -0x52ca9f31686ca7e4L    # -6.559209248608569E-91
    invoke-static {v0, v1}, Lio/michaelrocks/paranoid/Deobfuscator$app$App;->getString(J)Ljava/lang/String;
    move-result-object v0
    sput-object v0, Lcom/example/app/Secrets;->API_URL:Ljava/lang/String;
    .line 1
    new-instance v0, Lcom/example/app/Secrets;
    invoke-direct {v0}, Lcom/example/app/Secrets;-><init>()V
    sput-object v0, Lcom/example/app/Secrets;->INSTANCE:Lcom/example/app/Secrets;
    const-wide v0, -0x52ca9f1d686ca7e4L    # -6.559302882135663E-91
    .line 2
    invoke-static {v0, v1}, Lio/michaelrocks/paranoid/Deobfuscator$app$App;->getString(J)Ljava/lang/String;
    move-result-object v0
    sput-object v0, Lcom/example/app/Secrets;->API_SECRET:Ljava/lang/String;
    const-wide v0, -0x52ca9f6b686ca7e4L    # -6.558937711379997E-91
    .line 3
    invoke-static {v0, v1}, Lio/michaelrocks/paranoid/Deobfuscator$app$App;->getString(J)Ljava/lang/String;
    move-result-object v0
    sput-object v0, Lcom/example/app/Secrets;->API_URL:Ljava/lang/String;
    return-void
.end method

.method private constructor <init>()V
    .registers 1
    .line 1
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    return-void
.end method


# virtual methods
.method public final getAPI_SECRET()Ljava/lang/String;
    .registers 2
    .line 1
    sget-object v0, Lcom/example/app/Secrets;->API_SECRET:Ljava/lang/String;
    return-object v0
.end method

.method public final getAPI_URL()Ljava/lang/String;
    .registers 2
    .line 1
    sget-object v0, Lcom/example/app/Secrets;->API_URL:Ljava/lang/String;
    return-object v0
.end method

Possible bug: "Could not initialize class io.michaelrocks.paranoid.grip.ClassesQueryBuilder"

Hello,

Background

Sadly I can't find anything similar to this issue being written anywhere.
Basically, I'm trying to offer an obfuscated AAR via a Github&Jitpack, while having the repository on Github to be private.

The problem

I'm having a problem publishing the repository on Jitpack as I get this error:

...
ERROR: No build artifacts found
Expected artifacts in: $HOME/.m2/repository/MySdk/library/unspecified

According to my experience, Jitpack works very well with open sourced repositories, so what I tried is to create a new project with an almost-empty sample and Android-library. The Android-library holds the AAR file inside CallerIdSdkWrapper\library\libs , and later I will check what's going on with Jitpack (hopefully it will be able to handle this).

Thing is, using this workaround (with or without the AAR file) , on the local project that wraps the SDK, I get this error:

Execution failed for task ':library:transformClassesWithParanoidForDebug'.
> Could not initialize class io.michaelrocks.paranoid.grip.ClassesQueryBuilder

As for the gradle files, on the project level I have this:

classpath 'io.michaelrocks:paranoid-gradle-plugin:0.3.3'

On the library level I have this (also tried to add the same to app-level) :

id 'io.michaelrocks.paranoid'
    
...

//https://github.com/MichaelRocks/paranoid/issues/38
api("io.michaelrocks:paranoid-core:0.3.3")

The AAR file was created while using paranoid already, so this issue seems very weird for me.

How can I made the Android-library use "paranoid" library without having this issue? What could be wrong with it?

Compilation error

Compilation error:
E:\Username\FolderName\AppName\app\build\tmp\transformClassesWithParanoidForDebug\src\io\michaelrocks\paranoid\Deobfuscator$app$Debug.java:3:8: too many constants

Caused by: io.michaelrocks.paranoid.processor.ParanoidException: Compilation error:
E:\Username\FolderName\AppName\app\build\tmp\transformClassesWithParanoidForDebug\src\io\michaelrocks\paranoid\Deobfuscator$app$Debug.java:3:8: too many constants
at io.michaelrocks.paranoid.processor.Generator.generateDeobfuscator(Generator.kt:73)

This error comes when i compile after using 0.2.2 , i have lot of string constants to obfuscate.Please help and look in to the issue

[0.3.x] Release app crashes with ClassNotFoundException for DeobfuscatorHelper

Thanks @MichaelRocks for an excellent tool!

I have an Android library project (AAR) that's using paranoid. It worked fine with 0.2.5 - but after I upgraded to 0.3.2, I hit this runtime error in the app that's using that library AAR:

java.lang.ClassNotFoundException: Didn't find class "io.michaelrocks.paranoid.DeobfuscatorHelper" on path: DexPathList..

NOTE: this only in the release build (with R8 turned on)

I didn't have time to dig into this problem, but 0.3.0 is the first version with this problem. Are some required R8 rules missing?

Deobfuscation - able to identify the strings

Step 1 reverse engineering.
step 2 Go to class file and get the string line Example - public static String eduScreenExpDate = Deobfuscator$app$Release.getString(6436);
Step 3 - Go to Deobfuscator$app$Release class file
Deobfuscator$app$Release.java

Add this line in java file and run - System.out.println("Value"+Deobfuscator$app$Release.getString(6377));
We are able to get values.
See we can add any proguard not to display this file

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.