public class javax.print.ServiceUI
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.print.ServiceUI
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.print.ServiceUI this
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // javax.print.ServiceUI this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/print/ServiceUI;

  public static javax.print.PrintService printDialog(java.awt.GraphicsConfiguration, int, int, javax.print.PrintService[], javax.print.PrintService, javax.print.DocFlavor, javax.print.attribute.PrintRequestAttributeSet);
    descriptor: (Ljava/awt/GraphicsConfiguration;II[Ljavax/print/PrintService;Ljavax/print/PrintService;Ljavax/print/DocFlavor;Ljavax/print/attribute/PrintRequestAttributeSet;)Ljavax/print/PrintService;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=19, args_size=7
        start local 0 // java.awt.GraphicsConfiguration gc
        start local 1 // int x
        start local 2 // int y
        start local 3 // javax.print.PrintService[] services
        start local 4 // javax.print.PrintService defaultService
        start local 5 // javax.print.DocFlavor flavor
        start local 6 // javax.print.attribute.PrintRequestAttributeSet attributes
         0: .line 157
            iconst_m1
            istore 7 /* defaultIndex */
        start local 7 // int defaultIndex
         1: .line 159
            invokestatic java.awt.GraphicsEnvironment.isHeadless:()Z
            ifeq 3
         2: .line 160
            new java.awt.HeadlessException
            dup
            invokespecial java.awt.HeadlessException.<init>:()V
            athrow
         3: .line 161
      StackMap locals: int
      StackMap stack:
            aload 3 /* services */
            ifnull 4
            aload 3 /* services */
            arraylength
            ifne 5
         4: .line 162
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "services must be non-null and non-empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 164
      StackMap locals:
      StackMap stack:
            aload 6 /* attributes */
            ifnonnull 7
         6: .line 165
            new java.lang.IllegalArgumentException
            dup
            ldc "attributes must be non-null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 168
      StackMap locals:
      StackMap stack:
            aload 4 /* defaultService */
            ifnull 17
         8: .line 169
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         9: goto 14
        10: .line 170
      StackMap locals: int
      StackMap stack:
            aload 3 /* services */
            iload 8 /* i */
            aaload
            aload 4 /* defaultService */
            invokeinterface javax.print.PrintService.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 171
            iload 8 /* i */
            istore 7 /* defaultIndex */
        12: .line 172
            goto 15
        13: .line 169
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 8 /* i */
            aload 3 /* services */
            arraylength
            if_icmplt 10
        end local 8 // int i
        15: .line 176
      StackMap locals:
      StackMap stack:
            iload 7 /* defaultIndex */
            ifge 18
        16: .line 177
            new java.lang.IllegalArgumentException
            dup
            ldc "services must contain defaultService"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 181
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* defaultIndex */
        18: .line 184
      StackMap locals:
      StackMap stack:
            aload 6 /* attributes */
            ldc Ljavax/print/attribute/standard/DialogOwner;
            invokeinterface javax.print.attribute.PrintRequestAttributeSet.get:(Ljava/lang/Class;)Ljavax/print/attribute/Attribute;
            checkcast javax.print.attribute.standard.DialogOwner
            astore 8 /* dlgOwner */
        start local 8 // javax.print.attribute.standard.DialogOwner dlgOwner
        19: .line 185
            aload 8 /* dlgOwner */
            ifnull 20
            aload 8 /* dlgOwner */
            invokevirtual javax.print.attribute.standard.DialogOwner.getOwner:()Ljava/awt/Window;
            goto 21
      StackMap locals: javax.print.attribute.standard.DialogOwner
      StackMap stack:
        20: aconst_null
      StackMap locals:
      StackMap stack: java.awt.Window
        21: astore 9 /* owner */
        start local 9 // java.awt.Window owner
        22: .line 186
            aload 8 /* dlgOwner */
            ifnull 23
            aload 9 /* owner */
            ifnonnull 23
            iconst_1
            goto 24
      StackMap locals: java.awt.Window
      StackMap stack:
        23: iconst_0
      StackMap locals:
      StackMap stack: int
        24: istore 10 /* setOnTop */
        start local 10 // boolean setOnTop
        25: .line 188
            aload 0 /* gc */
            ifnonnull 28
        26: .line 189
            invokestatic java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment:()Ljava/awt/GraphicsEnvironment;
            invokevirtual java.awt.GraphicsEnvironment.getDefaultScreenDevice:()Ljava/awt/GraphicsDevice;
        27: .line 190
            invokevirtual java.awt.GraphicsDevice.getDefaultConfiguration:()Ljava/awt/GraphicsConfiguration;
            invokevirtual java.awt.GraphicsConfiguration.getBounds:()Ljava/awt/Rectangle;
            goto 29
      StackMap locals: int
      StackMap stack:
        28: aload 0 /* gc */
            invokevirtual java.awt.GraphicsConfiguration.getBounds:()Ljava/awt/Rectangle;
        29: .line 188
      StackMap locals:
      StackMap stack: java.awt.Rectangle
            astore 11 /* gcBounds */
        start local 11 // java.awt.Rectangle gcBounds
        30: .line 192
            iload 1 /* x */
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.x:I
            iadd
            istore 1 /* x */
        31: .line 193
            iload 2 /* y */
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.y:I
            iadd
            istore 2 /* y */
        32: .line 194
            new sun.print.ServiceDialog
            dup
            aload 0 /* gc */
        33: .line 195
            iload 1 /* x */
        34: .line 196
            iload 2 /* y */
        35: .line 197
            aload 3 /* services */
            iload 7 /* defaultIndex */
        36: .line 198
            aload 5 /* flavor */
            aload 6 /* attributes */
        37: .line 199
            aload 9 /* owner */
        38: .line 194
            invokespecial sun.print.ServiceDialog.<init>:(Ljava/awt/GraphicsConfiguration;II[Ljavax/print/PrintService;ILjavax/print/DocFlavor;Ljavax/print/attribute/PrintRequestAttributeSet;Ljava/awt/Window;)V
            astore 12 /* dialog */
        start local 12 // sun.print.ServiceDialog dialog
        39: .line 200
            iload 10 /* setOnTop */
            ifeq 43
        40: .line 202
            aload 12 /* dialog */
            iconst_1
            invokevirtual sun.print.ServiceDialog.setAlwaysOnTop:(Z)V
        41: .line 203
            goto 43
      StackMap locals: java.awt.GraphicsConfiguration int int javax.print.PrintService[] javax.print.PrintService javax.print.DocFlavor javax.print.attribute.PrintRequestAttributeSet int javax.print.attribute.standard.DialogOwner java.awt.Window int java.awt.Rectangle sun.print.ServiceDialog
      StackMap stack: java.lang.SecurityException
        42: pop
        43: .line 206
      StackMap locals:
      StackMap stack:
            aload 12 /* dialog */
            invokevirtual sun.print.ServiceDialog.getBounds:()Ljava/awt/Rectangle;
            astore 13 /* dlgBounds */
        start local 13 // java.awt.Rectangle dlgBounds
        44: .line 209
            aload 11 /* gcBounds */
            aload 13 /* dlgBounds */
            invokevirtual java.awt.Rectangle.contains:(Ljava/awt/Rectangle;)Z
            ifne 56
        45: .line 215
            aload 13 /* dlgBounds */
            getfield java.awt.Rectangle.x:I
            aload 13 /* dlgBounds */
            getfield java.awt.Rectangle.width:I
            iadd
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.x:I
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.width:I
            iadd
            if_icmple 50
        46: .line 216
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.x:I
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.width:I
            iadd
            aload 13 /* dlgBounds */
            getfield java.awt.Rectangle.width:I
            isub
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.x:I
            if_icmple 49
        47: .line 217
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.x:I
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.width:I
            iadd
            aload 13 /* dlgBounds */
            getfield java.awt.Rectangle.width:I
            isub
            istore 1 /* x */
        48: .line 218
            goto 50
        49: .line 219
      StackMap locals: java.awt.Rectangle
      StackMap stack:
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.x:I
            istore 1 /* x */
        50: .line 222
      StackMap locals:
      StackMap stack:
            aload 13 /* dlgBounds */
            getfield java.awt.Rectangle.y:I
            aload 13 /* dlgBounds */
            getfield java.awt.Rectangle.height:I
            iadd
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.y:I
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.height:I
            iadd
            if_icmple 55
        51: .line 223
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.y:I
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.height:I
            iadd
            aload 13 /* dlgBounds */
            getfield java.awt.Rectangle.height:I
            isub
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.y:I
            if_icmple 54
        52: .line 224
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.y:I
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.height:I
            iadd
            aload 13 /* dlgBounds */
            getfield java.awt.Rectangle.height:I
            isub
            istore 2 /* y */
        53: .line 225
            goto 55
        54: .line 226
      StackMap locals:
      StackMap stack:
            aload 11 /* gcBounds */
            getfield java.awt.Rectangle.y:I
            istore 2 /* y */
        55: .line 229
      StackMap locals:
      StackMap stack:
            aload 12 /* dialog */
            iload 1 /* x */
            iload 2 /* y */
            aload 13 /* dlgBounds */
            getfield java.awt.Rectangle.width:I
            aload 13 /* dlgBounds */
            getfield java.awt.Rectangle.height:I
            invokevirtual sun.print.ServiceDialog.setBounds:(IIII)V
        56: .line 231
      StackMap locals:
      StackMap stack:
            aload 12 /* dialog */
            invokevirtual sun.print.ServiceDialog.show:()V
        57: .line 233
            aload 12 /* dialog */
            invokevirtual sun.print.ServiceDialog.getStatus:()I
            iconst_1
            if_icmpne 75
        58: .line 234
            aload 12 /* dialog */
            invokevirtual sun.print.ServiceDialog.getAttributes:()Ljavax/print/attribute/PrintRequestAttributeSet;
            astore 14 /* newas */
        start local 14 // javax.print.attribute.PrintRequestAttributeSet newas
        59: .line 235
            ldc Ljavax/print/attribute/standard/Destination;
            astore 15 /* dstCategory */
        start local 15 // java.lang.Class dstCategory
        60: .line 236
            ldc Lsun/print/SunAlternateMedia;
            astore 16 /* amCategory */
        start local 16 // java.lang.Class amCategory
        61: .line 237
            ldc Ljavax/print/attribute/standard/Fidelity;
            astore 17 /* fdCategory */
        start local 17 // java.lang.Class fdCategory
        62: .line 239
            aload 6 /* attributes */
            aload 15 /* dstCategory */
            invokeinterface javax.print.attribute.PrintRequestAttributeSet.containsKey:(Ljava/lang/Class;)Z
            ifeq 65
        63: .line 240
            aload 14 /* newas */
            aload 15 /* dstCategory */
            invokeinterface javax.print.attribute.PrintRequestAttributeSet.containsKey:(Ljava/lang/Class;)Z
            ifne 65
        64: .line 242
            aload 6 /* attributes */
            aload 15 /* dstCategory */
            invokeinterface javax.print.attribute.PrintRequestAttributeSet.remove:(Ljava/lang/Class;)Z
            pop
        65: .line 245
      StackMap locals: java.awt.GraphicsConfiguration int int javax.print.PrintService[] javax.print.PrintService javax.print.DocFlavor javax.print.attribute.PrintRequestAttributeSet int javax.print.attribute.standard.DialogOwner java.awt.Window int java.awt.Rectangle sun.print.ServiceDialog java.awt.Rectangle javax.print.attribute.PrintRequestAttributeSet java.lang.Class java.lang.Class java.lang.Class
      StackMap stack:
            aload 6 /* attributes */
            aload 16 /* amCategory */
            invokeinterface javax.print.attribute.PrintRequestAttributeSet.containsKey:(Ljava/lang/Class;)Z
            ifeq 68
        66: .line 246
            aload 14 /* newas */
            aload 16 /* amCategory */
            invokeinterface javax.print.attribute.PrintRequestAttributeSet.containsKey:(Ljava/lang/Class;)Z
            ifne 68
        67: .line 248
            aload 6 /* attributes */
            aload 16 /* amCategory */
            invokeinterface javax.print.attribute.PrintRequestAttributeSet.remove:(Ljava/lang/Class;)Z
            pop
        68: .line 251
      StackMap locals:
      StackMap stack:
            aload 6 /* attributes */
            aload 14 /* newas */
            invokeinterface javax.print.attribute.PrintRequestAttributeSet.addAll:(Ljavax/print/attribute/AttributeSet;)Z
            pop
        69: .line 253
            aload 6 /* attributes */
            aload 17 /* fdCategory */
            invokeinterface javax.print.attribute.PrintRequestAttributeSet.get:(Ljava/lang/Class;)Ljavax/print/attribute/Attribute;
            checkcast javax.print.attribute.standard.Fidelity
            astore 18 /* fd */
        start local 18 // javax.print.attribute.standard.Fidelity fd
        70: .line 254
            aload 18 /* fd */
            ifnull 75
        71: .line 255
            aload 18 /* fd */
            getstatic javax.print.attribute.standard.Fidelity.FIDELITY_TRUE:Ljavax/print/attribute/standard/Fidelity;
            if_acmpne 75
        72: .line 256
            aload 12 /* dialog */
            invokevirtual sun.print.ServiceDialog.getPrintService:()Ljavax/print/PrintService;
        73: .line 257
            aload 5 /* flavor */
            aload 6 /* attributes */
        74: .line 256
            invokestatic javax.print.ServiceUI.removeUnsupportedAttributes:(Ljavax/print/PrintService;Ljavax/print/DocFlavor;Ljavax/print/attribute/AttributeSet;)V
        end local 18 // javax.print.attribute.standard.Fidelity fd
        end local 17 // java.lang.Class fdCategory
        end local 16 // java.lang.Class amCategory
        end local 15 // java.lang.Class dstCategory
        end local 14 // javax.print.attribute.PrintRequestAttributeSet newas
        75: .line 262
      StackMap locals: java.awt.GraphicsConfiguration int int javax.print.PrintService[] javax.print.PrintService javax.print.DocFlavor javax.print.attribute.PrintRequestAttributeSet int javax.print.attribute.standard.DialogOwner java.awt.Window int java.awt.Rectangle sun.print.ServiceDialog java.awt.Rectangle
      StackMap stack:
            aload 12 /* dialog */
            invokevirtual sun.print.ServiceDialog.getPrintService:()Ljavax/print/PrintService;
            areturn
        end local 13 // java.awt.Rectangle dlgBounds
        end local 12 // sun.print.ServiceDialog dialog
        end local 11 // java.awt.Rectangle gcBounds
        end local 10 // boolean setOnTop
        end local 9 // java.awt.Window owner
        end local 8 // javax.print.attribute.standard.DialogOwner dlgOwner
        end local 7 // int defaultIndex
        end local 6 // javax.print.attribute.PrintRequestAttributeSet attributes
        end local 5 // javax.print.DocFlavor flavor
        end local 4 // javax.print.PrintService defaultService
        end local 3 // javax.print.PrintService[] services
        end local 2 // int y
        end local 1 // int x
        end local 0 // java.awt.GraphicsConfiguration gc
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   76     0              gc  Ljava/awt/GraphicsConfiguration;
            0   76     1               x  I
            0   76     2               y  I
            0   76     3        services  [Ljavax/print/PrintService;
            0   76     4  defaultService  Ljavax/print/PrintService;
            0   76     5          flavor  Ljavax/print/DocFlavor;
            0   76     6      attributes  Ljavax/print/attribute/PrintRequestAttributeSet;
            1   76     7    defaultIndex  I
            9   15     8               i  I
           19   76     8        dlgOwner  Ljavax/print/attribute/standard/DialogOwner;
           22   76     9           owner  Ljava/awt/Window;
           25   76    10        setOnTop  Z
           30   76    11        gcBounds  Ljava/awt/Rectangle;
           39   76    12          dialog  Lsun/print/ServiceDialog;
           44   76    13       dlgBounds  Ljava/awt/Rectangle;
           59   75    14           newas  Ljavax/print/attribute/PrintRequestAttributeSet;
           60   75    15     dstCategory  Ljava/lang/Class<*>;
           61   75    16      amCategory  Ljava/lang/Class<*>;
           62   75    17      fdCategory  Ljava/lang/Class<*>;
           70   75    18              fd  Ljavax/print/attribute/standard/Fidelity;
      Exception table:
        from    to  target  type
          40    41      42  Class java.lang.SecurityException
    Exceptions:
      throws java.awt.HeadlessException
    MethodParameters:
                Name  Flags
      gc              
      x               
      y               
      services        
      defaultService  
      flavor          
      attributes      

  private static void removeUnsupportedAttributes(javax.print.PrintService, javax.print.DocFlavor, javax.print.attribute.AttributeSet);
    descriptor: (Ljavax/print/PrintService;Ljavax/print/DocFlavor;Ljavax/print/attribute/AttributeSet;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // javax.print.PrintService ps
        start local 1 // javax.print.DocFlavor flavor
        start local 2 // javax.print.attribute.AttributeSet aset
         0: .line 315
            aload 0 /* ps */
            aload 1 /* flavor */
         1: .line 316
            aload 2 /* aset */
         2: .line 315
            invokeinterface javax.print.PrintService.getUnsupportedAttributes:(Ljavax/print/DocFlavor;Ljavax/print/attribute/AttributeSet;)Ljavax/print/attribute/AttributeSet;
            astore 3 /* asUnsupported */
        start local 3 // javax.print.attribute.AttributeSet asUnsupported
         3: .line 318
            aload 3 /* asUnsupported */
            ifnull 19
         4: .line 319
            aload 3 /* asUnsupported */
            invokeinterface javax.print.attribute.AttributeSet.toArray:()[Ljavax/print/attribute/Attribute;
            astore 4 /* usAttrs */
        start local 4 // javax.print.attribute.Attribute[] usAttrs
         5: .line 321
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 18
         7: .line 322
      StackMap locals: javax.print.attribute.AttributeSet javax.print.attribute.Attribute[] int
      StackMap stack:
            aload 4 /* usAttrs */
            iload 5 /* i */
            aaload
            invokeinterface javax.print.attribute.Attribute.getCategory:()Ljava/lang/Class;
            astore 6 /* category */
        start local 6 // java.lang.Class category
         8: .line 324
            aload 0 /* ps */
            aload 6 /* category */
            invokeinterface javax.print.PrintService.isAttributeCategorySupported:(Ljava/lang/Class;)Z
            ifeq 16
         9: .line 326
            aload 0 /* ps */
            aload 6 /* category */
            invokeinterface javax.print.PrintService.getDefaultAttributeValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.print.attribute.Attribute
        10: .line 325
            astore 7 /* attr */
        start local 7 // javax.print.attribute.Attribute attr
        11: .line 328
            aload 7 /* attr */
            ifnull 14
        12: .line 329
            aload 2 /* aset */
            aload 7 /* attr */
            invokeinterface javax.print.attribute.AttributeSet.add:(Ljavax/print/attribute/Attribute;)Z
            pop
        13: .line 330
            goto 17
        14: .line 331
      StackMap locals: java.lang.Class javax.print.attribute.Attribute
      StackMap stack:
            aload 2 /* aset */
            aload 6 /* category */
            invokeinterface javax.print.attribute.AttributeSet.remove:(Ljava/lang/Class;)Z
            pop
        end local 7 // javax.print.attribute.Attribute attr
        15: .line 333
            goto 17
        16: .line 334
      StackMap locals:
      StackMap stack:
            aload 2 /* aset */
            aload 6 /* category */
            invokeinterface javax.print.attribute.AttributeSet.remove:(Ljava/lang/Class;)Z
            pop
        end local 6 // java.lang.Class category
        17: .line 321
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            aload 4 /* usAttrs */
            arraylength
            if_icmplt 7
        end local 5 // int i
        end local 4 // javax.print.attribute.Attribute[] usAttrs
        19: .line 338
      StackMap locals:
      StackMap stack:
            return
        end local 3 // javax.print.attribute.AttributeSet asUnsupported
        end local 2 // javax.print.attribute.AttributeSet aset
        end local 1 // javax.print.DocFlavor flavor
        end local 0 // javax.print.PrintService ps
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0             ps  Ljavax/print/PrintService;
            0   20     1         flavor  Ljavax/print/DocFlavor;
            0   20     2           aset  Ljavax/print/attribute/AttributeSet;
            3   20     3  asUnsupported  Ljavax/print/attribute/AttributeSet;
            5   19     4        usAttrs  [Ljavax/print/attribute/Attribute;
            6   19     5              i  I
            8   17     6       category  Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;
           11   15     7           attr  Ljavax/print/attribute/Attribute;
    MethodParameters:
        Name  Flags
      ps      
      flavor  
      aset    
}
SourceFile: "ServiceUI.java"