Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8209113

Use WeakReference for lastFontStrike for created Fonts

    XMLWordPrintable

Details

    • 2d
    • b27
    • x86_64
    • linux

    Backports

      Description

        ADDITIONAL SYSTEM INFORMATION :
        Tested Fedora 27, with Oracle JDK 10.0.2 and also OpenJDK 1.8.0_171.

        A DESCRIPTION OF THE PROBLEM :
        When processing many TrueType fonts, the memory use grows significantly beyond the -Xmx setting. This can be reproduced with the included FontLeak program.

        The created font resources use native memory, which explains the growth. However, it seems that the memory is not disposed properly.

        The first problem is that the Java2D Disposer that is responsible for clearing the font resources does not start working. This is due to SoftReferences being used in the system, which could potentially be made into weak references via -Dsun.java2d.font.reftype=weak.

        There seems to be a bug that causes this not to work, and I found the following to be the cause:

        Disposer holds hard reference to FontStrikeDisposer (via 'records' hash table), waiting for a soft reference to FileFontStrike to expire. This reference can be made weak by using '-Dsun.java2d.font.reftype=weak'.
        The FontStrikeDisposer holds hard reference to TrueTypeFont (via field 'font2D').
        The TrueTypeFont holds a soft reference to FileFontStrike (via field 'lastFontStrike').

        The soft references prevent the FileFontStrike from being garbage collected until the system is nearly out of memory. This prevents the disposer from disposing the FontStrikeDisposer, which would also free the indirect hard reference to the TrueTypeFont.

        TrueTypeFont holds a hard reference to T2KFontScaler, which is responsible for most of the memory use.
        Disposer will not dispose the scaler until a weak reference to the TrueTypeFont expires. Due to the above reference cycle, this will not happen until the soft reference to FileFontStrike expires, which is in contrary to what 'sun.java2d.font.reftype' seems to be intended for.

        The included patch to Font2D.java would make the included example program behave a lot better, when combined with -Dsun.java2d.font.reftype=weak.

        There also seems to be a problem of the native memory not being freed properly if there is sufficient time (or number of operations) between the creation and disposal of the font resources. The included ScalerLeak program can be used to reproduce this problem. I included this problem in the same bug report as it may complicate the analysis of the FontLeak problem.

        Potentially related issues include:
        https://bugs.openjdk.java.net/browse/JDK-8173799
        https://bugs.openjdk.java.net/browse/JDK-6893655 (should be fixed already, but this problem may be a regression to this old fix)

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        To reproduce, run the included FontLeak.java and ScalerLeak.java programs with the included TTF font file.

        EXPECTED VERSUS ACTUAL BEHAVIOR :
        EXPECTED -
        Memory use stays close to -Xmx setting.
        ACTUAL -
        Memory use grows way beyond the -Xmx setting, and will not get freed even after Disposer thread eventually disposes the resources.

        ---------- BEGIN SOURCE ----------
        // FontLeak.java

        import java.awt.Font;
        import java.awt.FontFormatException;
        import java.awt.font.FontRenderContext;
        import java.awt.font.LineMetrics;
        import java.awt.geom.AffineTransform;
        import java.io.FileInputStream;
        import java.io.IOException;
        import java.io.InputStream;

        // Run with:
        //
        // java -Djava.awt.headless=true -server -Xmx500m -Dsun.java2d.font.reftype=weak FontLeak
        //
        // On Fedora 27 with OpenJDK 1.8.0_171, this causes memory use to grow to 2 GB.
        // With Oracle JDK 10.0.2, the memory use grows to 5.3 GB instead.
        //
        // Also 100000 temporary files like '/tmp/+~JF7181253993208936666.tmp' are created.

        public class FontLeak
        {
          public static void createFont()
          {
            try(InputStream fontStream = new FileInputStream("font.ttf"))
            {
              FontRenderContext frc =
                  new FontRenderContext(new AffineTransform(),false,true);

              Font awtFont = Font.createFont(Font.TRUETYPE_FONT,fontStream);

              LineMetrics awtMetrics = awtFont.getLineMetrics("abcdefghijklmnopqrstuvwxyz",frc);
            }
            catch(IOException|FontFormatException e)
            {
              throw new RuntimeException(e); // Should not happen
            }
          }

          public static void showStatistics()
          {
            // Non-native memory usage
            System.out.println("Memory use as reported by JVM: "+Runtime.getRuntime().totalMemory()/1024/1024+ " MiB");
          }

          public static void main(String... args) throws InterruptedException
          {
            for(int a = 0; a < 10; ++a)
            {
              showStatistics();
              for(int b = 0; b < 10000; ++b)
              {
                createFont();
              }
            }
            
            showStatistics();
            
            System.out.println("Sleeping forever. Kill this process manually once done analysing.");
            Thread.sleep(100000000);
          }
        }

        // ScalerLeak.java

        import java.awt.Font;
        import java.awt.font.FontRenderContext;
        import java.awt.font.LineMetrics;
        import java.awt.geom.AffineTransform;
        import java.io.FileInputStream;
        import java.io.InputStream;
        import java.lang.reflect.Field;
        import java.lang.reflect.Method;
        import java.util.concurrent.ConcurrentLinkedQueue;

        public class ScalerLeak
        {
          static boolean disposeEarly = false;

          // Run with:
          //
          // java -Dsun.java2d.debugfonts=false -Djava.awt.headless=true -server -Xmx1500m ScalerLeak
          //
          // Using JDK 1.8.0_131 (Oracle, uses T2KFontScaler):
          //
          // With disposeEarly = true
          // Virtual memory: 4.4 GiB
          // Resident memory: 904.3 MiB
          //
          // With disposeEarly = false
          // Virtual memory: 7.8 GiB
          // Resident memory: 3.1 GiB
          //
          // The numbers are lower with OpenJDK (uses FreeTypeFontScaler), but the same problem
          // is seen there, too. The same problem is seen in Oracle JDK 10.0.2, too.

          static ConcurrentLinkedQueue<Object> queue = new ConcurrentLinkedQueue<>();

          public static void createFont() throws Throwable
          {
            try(InputStream fontStream = new FileInputStream("font.ttf"))
            {
              FontRenderContext frc =
                  new FontRenderContext(new AffineTransform(),false,true);

              Font awtFont = Font.createFont(Font.TRUETYPE_FONT,fontStream);

              LineMetrics awtMetrics = awtFont.getLineMetrics("abcdefghijklmnopqrstuvwxyz",frc);

              Object font2DHandle = getFieldValue(awtFont,"font2DHandle");
              Object ttf = getFieldValue(font2DHandle,"font2D");
              Object scaler = callMethod(ttf,"getScaler");

              if(disposeEarly)
                callMethod(scaler,"dispose");

              queue.add(scaler);
            }
          }

          public static Object callMethod(Object object, String methodName)
            throws Throwable
          {
            Method method = object.getClass().getDeclaredMethod(methodName);
            method.setAccessible(true);
            return method.invoke(object);
          }

          public static Object getFieldValue(Object object, String fieldName)
            throws Throwable
          {
            Field field = object.getClass().getDeclaredField(fieldName);
            field.setAccessible(true);
            return field.get(object);
          }

          public static void showStatistics()
          {
            // Non-native memory usage
            System.out.println("Memory use as reported by JVM: "+Runtime.getRuntime().totalMemory()/1024/1024+ " MiB");
          }

          public static void main(String... args) throws Throwable
          {
            for(int i = 0; i < 100000; ++i)
            {
              if(i%10000 == 0)
              {
                System.out.println(i/10000);
                showStatistics();
              }
              createFont();
            }

            showStatistics();

            System.out.println("Disposing scalers");

            for(Object scaler : queue)
              callMethod(scaler,"dispose");

            System.out.println("Done");

            System.out.println("Sleeping forever. Kill this process manually once done analysing");
            Thread.sleep(100000000);
          }
        }

        // Sample ttf font in base 64:

        AAEAAAAKAIAAAwAgT1MvMhFcfsAAAAEoAAAAYGNtYXApHCz2AAAlFAAAANRnbHlm7/zP8gAAQKAA
        AEt+aGVhZOSEGpYAAACsAAAANmhoZWESfg00AAAA5AAAACRobXR4VV8YTAAAAYgAACOMbG9jYbRR
        yaQAACXoAAAauG1heHAVABI2AAABCAAAACBuYW1lt6/8zAAAjCAAAAyKcG9zdP8qANcAAJisAAAA
        IAABAAAABTMzt5E0618PPPUIGQgAAAAAAKLjPB0AAAAAz3VhJ/r6/P0QAAgkAAEACQABAAAAAAAA
        AAEAAAc+/k4AQxAA+vr6ehAAAAEAAAAAAAAAAAAAAAAAAARrAAEAAA1bADMAAwAAAAAAAgAQAC8A
        VQAABzwR0gAAAAAAAwPUArwABQAIBZoFMwAAARsFmgUzAAAD0QBmAhIIBQILBwQCAgICAgTgACr/
        wAB4QwAAAAkAAAAAVE1DIAAgACAgHQXT/lEBMwc+AbJAAAH///8AAAQmBboAAAAgAAQGAAEAAAAA
        AAI5AAACOQAAAqoAuAPLAHAEcwASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOQB1
        AqoAcwI5AJMCOf/9BHMAVgRzAKIEcwAzBHMATQRzACYEcwBbAAAAAARzAFcEcwBTAAAAAAKqAMkA
        AAAAAAAAAAAAAAAAAAAABOMAagAAAAAFxwAABccAlgXHAGEFxwCUBVYAlQTjAJcAAAAABccAlgI5
        AIwEcwAjAAAAAATjAJ0GqgCRBccAmAY5AFkFVgCVBjkAWQXHAJYFVgBKBOMALAXHAJMFVv//B40A
        BwAAAAAFVv/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARzAEkE4wCHBHMAVQTjAFQEcwBB
        AqoAGATjAFQE4wCSAjkAkwAAAAAEcwCJAjkAkwcdAH4E4wCRBOMAUgTjAIsAAAAAAx0AhwRzADAC
        qgAfBOMAjQRzAAsGOQAJAAAAAARzAA4EAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAEc//8AAAAAAQAAIQEAABpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOQCTAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGW/7oAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5v+6AAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
        /7oIAP+6EAD/uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABADAAAAA
        LAAgAAQADAADAAkAIwA1ADgAOgA/AEYASgBXAFkAaQBwAHcAegCgAK0BMQZAIBMgHf//AAAAAwAJ
        ACAALAA3ADoAPwBBAEgATABZAGEAawByAHkAoACtATEGQCATIBz//wAA//r/4//j/+P/4//j/+P/
        4//j/+P/4//j/+P/4/9j/2P/pPyw4J7glwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAA2ADYANgA2AI0A3QHEAcQBxAHEAcQBxAHEAcQBxAH8AiMCQgJtAu8D
        MAQDBK8FPAX1BfUGUwciByIHTwdPB08HTwdPB8YHxgiDCTcJ1ApJCqgK9gr2C2ALpAvzC/MMIQ1L
        DkoOzg82EAMQtRHlEjASoBM9FF4UXhTZFNkU2RTZFNkU2RTZFNkV4BZeFvwXdBh6GPoZ6BpoGrka
        uRtPG4UcXxzUHUwdyh3KHjwf3yBvIOMhjSKbIpsjWiQhJCEkISQhJCEkISQhJCEkISQhJCEkISQh
        JCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEk
        ISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQh
        JCEkISQhJCEkISQhJCEkISQhJCEkISQhJCEkISQ+JD4koiUMJQwlDCUMJQwlDCUMJQwlDCUMJQwl
        DCUMJQwlDCUMJQwlDCUMJQwlDCUMJQwlDCUMJQwlDCUMJQwlDCUMJQwlDCU9JT0lPSU9JT0lPSU9
        JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0l
        PSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9
        JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0l
        PSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9
        JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0l
        PSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9
        JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0l
        PSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9
        JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0l
        PSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9
        JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0l
        PSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9
        JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0l
        PSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9
        JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0l
        PSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9
        JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0l
        PSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9
        JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lPSU9JT0lVyVXJVclVyVXJVclVyVXJVcl
        VyVXJVclVyVXJVclVyVXJVclVyVXJVclVyVXJVclVyVXJVclVyVXJVclVyVXJVclVyVXJVclVyVX
        JVclVyVXJVclVyVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXEl
        cSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVx
        JXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXEl
        cSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVx
        JXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXEl
        cSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVx
        JXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXEl
        cSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVx
        JXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXEl
        cSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVx
        JXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXEl
        cSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXElcSVxJXEliyWlJb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8l
        vyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/Jb8lvyW/
        Jb8lvyW/Jb8lvyW/Jb8AAgEAAAAFAAUAAAMABwBCtAIB/gYHuAI/QBMABQT+AwAKBwT+AQAZCAYF
        /gIDvAEmAAkBsAEYABgrEPY8/TxOEPQ8Tf08AD88/TwQ/Dz9PDEwIREhESUhESEBAAQA/CADwPxA
        BQD7ACAEwAAAAgC4AAAB6AW6AAUACQB7ugIzAAsCMkArCgVAGR80DwUfBQIFWgg4BgMCAAkGCo8L
        AQsZFxoDCSYGCCYHBCYBAyYCBroClAAHApRADAIgATABjwEDARkKC7gBCLMh5qsYKytO9F08TeTk
        EO0Q7RDtEO1OEEVlROZdAD88PzxNEP3mXSsxMAFGREZEAQMRIREDAxEhEQEBSQEwSNwBGQF6AugB
        WP6o/Rj+hgEZ/ucAAgBwA7EDZQW6AAUACwBrQDSHBYcL9gX2CwQGBQYLZQVlC3YFdgsGAAUDAQYL
        CggHBQEABAML9AgIAwAIIBAKLwo/CgMKuAF7QAoDIB8BIAEwAQMBuAKWswylQxgrEPZd7f1d/QA/
        PBDtERc5ARESOTkREjk5MTABcnETAzUhFQMzAzUhFQOlNQEyLvQ1ATIuA7EBEfj4/u8BEfj4/u8A
        AAIAEv/nBFsF0wAbAB8BYUCHCAQHEkgKSA5YClgOBhgMFwEUFQ0WARQSDRYCEx4MFwITGQkaARQd
        CRoCEwAIGwEUAwgbAhMfDBcFEBENFgUQDg0WBg8LDBcGDxwJGgUQBAgbBRAKCRoGDwcIGwYPCRoa
        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
        AAgA6gAAAAMAAAADAFgAzAAAAAMAAAAEABQA3gAAAAMAAAAFABgBJAAAAAMAAAAGABgBPAAAAAMA
        AAAHAGIAagAAAAMAAAAIADAADgAAAAMAAAAJAIoBVAAAAAMAAAANAqoB3gABAAAAAAAAADUEiAAB
        AAAAAAABAAUEvQABAAAAAAACAAQE/QABAAAAAAADACwE7gABAAAAAAAEAAoE9wABAAAAAAAFAAwF
        GgABAAAAAAAGAAwFJgABAAAAAAAHADEEvQABAAAAAAAIABgEjwABAAAAAAAJAEUFMgABAAAAAAAN
        AVUFdwADAAEEAwACAA4G2AADAAEEAwAEABoGzAADAAEEBQACAAoG8gADAAEEBQAEABYG5gADAAEE
        BgACAAYHCAADAAEEBgAEABIG/AADAAEEBwACAAgHGgADAAEEBwAEABQHDgADAAEECAACAAwHLgAD
        AAEECAAEABgHIgADAAEECQAAAGoAAAADAAEECQABAAoAagADAAEECQACAAgA6gADAAEECQADAFgA
        zAADAAEECQAEABQA3gADAAEECQAFABgBJAADAAEECQAGABgBPAADAAEECQAHAGIAagADAAEECQAI
        ADAADgADAAEECQAJAIoBVAADAAEECQANAqoB3gADAAEECgACAA4HRgADAAEECgAEABoHOgADAAEE
        CwACABIHYAADAAEECwAEAB4HVAADAAEEDAACAAgHfgADAAEEDAAEABQHcgADAAEEDgACABAHnAAD
        AAEEDgAEABwHkAADAAEEEAACABIHfgADAAEEEAAEAB4HcgADAAEEEwACAAYHuAADAAEEEwAEABIH
        rAADAAEEFAACAA4HygADAAEEFAAEABoHvgADAAEEFQACABQH5AADAAEEFQAEACAH2AADAAEEFgAC
        AA4IBAADAAEEFgAEABoH+AADAAEEGQACABQIHgADAAEEGQAEACAIEgADAAEEGwACAAoIPgADAAEE
        GwAEABYIMgADAAEEHQACAAYHGgADAAEEHQAEABIHDgADAAEEHwACAAoIVAADAAEEHwAEABYISAAD
        AAEEJAACAAwIagADAAEEJAAEABgIXgADAAEEKgACAAgIggADAAEEKgAEABQIdgADAAEELQACAAoI
        lgADAAEELQAEABYIigADAAEICgACAA4HRgADAAEICgAEABoHOgADAAEIFgACAA4IBAADAAEIFgAE
        ABoH+AADAAEMCgACAA4HRgADAAEMCgAEABoHOgADAAEMDAACAAgHfgADAAEMDAAEABQHcgCpACAA
        MgAwADEANAAgAFQAaABlACAATQBvAG4AbwB0AHkAcABlACAAQwBvAHIAcABvAHIAYQB0AGkAbwBu
        AC4AIABBAGwAbAAgAFIAaQBnAGgAdABzACAAUgBlAHMAZQByAHYAZQBkAC4AQQByAGkAYQBsACAA
        aQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAAVABoAGUAIABNAG8AbgBvAHQAeQBw
        AGUAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALgBNAG8AbgBvAHQAeQBwAGUAOgBBAHIAaQBhAGwA
        IABCAG8AbABkADoAVgBlAHIAcwBpAG8AbgAgADUALgAxADYAIAAoAE0AaQBjAHIAbwBzAG8AZgB0
        ACkAVgBlAHIAcwBpAG8AbgAgADUALgAyADAAQQByAGkAYQBsAC0AQgBvAGwAZABNAFQATQBvAG4A
        bwB0AHkAcABlACAAVAB5AHAAZQAgAEQAcgBhAHcAaQBuAGcAIABPAGYAZgBpAGMAZQAgAC0AIABS
        AG8AYgBpAG4AIABOAGkAYwBoAG8AbABhAHMALAAgAFAAYQB0AHIAaQBjAGkAYQAgAFMAYQB1AG4A
        ZABlAHIAcwAgADEAOQA4ADIAWQBvAHUAIABtAGEAeQAgAHUAcwBlACAAdABoAGkAcwAgAGYAbwBu
        AHQAIAB0AG8AIABkAGkAcwBwAGwAYQB5ACAAYQBuAGQAIABwAHIAaQBuAHQAIABjAG8AbgB0AGUA
        bgB0ACAAYQBzACAAcABlAHIAbQBpAHQAdABlAGQAIABiAHkAIAB0AGgAZQAgAGwAaQBjAGUAbgBz
        AGUAIAB0AGUAcgBtAHMAIABmAG8AcgAgAHQAaABlACAAcAByAG8AZAB1AGMAdAAgAGkAbgAgAHcA
        aABpAGMAaAAgAHQAaABpAHMAIABmAG8AbgB0ACAAaQBzACAAaQBuAGMAbAB1AGQAZQBkAC4AIABZ
        AG8AdQAgAG0AYQB5ACAAbwBuAGwAeQAgACgAaQApACAAZQBtAGIAZQBkACAAdABoAGkAcwAgAGYA
        bwBuAHQAIABpAG4AIABjAG8AbgB0AGUAbgB0ACAAYQBzACAAcABlAHIAbQBpAHQAdABlAGQAIABi
        AHkAIAB0AGgAZQAgAGUAbQBiAGUAZABkAGkAbgBnACAAcgBlAHMAdAByAGkAYwB0AGkAbwBuAHMA
        IABpAG4AYwBsAHUAZABlAGQAIABpAG4AIAB0AGgAaQBzACAAZgBvAG4AdAA7ACAAYQBuAGQAIAAo
        AGkAaQApACAAdABlAG0AcABvAHIAYQByAGkAbAB5ACAAZABvAHcAbgBsAG8AYQBkACAAdABoAGkA
        cwAgAGYAbwBuAHQAIAB0AG8AIABhACAAcAByAGkAbgB0AGUAcgAgAG8AcgAgAG8AdABoAGUAcgAg
        AG8AdQB0AHAAdQB0ACAAZABlAHYAaQBjAGUAIAB0AG8AIABoAGUAbABwACAAcAByAGkAbgB0ACAA
        YwBvAG4AdABlAG4AdAAuqSAyMDE0IFRoZSBNb25vdHlwZSBDb3Jwb3JhdGlvbi4gQWxsIFJpZ2h0
        cyBSZXNlcnZlZC5BcmlhbCBpcyBhIHRyYWRlbWFyayBvZiBUaGUgTW9ub3R5cGUgQ29ycG9yYXRp
        b24uTW9ub3R5cGU6QXJpYWwgQm9sZDpWZXJzaW9uIDUuMTYgKE1pY3Jvc29mdClWZXJzaW9uIDUu
        MjBBcmlhbC1Cb2xkTVRNb25vdHlwZSBUeXBlIERyYXdpbmcgT2ZmaWNlIC0gUm9iaW4gTmljaG9s
        YXMsIFBhdHJpY2lhIFNhdW5kZXJzIDE5ODJZb3UgbWF5IHVzZSB0aGlzIGZvbnQgdG8gZGlzcGxh
        eSBhbmQgcHJpbnQgY29udGVudCBhcyBwZXJtaXR0ZWQgYnkgdGhlIGxpY2Vuc2UgdGVybXMgZm9y
        IHRoZSBwcm9kdWN0IGluIHdoaWNoIHRoaXMgZm9udCBpcyBpbmNsdWRlZC4gWW91IG1heSBvbmx5
        IChpKSBlbWJlZCB0aGlzIGZvbnQgaW4gY29udGVudCBhcyBwZXJtaXR0ZWQgYnkgdGhlIGVtYmVk
        ZGluZyByZXN0cmljdGlvbnMgaW5jbHVkZWQgaW4gdGhpcyBmb250OyBhbmQgKGlpKSB0ZW1wb3Jh
        cmlseSBkb3dubG9hZCB0aGlzIGZvbnQgdG8gYSBwcmludGVyIG9yIG90aGVyIG91dHB1dCBkZXZp
        Y2UgdG8gaGVscCBwcmludCBjb250ZW50LgBBAHIAaQBhAGwAIABOAGUAZwByAGUAdABhAEEAcgBp
        AGEAbAAgAHQAdQENAG4A6QBBAHIAaQBhAGwAIABmAGUAZABBAHIAaQBhAGwAIABGAGUAdAB0AEEA
        cgBpAGEAbAAgA4gDvQPEA78DvQOxAEEAcgBpAGEAbAAgAE4AZQBnAHIAaQB0AGEAQQByAGkAYQBs
        ACAATABpAGgAYQB2AG8AaQB0AHUAQQByAGkAYQBsACAARwByAGEAcwBzAGUAdAB0AG8AQQByAGkA
        YQBsACAARgDpAGwAawD2AHYA6QByAEEAcgBpAGEAbAAgAFYAZQB0AEEAcgBpAGEAbAAgAEgAYQBs
        AHYAZgBlAHQAQQByAGkAYQBsACAAUABvAGcAcgB1AGIAaQBvAG4AeQBBAHIAaQBhAGwAIABOAGUA
        ZwByAGkAdABvAEEAcgBpAGEAbAAgBB8EPgQ7BEMENgQ4BEAEPQRLBDkAQQByAGkAYQBsACAAVAB1
        AQ0AbgDpAEEAcgBpAGEAbAAgAEsAYQBsATEAbgBBAHIAaQBhAGwAIABLAHIAZQBwAGsAbwBBAHIA
        aQBhAGwAIAERAOIDIwBtAEEAcgBpAGEAbAAgAEwAbwBkAGkAYQAAAAMAAAAAAAD/JwDXAAAAAAAA
        AAAAAAAAAAAAAAAAAAA=

        ---------- END SOURCE ----------

        CUSTOMER SUBMITTED WORKAROUND :
        The following patch causes the Disposer thread to be triggered better when combined with -Dsun.java2d.font.reftype=weak:

        diff -r 3eb4e20b34cb src/share/classes/sun/font/Font2D.java
        --- a/src/share/classes/sun/font/Font2D.java Thu Jul 16 20:01:32 2015 -0700
        +++ b/src/share/classes/sun/font/Font2D.java Thu Aug 02 17:00:29 2018 +0000
        @@ -29,7 +29,7 @@
         import java.awt.font.FontRenderContext;
         import java.awt.geom.AffineTransform;
         import java.lang.ref.Reference;
        -import java.lang.ref.SoftReference;
        +import java.lang.ref.WeakReference;
         import java.util.concurrent.ConcurrentHashMap;
         import java.util.Locale;
         
        @@ -105,7 +105,7 @@
              * This pre-supposes that a FontStrike is a shareable object, which
              * it should.
              */
        - protected Reference lastFontStrike = new SoftReference(null);
        + protected Reference lastFontStrike = new WeakReference(null);
         
             /*
              * POSSIBLE OPTIMISATION:
        @@ -332,7 +332,7 @@
                         strike = (FontStrike)strikeRef.get();
                         if (strike != null) {
                             //strike.lastlookupTime = System.currentTimeMillis();
        - lastFontStrike = new SoftReference(strike);
        + lastFontStrike = new WeakReference(strike);
                             StrikeCache.refStrike(strike);
                             return strike;
                         }
        @@ -375,7 +375,7 @@
                     }
                     strikeCache.put(desc, strikeRef);
                     //strike.lastlookupTime = System.currentTimeMillis();
        - lastFontStrike = new SoftReference(strike);
        + lastFontStrike = new WeakReference(strike);
                     StrikeCache.refStrike(strike);
                     return strike;
                 }

        FREQUENCY : always


        Attachments

          Issue Links

            Activity

              People

                prr Philip Race
                webbuggrp Webbug Group
                Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: