public class sun.security.tools.policytool.PolicyTool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.tools.policytool.PolicyTool
  super_class: java.lang.Object
{
  static final java.util.ResourceBundle rb;
    descriptor: Ljava/util/ResourceBundle;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.text.Collator collator;
    descriptor: Ljava/text/Collator;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  java.util.Vector<java.lang.String> warnings;
    descriptor: Ljava/util/Vector;
    flags: (0x0000) 
    Signature: Ljava/util/Vector<Ljava/lang/String;>;

  boolean newWarning;
    descriptor: Z
    flags: (0x0000) 

  boolean modified;
    descriptor: Z
    flags: (0x0000) 

  private static final boolean testing;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final java.lang.Class[] TWOPARAMS;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Class[] ONEPARAMS;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Class[] NOPARAMS;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static java.lang.String policyFileName;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.util.Vector<sun.security.tools.policytool.PolicyEntry> policyEntries;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Vector<Lsun/security/tools/policytool/PolicyEntry;>;

  private sun.security.provider.PolicyParser parser;
    descriptor: Lsun/security/provider/PolicyParser;
    flags: (0x0002) ACC_PRIVATE

  private java.security.KeyStore keyStore;
    descriptor: Ljava/security/KeyStore;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String keyStoreName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String keyStoreType;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String keyStoreProvider;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String keyStorePwdURL;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.String P11KEYSTORE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PKCS11"

  private static final java.lang.String NONE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "NONE"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 64
            ldc "sun.security.tools.policytool.Resources"
         1: .line 63
            invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;)Ljava/util/ResourceBundle;
         2: .line 62
            putstatic sun.security.tools.policytool.PolicyTool.rb:Ljava/util/ResourceBundle;
         3: .line 65
            invokestatic java.text.Collator.getInstance:()Ljava/text/Collator;
            putstatic sun.security.tools.policytool.PolicyTool.collator:Ljava/text/Collator;
         4: .line 68
            getstatic sun.security.tools.policytool.PolicyTool.collator:Ljava/text/Collator;
            iconst_0
            invokevirtual java.text.Collator.setStrength:(I)V
         5: .line 80
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            putstatic sun.security.tools.policytool.PolicyTool.TWOPARAMS:[Ljava/lang/Class;
         6: .line 81
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            putstatic sun.security.tools.policytool.PolicyTool.ONEPARAMS:[Ljava/lang/Class;
         7: .line 82
            iconst_0
            anewarray java.lang.Class
            putstatic sun.security.tools.policytool.PolicyTool.NOPARAMS:[Ljava/lang/Class;
         8: .line 90
            aconst_null
            putstatic sun.security.tools.policytool.PolicyTool.policyFileName:Ljava/lang/String;
         9: .line 105
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.tools.policytool.PolicyTool this
         0: .line 110
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 73
            aload 0 /* this */
            iconst_0
            putfield sun.security.tools.policytool.PolicyTool.newWarning:Z
         2: .line 77
            aload 0 /* this */
            iconst_0
            putfield sun.security.tools.policytool.PolicyTool.modified:Z
         3: .line 91
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
         4: .line 92
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
         5: .line 95
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.keyStore:Ljava/security/KeyStore;
         6: .line 96
            aload 0 /* this */
            ldc " "
            putfield sun.security.tools.policytool.PolicyTool.keyStoreName:Ljava/lang/String;
         7: .line 97
            aload 0 /* this */
            ldc " "
            putfield sun.security.tools.policytool.PolicyTool.keyStoreType:Ljava/lang/String;
         8: .line 98
            aload 0 /* this */
            ldc " "
            putfield sun.security.tools.policytool.PolicyTool.keyStoreProvider:Ljava/lang/String;
         9: .line 99
            aload 0 /* this */
            ldc " "
            putfield sun.security.tools.policytool.PolicyTool.keyStorePwdURL:Ljava/lang/String;
        10: .line 111
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
        11: .line 112
            aload 0 /* this */
            new sun.security.provider.PolicyParser
            dup
            invokespecial sun.security.provider.PolicyParser.<init>:()V
            putfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
        12: .line 113
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield sun.security.tools.policytool.PolicyTool.warnings:Ljava/util/Vector;
        13: .line 114
            return
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lsun/security/tools/policytool/PolicyTool;

  java.lang.String getPolicyFileName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.tools.policytool.PolicyTool this
         0: .line 120
            getstatic sun.security.tools.policytool.PolicyTool.policyFileName:Ljava/lang/String;
            areturn
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/tools/policytool/PolicyTool;

  void setPolicyFileName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // java.lang.String policyFileName
         0: .line 127
            aload 1 /* policyFileName */
            putstatic sun.security.tools.policytool.PolicyTool.policyFileName:Ljava/lang/String;
         1: .line 128
            return
        end local 1 // java.lang.String policyFileName
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lsun/security/tools/policytool/PolicyTool;
            0    2     1  policyFileName  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      policyFileName  

  void clearKeyStoreInfo();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.tools.policytool.PolicyTool this
         0: .line 134
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.keyStoreName:Ljava/lang/String;
         1: .line 135
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.keyStoreType:Ljava/lang/String;
         2: .line 136
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.keyStoreProvider:Ljava/lang/String;
         3: .line 137
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.keyStorePwdURL:Ljava/lang/String;
         4: .line 139
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.keyStore:Ljava/security/KeyStore;
         5: .line 140
            return
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/tools/policytool/PolicyTool;

  java.lang.String getKeyStoreName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.tools.policytool.PolicyTool this
         0: .line 146
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStoreName:Ljava/lang/String;
            areturn
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/tools/policytool/PolicyTool;

  java.lang.String getKeyStoreType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.tools.policytool.PolicyTool this
         0: .line 153
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStoreType:Ljava/lang/String;
            areturn
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/tools/policytool/PolicyTool;

  java.lang.String getKeyStoreProvider();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.tools.policytool.PolicyTool this
         0: .line 160
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStoreProvider:Ljava/lang/String;
            areturn
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/tools/policytool/PolicyTool;

  java.lang.String getKeyStorePwdURL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.tools.policytool.PolicyTool this
         0: .line 167
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStorePwdURL:Ljava/lang/String;
            areturn
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/tools/policytool/PolicyTool;

  void openPolicy(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // java.lang.String filename
         0: .line 189
            aload 0 /* this */
            iconst_0
            putfield sun.security.tools.policytool.PolicyTool.newWarning:Z
         1: .line 192
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
         2: .line 193
            aload 0 /* this */
            new sun.security.provider.PolicyParser
            dup
            invokespecial sun.security.provider.PolicyParser.<init>:()V
            putfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
         3: .line 194
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield sun.security.tools.policytool.PolicyTool.warnings:Ljava/util/Vector;
         4: .line 195
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.tools.policytool.PolicyTool.setPolicyFileName:(Ljava/lang/String;)V
         5: .line 196
            aload 0 /* this */
            invokevirtual sun.security.tools.policytool.PolicyTool.clearKeyStoreInfo:()V
         6: .line 199
            aload 1 /* filename */
            ifnonnull 9
         7: .line 200
            aload 0 /* this */
            iconst_0
            putfield sun.security.tools.policytool.PolicyTool.modified:Z
         8: .line 201
            return
         9: .line 209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* filename */
            invokevirtual sun.security.tools.policytool.PolicyTool.setPolicyFileName:(Ljava/lang/String;)V
        10: .line 210
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            new java.io.FileReader
            dup
            aload 1 /* filename */
            invokespecial java.io.FileReader.<init>:(Ljava/lang/String;)V
            invokevirtual sun.security.provider.PolicyParser.read:(Ljava/io/Reader;)V
        11: .line 213
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            invokevirtual sun.security.provider.PolicyParser.getKeyStoreUrl:()Ljava/lang/String;
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            invokevirtual sun.security.provider.PolicyParser.getKeyStoreType:()Ljava/lang/String;
        12: .line 214
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            invokevirtual sun.security.provider.PolicyParser.getKeyStoreProvider:()Ljava/lang/String;
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            invokevirtual sun.security.provider.PolicyParser.getStorePassURL:()Ljava/lang/String;
        13: .line 213
            invokevirtual sun.security.tools.policytool.PolicyTool.openKeyStore:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        14: .line 219
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            invokevirtual sun.security.provider.PolicyParser.grantElements:()Ljava/util/Enumeration;
            astore 2 /* enum_ */
        start local 2 // java.util.Enumeration enum_
        15: .line 220
            goto 85
        16: .line 221
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 2 /* enum_ */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast sun.security.provider.PolicyParser$GrantEntry
            astore 3 /* ge */
        start local 3 // sun.security.provider.PolicyParser$GrantEntry ge
        17: .line 224
            aload 3 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.signedBy:Ljava/lang/String;
            ifnull 31
        18: .line 226
            aload 0 /* this */
            aload 3 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.signedBy:Ljava/lang/String;
            invokevirtual sun.security.tools.policytool.PolicyTool.parseSigners:(Ljava/lang/String;)[Ljava/lang/String;
            astore 4 /* signers */
        start local 4 // java.lang.String[] signers
        19: .line 227
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        20: goto 30
        21: .line 228
      StackMap locals: sun.security.provider.PolicyParser$GrantEntry java.lang.String[] int
      StackMap stack:
            aload 0 /* this */
            aload 4 /* signers */
            iload 5 /* i */
            aaload
            invokevirtual sun.security.tools.policytool.PolicyTool.getPublicKeyAlias:(Ljava/lang/String;)Ljava/security/PublicKey;
            astore 6 /* pubKey */
        start local 6 // java.security.PublicKey pubKey
        22: .line 229
            aload 6 /* pubKey */
            ifnonnull 29
        23: .line 230
            aload 0 /* this */
            iconst_1
            putfield sun.security.tools.policytool.PolicyTool.newWarning:Z
        24: .line 231
            new java.text.MessageFormat
            dup
            getstatic sun.security.tools.policytool.PolicyTool.rb:Ljava/util/ResourceBundle;
        25: .line 232
            ldc "Warning.A.public.key.for.alias.signers.i.does.not.exist.Make.sure.a.KeyStore.is.properly.configured."
        26: .line 231
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 7 /* form */
        start local 7 // java.text.MessageFormat form
        27: .line 233
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* signers */
            iload 5 /* i */
            aaload
            aastore
            astore 8 /* source */
        start local 8 // java.lang.Object[] source
        28: .line 234
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.warnings:Ljava/util/Vector;
            aload 7 /* form */
            aload 8 /* source */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 8 // java.lang.Object[] source
        end local 7 // java.text.MessageFormat form
        end local 6 // java.security.PublicKey pubKey
        29: .line 227
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 5 /* i */
            aload 4 /* signers */
            arraylength
            if_icmplt 21
        end local 5 // int i
        end local 4 // java.lang.String[] signers
        31: .line 241
      StackMap locals:
      StackMap stack:
            aload 3 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.principals:Ljava/util/LinkedList;
            iconst_0
            invokevirtual java.util.LinkedList.listIterator:(I)Ljava/util/ListIterator;
        32: .line 240
            astore 4 /* prinList */
        start local 4 // java.util.ListIterator prinList
        33: .line 242
            goto 46
        34: .line 243
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 4 /* prinList */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast sun.security.provider.PolicyParser$PrincipalEntry
            astore 5 /* pe */
        start local 5 // sun.security.provider.PolicyParser$PrincipalEntry pe
        35: .line 245
            aload 0 /* this */
            aload 5 /* pe */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.getPrincipalClass:()Ljava/lang/String;
        36: .line 246
            aload 5 /* pe */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.getPrincipalName:()Ljava/lang/String;
        37: .line 245
            invokevirtual sun.security.tools.policytool.PolicyTool.verifyPrincipal:(Ljava/lang/String;Ljava/lang/String;)V
        38: .line 247
            goto 46
      StackMap locals: sun.security.tools.policytool.PolicyTool java.lang.String java.util.Enumeration sun.security.provider.PolicyParser$GrantEntry java.util.ListIterator sun.security.provider.PolicyParser$PrincipalEntry
      StackMap stack: java.lang.ClassNotFoundException
        39: pop
        40: .line 248
            aload 0 /* this */
            iconst_1
            putfield sun.security.tools.policytool.PolicyTool.newWarning:Z
        41: .line 249
            new java.text.MessageFormat
            dup
            getstatic sun.security.tools.policytool.PolicyTool.rb:Ljava/util/ResourceBundle;
        42: .line 250
            ldc "Warning.Class.not.found.class"
        43: .line 249
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 6 /* form */
        start local 6 // java.text.MessageFormat form
        44: .line 251
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* pe */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.getPrincipalClass:()Ljava/lang/String;
            aastore
            astore 7 /* source */
        start local 7 // java.lang.Object[] source
        45: .line 252
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.warnings:Ljava/util/Vector;
            aload 6 /* form */
            aload 7 /* source */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 7 // java.lang.Object[] source
        end local 6 // java.text.MessageFormat form
        end local 5 // sun.security.provider.PolicyParser$PrincipalEntry pe
        46: .line 242
      StackMap locals:
      StackMap stack:
            aload 4 /* prinList */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 34
        47: .line 258
            aload 3 /* ge */
            invokevirtual sun.security.provider.PolicyParser$GrantEntry.permissionElements:()Ljava/util/Enumeration;
        48: .line 257
            astore 5 /* perms */
        start local 5 // java.util.Enumeration perms
        49: .line 259
            goto 82
        50: .line 260
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 5 /* perms */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast sun.security.provider.PolicyParser$PermissionEntry
            astore 6 /* pe */
        start local 6 // sun.security.provider.PolicyParser$PermissionEntry pe
        51: .line 262
            aload 0 /* this */
            aload 6 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.permission:Ljava/lang/String;
            aload 6 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            aload 6 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.action:Ljava/lang/String;
            invokevirtual sun.security.tools.policytool.PolicyTool.verifyPermission:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        52: .line 263
            goto 68
      StackMap locals: sun.security.tools.policytool.PolicyTool java.lang.String java.util.Enumeration sun.security.provider.PolicyParser$GrantEntry java.util.ListIterator java.util.Enumeration sun.security.provider.PolicyParser$PermissionEntry
      StackMap stack: java.lang.ClassNotFoundException
        53: pop
        54: .line 264
            aload 0 /* this */
            iconst_1
            putfield sun.security.tools.policytool.PolicyTool.newWarning:Z
        55: .line 265
            new java.text.MessageFormat
            dup
            getstatic sun.security.tools.policytool.PolicyTool.rb:Ljava/util/ResourceBundle;
        56: .line 266
            ldc "Warning.Class.not.found.class"
        57: .line 265
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 7 /* form */
        start local 7 // java.text.MessageFormat form
        58: .line 267
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.permission:Ljava/lang/String;
            aastore
            astore 8 /* source */
        start local 8 // java.lang.Object[] source
        59: .line 268
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.warnings:Ljava/util/Vector;
            aload 7 /* form */
            aload 8 /* source */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 8 // java.lang.Object[] source
        end local 7 // java.text.MessageFormat form
        60: goto 68
        61: .line 269
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            pop
        62: .line 270
            aload 0 /* this */
            iconst_1
            putfield sun.security.tools.policytool.PolicyTool.newWarning:Z
        63: .line 271
            new java.text.MessageFormat
            dup
            getstatic sun.security.tools.policytool.PolicyTool.rb:Ljava/util/ResourceBundle;
        64: .line 272
            ldc "Warning.Invalid.argument.s.for.constructor.arg"
        65: .line 271
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 7 /* form */
        start local 7 // java.text.MessageFormat form
        66: .line 273
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.permission:Ljava/lang/String;
            aastore
            astore 8 /* source */
        start local 8 // java.lang.Object[] source
        67: .line 274
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.warnings:Ljava/util/Vector;
            aload 7 /* form */
            aload 8 /* source */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 8 // java.lang.Object[] source
        end local 7 // java.text.MessageFormat form
        68: .line 278
      StackMap locals:
      StackMap stack:
            aload 6 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.signedBy:Ljava/lang/String;
            ifnull 82
        69: .line 280
            aload 0 /* this */
            aload 6 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.signedBy:Ljava/lang/String;
            invokevirtual sun.security.tools.policytool.PolicyTool.parseSigners:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* signers */
        start local 7 // java.lang.String[] signers
        70: .line 282
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        71: goto 81
        72: .line 283
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 0 /* this */
            aload 7 /* signers */
            iload 8 /* i */
            aaload
            invokevirtual sun.security.tools.policytool.PolicyTool.getPublicKeyAlias:(Ljava/lang/String;)Ljava/security/PublicKey;
            astore 9 /* pubKey */
        start local 9 // java.security.PublicKey pubKey
        73: .line 284
            aload 9 /* pubKey */
            ifnonnull 80
        74: .line 285
            aload 0 /* this */
            iconst_1
            putfield sun.security.tools.policytool.PolicyTool.newWarning:Z
        75: .line 286
            new java.text.MessageFormat
            dup
            getstatic sun.security.tools.policytool.PolicyTool.rb:Ljava/util/ResourceBundle;
        76: .line 287
            ldc "Warning.A.public.key.for.alias.signers.i.does.not.exist.Make.sure.a.KeyStore.is.properly.configured."
        77: .line 286
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 10 /* form */
        start local 10 // java.text.MessageFormat form
        78: .line 288
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* signers */
            iload 8 /* i */
            aaload
            aastore
            astore 11 /* source */
        start local 11 // java.lang.Object[] source
        79: .line 289
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.warnings:Ljava/util/Vector;
            aload 10 /* form */
            aload 11 /* source */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 11 // java.lang.Object[] source
        end local 10 // java.text.MessageFormat form
        end local 9 // java.security.PublicKey pubKey
        80: .line 282
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        81: iload 8 /* i */
            aload 7 /* signers */
            arraylength
            if_icmplt 72
        end local 8 // int i
        end local 7 // java.lang.String[] signers
        end local 6 // sun.security.provider.PolicyParser$PermissionEntry pe
        82: .line 259
      StackMap locals:
      StackMap stack:
            aload 5 /* perms */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 50
        83: .line 294
            new sun.security.tools.policytool.PolicyEntry
            dup
            aload 0 /* this */
            aload 3 /* ge */
            invokespecial sun.security.tools.policytool.PolicyEntry.<init>:(Lsun/security/tools/policytool/PolicyTool;Lsun/security/provider/PolicyParser$GrantEntry;)V
            astore 6 /* pEntry */
        start local 6 // sun.security.tools.policytool.PolicyEntry pEntry
        84: .line 295
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
            aload 6 /* pEntry */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 6 // sun.security.tools.policytool.PolicyEntry pEntry
        end local 5 // java.util.Enumeration perms
        end local 4 // java.util.ListIterator prinList
        end local 3 // sun.security.provider.PolicyParser$GrantEntry ge
        85: .line 220
      StackMap locals:
      StackMap stack:
            aload 2 /* enum_ */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 16
        86: .line 299
            aload 0 /* this */
            iconst_0
            putfield sun.security.tools.policytool.PolicyTool.modified:Z
        87: .line 300
            return
        end local 2 // java.util.Enumeration enum_
        end local 1 // java.lang.String filename
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   88     0      this  Lsun/security/tools/policytool/PolicyTool;
            0   88     1  filename  Ljava/lang/String;
           15   88     2     enum_  Ljava/util/Enumeration<Lsun/security/provider/PolicyParser$GrantEntry;>;
           17   85     3        ge  Lsun/security/provider/PolicyParser$GrantEntry;
           19   31     4   signers  [Ljava/lang/String;
           20   31     5         i  I
           22   29     6    pubKey  Ljava/security/PublicKey;
           27   29     7      form  Ljava/text/MessageFormat;
           28   29     8    source  [Ljava/lang/Object;
           33   85     4  prinList  Ljava/util/ListIterator<Lsun/security/provider/PolicyParser$PrincipalEntry;>;
           35   46     5        pe  Lsun/security/provider/PolicyParser$PrincipalEntry;
           44   46     6      form  Ljava/text/MessageFormat;
           45   46     7    source  [Ljava/lang/Object;
           49   85     5     perms  Ljava/util/Enumeration<Lsun/security/provider/PolicyParser$PermissionEntry;>;
           51   82     6        pe  Lsun/security/provider/PolicyParser$PermissionEntry;
           58   60     7      form  Ljava/text/MessageFormat;
           59   60     8    source  [Ljava/lang/Object;
           66   68     7      form  Ljava/text/MessageFormat;
           67   68     8    source  [Ljava/lang/Object;
           70   82     7   signers  [Ljava/lang/String;
           71   82     8         i  I
           73   80     9    pubKey  Ljava/security/PublicKey;
           78   80    10      form  Ljava/text/MessageFormat;
           79   80    11    source  [Ljava/lang/Object;
           84   85     6    pEntry  Lsun/security/tools/policytool/PolicyEntry;
      Exception table:
        from    to  target  type
          35    38      39  Class java.lang.ClassNotFoundException
          51    52      53  Class java.lang.ClassNotFoundException
          51    52      61  Class java.lang.reflect.InvocationTargetException
    Exceptions:
      throws java.io.FileNotFoundException, sun.security.provider.PolicyParser$ParsingException, java.security.KeyStoreException, java.security.cert.CertificateException, java.lang.InstantiationException, java.net.MalformedURLException, java.io.IOException, java.security.NoSuchAlgorithmException, java.lang.IllegalAccessException, java.lang.NoSuchMethodException, java.security.UnrecoverableKeyException, java.security.NoSuchProviderException, java.lang.ClassNotFoundException, sun.security.util.PropertyExpander$ExpandException, java.lang.reflect.InvocationTargetException
    MethodParameters:
          Name  Flags
      filename  

  void savePolicy(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // java.lang.String filename
         0: .line 309
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStoreName:Ljava/lang/String;
            invokevirtual sun.security.provider.PolicyParser.setKeyStoreUrl:(Ljava/lang/String;)V
         1: .line 310
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStoreType:Ljava/lang/String;
            invokevirtual sun.security.provider.PolicyParser.setKeyStoreType:(Ljava/lang/String;)V
         2: .line 311
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStoreProvider:Ljava/lang/String;
            invokevirtual sun.security.provider.PolicyParser.setKeyStoreProvider:(Ljava/lang/String;)V
         3: .line 312
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStorePwdURL:Ljava/lang/String;
            invokevirtual sun.security.provider.PolicyParser.setStorePassURL:(Ljava/lang/String;)V
         4: .line 313
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            new java.io.FileWriter
            dup
            aload 1 /* filename */
            invokespecial java.io.FileWriter.<init>:(Ljava/lang/String;)V
            invokevirtual sun.security.provider.PolicyParser.write:(Ljava/io/Writer;)V
         5: .line 314
            aload 0 /* this */
            iconst_0
            putfield sun.security.tools.policytool.PolicyTool.modified:Z
         6: .line 315
            return
        end local 1 // java.lang.String filename
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lsun/security/tools/policytool/PolicyTool;
            0    7     1  filename  Ljava/lang/String;
    Exceptions:
      throws java.io.FileNotFoundException, java.io.IOException
    MethodParameters:
          Name  Flags
      filename  

  void openKeyStore(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String type
        start local 3 // java.lang.String provider
        start local 4 // java.lang.String pwdURL
         0: .line 331
            aload 1 /* name */
            ifnonnull 7
            aload 2 /* type */
            ifnonnull 7
         1: .line 332
            aload 3 /* provider */
            ifnonnull 7
            aload 4 /* pwdURL */
            ifnonnull 7
         2: .line 337
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.keyStoreName:Ljava/lang/String;
         3: .line 338
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.keyStoreType:Ljava/lang/String;
         4: .line 339
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.keyStoreProvider:Ljava/lang/String;
         5: .line 340
            aload 0 /* this */
            aconst_null
            putfield sun.security.tools.policytool.PolicyTool.keyStorePwdURL:Ljava/lang/String;
         6: .line 344
            return
         7: .line 347
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* policyURL */
        start local 5 // java.net.URL policyURL
         8: .line 348
            getstatic sun.security.tools.policytool.PolicyTool.policyFileName:Ljava/lang/String;
            ifnull 11
         9: .line 349
            new java.io.File
            dup
            getstatic sun.security.tools.policytool.PolicyTool.policyFileName:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* pfile */
        start local 6 // java.io.File pfile
        10: .line 350
            new java.net.URL
            dup
            new java.lang.StringBuilder
            dup
            ldc "file:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* pfile */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 5 /* policyURL */
        end local 6 // java.io.File pfile
        11: .line 358
      StackMap locals: java.net.URL
      StackMap stack:
            aload 1 /* name */
            ifnull 15
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            ifle 15
        12: .line 359
            aload 1 /* name */
            invokestatic sun.security.util.PropertyExpander.expand:(Ljava/lang/String;)Ljava/lang/String;
        13: .line 360
            getstatic java.io.File.separatorChar:C
            bipush 47
        14: .line 359
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 1 /* name */
        15: .line 362
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ifnull 16
            aload 2 /* type */
            invokevirtual java.lang.String.length:()I
            ifne 17
        16: .line 363
      StackMap locals:
      StackMap stack:
            invokestatic java.security.KeyStore.getDefaultType:()Ljava/lang/String;
            astore 2 /* type */
        17: .line 365
      StackMap locals:
      StackMap stack:
            aload 4 /* pwdURL */
            ifnull 21
            aload 4 /* pwdURL */
            invokevirtual java.lang.String.length:()I
            ifle 21
        18: .line 366
            aload 4 /* pwdURL */
            invokestatic sun.security.util.PropertyExpander.expand:(Ljava/lang/String;)Ljava/lang/String;
        19: .line 367
            getstatic java.io.File.separatorChar:C
            bipush 47
        20: .line 366
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 4 /* pwdURL */
        21: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* policyURL */
        22: .line 372
            aload 1 /* name */
        23: .line 373
            aload 2 /* type */
        24: .line 374
            aload 3 /* provider */
        25: .line 375
            aload 4 /* pwdURL */
        26: .line 376
            aconst_null
        27: .line 371
            invokestatic sun.security.util.PolicyUtil.getKeyStore:(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lsun/security/util/Debug;)Ljava/security/KeyStore;
            putfield sun.security.tools.policytool.PolicyTool.keyStore:Ljava/security/KeyStore;
        28: .line 377
            goto 37
      StackMap locals:
      StackMap stack: java.io.IOException
        29: astore 6 /* ioe */
        start local 6 // java.io.IOException ioe
        30: .line 380
            ldc "no password provided, and no callback handler available for retrieving password"
            astore 7 /* MSG */
        start local 7 // java.lang.String MSG
        31: .line 383
            aload 6 /* ioe */
            invokevirtual java.io.IOException.getCause:()Ljava/lang/Throwable;
            astore 8 /* cause */
        start local 8 // java.lang.Throwable cause
        32: .line 384
            aload 8 /* cause */
            ifnull 36
        33: .line 385
            aload 8 /* cause */
            instanceof javax.security.auth.login.LoginException
            ifeq 36
        34: .line 386
            aload 7 /* MSG */
            aload 8 /* cause */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 36
        35: .line 389
            new java.io.IOException
            dup
            aload 7 /* MSG */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 391
      StackMap locals: java.io.IOException java.lang.String java.lang.Throwable
      StackMap stack:
            aload 6 /* ioe */
            athrow
        end local 8 // java.lang.Throwable cause
        end local 7 // java.lang.String MSG
        end local 6 // java.io.IOException ioe
        37: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            putfield sun.security.tools.policytool.PolicyTool.keyStoreName:Ljava/lang/String;
        38: .line 396
            aload 0 /* this */
            aload 2 /* type */
            putfield sun.security.tools.policytool.PolicyTool.keyStoreType:Ljava/lang/String;
        39: .line 397
            aload 0 /* this */
            aload 3 /* provider */
            putfield sun.security.tools.policytool.PolicyTool.keyStoreProvider:Ljava/lang/String;
        40: .line 398
            aload 0 /* this */
            aload 4 /* pwdURL */
            putfield sun.security.tools.policytool.PolicyTool.keyStorePwdURL:Ljava/lang/String;
        41: .line 401
            return
        end local 5 // java.net.URL policyURL
        end local 4 // java.lang.String pwdURL
        end local 3 // java.lang.String provider
        end local 2 // java.lang.String type
        end local 1 // java.lang.String name
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   42     0       this  Lsun/security/tools/policytool/PolicyTool;
            0   42     1       name  Ljava/lang/String;
            0   42     2       type  Ljava/lang/String;
            0   42     3   provider  Ljava/lang/String;
            0   42     4     pwdURL  Ljava/lang/String;
            8   42     5  policyURL  Ljava/net/URL;
           10   11     6      pfile  Ljava/io/File;
           30   37     6        ioe  Ljava/io/IOException;
           31   37     7        MSG  Ljava/lang/String;
           32   37     8      cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          21    28      29  Class java.io.IOException
    Exceptions:
      throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException, java.io.IOException, java.security.cert.CertificateException, java.security.NoSuchProviderException, sun.security.util.PropertyExpander$ExpandException
    MethodParameters:
          Name  Flags
      name      
      type      
      provider  
      pwdURL    

  boolean addEntry(sun.security.tools.policytool.PolicyEntry, int);
    descriptor: (Lsun/security/tools/policytool/PolicyEntry;I)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // sun.security.tools.policytool.PolicyEntry pe
        start local 2 // int index
         0: .line 409
            iload 2 /* index */
            ifge 4
         1: .line 411
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
            aload 1 /* pe */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         2: .line 412
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            aload 1 /* pe */
            invokevirtual sun.security.tools.policytool.PolicyEntry.getGrantEntry:()Lsun/security/provider/PolicyParser$GrantEntry;
            invokevirtual sun.security.provider.PolicyParser.add:(Lsun/security/provider/PolicyParser$GrantEntry;)V
         3: .line 413
            goto 7
         4: .line 415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
            iload 2 /* index */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast sun.security.tools.policytool.PolicyEntry
            astore 3 /* origPe */
        start local 3 // sun.security.tools.policytool.PolicyEntry origPe
         5: .line 416
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            aload 3 /* origPe */
            invokevirtual sun.security.tools.policytool.PolicyEntry.getGrantEntry:()Lsun/security/provider/PolicyParser$GrantEntry;
            aload 1 /* pe */
            invokevirtual sun.security.tools.policytool.PolicyEntry.getGrantEntry:()Lsun/security/provider/PolicyParser$GrantEntry;
            invokevirtual sun.security.provider.PolicyParser.replace:(Lsun/security/provider/PolicyParser$GrantEntry;Lsun/security/provider/PolicyParser$GrantEntry;)V
         6: .line 417
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
            aload 1 /* pe */
            iload 2 /* index */
            invokevirtual java.util.Vector.setElementAt:(Ljava/lang/Object;I)V
        end local 3 // sun.security.tools.policytool.PolicyEntry origPe
         7: .line 419
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // int index
        end local 1 // sun.security.tools.policytool.PolicyEntry pe
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/security/tools/policytool/PolicyTool;
            0    8     1      pe  Lsun/security/tools/policytool/PolicyEntry;
            0    8     2   index  I
            5    7     3  origPe  Lsun/security/tools/policytool/PolicyEntry;
    MethodParameters:
       Name  Flags
      pe     
      index  

  boolean addPrinEntry(sun.security.tools.policytool.PolicyEntry, sun.security.provider.PolicyParser$PrincipalEntry, int);
    descriptor: (Lsun/security/tools/policytool/PolicyEntry;Lsun/security/provider/PolicyParser$PrincipalEntry;I)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // sun.security.tools.policytool.PolicyEntry pe
        start local 2 // sun.security.provider.PolicyParser$PrincipalEntry newPrin
        start local 3 // int index
         0: .line 433
            aload 1 /* pe */
            invokevirtual sun.security.tools.policytool.PolicyEntry.getGrantEntry:()Lsun/security/provider/PolicyParser$GrantEntry;
            astore 4 /* grantEntry */
        start local 4 // sun.security.provider.PolicyParser$GrantEntry grantEntry
         1: .line 434
            aload 4 /* grantEntry */
            aload 2 /* newPrin */
            invokevirtual sun.security.provider.PolicyParser$GrantEntry.contains:(Lsun/security/provider/PolicyParser$PrincipalEntry;)Z
            ifeq 3
         2: .line 435
            iconst_0
            ireturn
         3: .line 438
      StackMap locals: sun.security.provider.PolicyParser$GrantEntry
      StackMap stack:
            aload 4 /* grantEntry */
            getfield sun.security.provider.PolicyParser$GrantEntry.principals:Ljava/util/LinkedList;
         4: .line 437
            astore 5 /* prinList */
        start local 5 // java.util.LinkedList prinList
         5: .line 439
            iload 3 /* index */
            iconst_m1
            if_icmpeq 7
         6: .line 440
            aload 5 /* prinList */
            iload 3 /* index */
            aload 2 /* newPrin */
            invokevirtual java.util.LinkedList.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
            goto 8
         7: .line 442
      StackMap locals: java.util.LinkedList
      StackMap stack:
            aload 5 /* prinList */
            aload 2 /* newPrin */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
         8: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.tools.policytool.PolicyTool.modified:Z
         9: .line 445
            iconst_1
            ireturn
        end local 5 // java.util.LinkedList prinList
        end local 4 // sun.security.provider.PolicyParser$GrantEntry grantEntry
        end local 3 // int index
        end local 2 // sun.security.provider.PolicyParser$PrincipalEntry newPrin
        end local 1 // sun.security.tools.policytool.PolicyEntry pe
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lsun/security/tools/policytool/PolicyTool;
            0   10     1          pe  Lsun/security/tools/policytool/PolicyEntry;
            0   10     2     newPrin  Lsun/security/provider/PolicyParser$PrincipalEntry;
            0   10     3       index  I
            1   10     4  grantEntry  Lsun/security/provider/PolicyParser$GrantEntry;
            5   10     5    prinList  Ljava/util/LinkedList<Lsun/security/provider/PolicyParser$PrincipalEntry;>;
    MethodParameters:
         Name  Flags
      pe       
      newPrin  
      index    

  boolean addPermEntry(sun.security.tools.policytool.PolicyEntry, sun.security.provider.PolicyParser$PermissionEntry, int);
    descriptor: (Lsun/security/tools/policytool/PolicyEntry;Lsun/security/provider/PolicyParser$PermissionEntry;I)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // sun.security.tools.policytool.PolicyEntry pe
        start local 2 // sun.security.provider.PolicyParser$PermissionEntry newPerm
        start local 3 // int index
         0: .line 459
            aload 1 /* pe */
            invokevirtual sun.security.tools.policytool.PolicyEntry.getGrantEntry:()Lsun/security/provider/PolicyParser$GrantEntry;
            astore 4 /* grantEntry */
        start local 4 // sun.security.provider.PolicyParser$GrantEntry grantEntry
         1: .line 460
            aload 4 /* grantEntry */
            aload 2 /* newPerm */
            invokevirtual sun.security.provider.PolicyParser$GrantEntry.contains:(Lsun/security/provider/PolicyParser$PermissionEntry;)Z
            ifeq 3
         2: .line 461
            iconst_0
            ireturn
         3: .line 464
      StackMap locals: sun.security.provider.PolicyParser$GrantEntry
      StackMap stack:
            aload 4 /* grantEntry */
            getfield sun.security.provider.PolicyParser$GrantEntry.permissionEntries:Ljava/util/Vector;
         4: .line 463
            astore 5 /* permList */
        start local 5 // java.util.Vector permList
         5: .line 465
            iload 3 /* index */
            iconst_m1
            if_icmpeq 7
         6: .line 466
            aload 5 /* permList */
            aload 2 /* newPerm */
            iload 3 /* index */
            invokevirtual java.util.Vector.setElementAt:(Ljava/lang/Object;I)V
            goto 8
         7: .line 468
      StackMap locals: java.util.Vector
      StackMap stack:
            aload 5 /* permList */
            aload 2 /* newPerm */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         8: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.tools.policytool.PolicyTool.modified:Z
         9: .line 471
            iconst_1
            ireturn
        end local 5 // java.util.Vector permList
        end local 4 // sun.security.provider.PolicyParser$GrantEntry grantEntry
        end local 3 // int index
        end local 2 // sun.security.provider.PolicyParser$PermissionEntry newPerm
        end local 1 // sun.security.tools.policytool.PolicyEntry pe
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lsun/security/tools/policytool/PolicyTool;
            0   10     1          pe  Lsun/security/tools/policytool/PolicyEntry;
            0   10     2     newPerm  Lsun/security/provider/PolicyParser$PermissionEntry;
            0   10     3       index  I
            1   10     4  grantEntry  Lsun/security/provider/PolicyParser$GrantEntry;
            5   10     5    permList  Ljava/util/Vector<Lsun/security/provider/PolicyParser$PermissionEntry;>;
    MethodParameters:
         Name  Flags
      pe       
      newPerm  
      index    

  boolean removePermEntry(sun.security.tools.policytool.PolicyEntry, sun.security.provider.PolicyParser$PermissionEntry);
    descriptor: (Lsun/security/tools/policytool/PolicyEntry;Lsun/security/provider/PolicyParser$PermissionEntry;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // sun.security.tools.policytool.PolicyEntry pe
        start local 2 // sun.security.provider.PolicyParser$PermissionEntry perm
         0: .line 481
            aload 1 /* pe */
            invokevirtual sun.security.tools.policytool.PolicyEntry.getGrantEntry:()Lsun/security/provider/PolicyParser$GrantEntry;
            astore 3 /* ppge */
        start local 3 // sun.security.provider.PolicyParser$GrantEntry ppge
         1: .line 482
            aload 0 /* this */
            aload 3 /* ppge */
            aload 2 /* perm */
            invokevirtual sun.security.provider.PolicyParser$GrantEntry.remove:(Lsun/security/provider/PolicyParser$PermissionEntry;)Z
            putfield sun.security.tools.policytool.PolicyTool.modified:Z
         2: .line 483
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.modified:Z
            ireturn
        end local 3 // sun.security.provider.PolicyParser$GrantEntry ppge
        end local 2 // sun.security.provider.PolicyParser$PermissionEntry perm
        end local 1 // sun.security.tools.policytool.PolicyEntry pe
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/tools/policytool/PolicyTool;
            0    3     1    pe  Lsun/security/tools/policytool/PolicyEntry;
            0    3     2  perm  Lsun/security/provider/PolicyParser$PermissionEntry;
            1    3     3  ppge  Lsun/security/provider/PolicyParser$GrantEntry;
    MethodParameters:
      Name  Flags
      pe    
      perm  

  boolean removeEntry(sun.security.tools.policytool.PolicyEntry);
    descriptor: (Lsun/security/tools/policytool/PolicyEntry;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // sun.security.tools.policytool.PolicyEntry pe
         0: .line 491
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.parser:Lsun/security/provider/PolicyParser;
            aload 1 /* pe */
            invokevirtual sun.security.tools.policytool.PolicyEntry.getGrantEntry:()Lsun/security/provider/PolicyParser$GrantEntry;
            invokevirtual sun.security.provider.PolicyParser.remove:(Lsun/security/provider/PolicyParser$GrantEntry;)Z
            pop
         1: .line 492
            aload 0 /* this */
            iconst_1
            putfield sun.security.tools.policytool.PolicyTool.modified:Z
         2: .line 493
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
            aload 1 /* pe */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // sun.security.tools.policytool.PolicyEntry pe
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/tools/policytool/PolicyTool;
            0    3     1    pe  Lsun/security/tools/policytool/PolicyEntry;
    MethodParameters:
      Name  Flags
      pe    

  sun.security.tools.policytool.PolicyEntry[] getEntry();
    descriptor: ()[Lsun/security/tools/policytool/PolicyEntry;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.security.tools.policytool.PolicyTool this
         0: .line 501
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifle 8
         1: .line 502
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            anewarray sun.security.tools.policytool.PolicyEntry
            astore 1 /* entries */
        start local 1 // sun.security.tools.policytool.PolicyEntry[] entries
         2: .line 503
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 6
         4: .line 504
      StackMap locals: sun.security.tools.policytool.PolicyEntry[] int
      StackMap stack:
            aload 1 /* entries */
            iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
            iload 2 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast sun.security.tools.policytool.PolicyEntry
            aastore
         5: .line 503
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.policyEntries:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmplt 4
        end local 2 // int i
         7: .line 505
            aload 1 /* entries */
            areturn
        end local 1 // sun.security.tools.policytool.PolicyEntry[] entries
         8: .line 507
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lsun/security/tools/policytool/PolicyTool;
            2    8     1  entries  [Lsun/security/tools/policytool/PolicyEntry;
            3    7     2        i  I

  java.security.PublicKey getPublicKeyAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/security/PublicKey;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // java.lang.String name
         0: .line 515
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStore:Ljava/security/KeyStore;
            ifnonnull 2
         1: .line 516
            aconst_null
            areturn
         2: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStore:Ljava/security/KeyStore;
            aload 1 /* name */
            invokevirtual java.security.KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
            astore 2 /* cert */
        start local 2 // java.security.cert.Certificate cert
         3: .line 520
            aload 2 /* cert */
            ifnonnull 5
         4: .line 521
            aconst_null
            areturn
         5: .line 523
      StackMap locals: java.security.cert.Certificate
      StackMap stack:
            aload 2 /* cert */
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
            astore 3 /* pubKey */
        start local 3 // java.security.PublicKey pubKey
         6: .line 524
            aload 3 /* pubKey */
            areturn
        end local 3 // java.security.PublicKey pubKey
        end local 2 // java.security.cert.Certificate cert
        end local 1 // java.lang.String name
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/security/tools/policytool/PolicyTool;
            0    7     1    name  Ljava/lang/String;
            3    7     2    cert  Ljava/security/cert/Certificate;
            6    7     3  pubKey  Ljava/security/PublicKey;
    Exceptions:
      throws java.security.KeyStoreException
    MethodParameters:
      Name  Flags
      name  

  java.lang.String[] getPublicKeyAlias();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.security.tools.policytool.PolicyTool this
         0: .line 532
            iconst_0
            istore 1 /* numAliases */
        start local 1 // int numAliases
         1: .line 533
            aconst_null
            astore 2 /* aliases */
        start local 2 // java.lang.String[] aliases
         2: .line 535
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStore:Ljava/security/KeyStore;
            ifnonnull 4
         3: .line 536
            aconst_null
            areturn
         4: .line 538
      StackMap locals: int java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStore:Ljava/security/KeyStore;
            invokevirtual java.security.KeyStore.aliases:()Ljava/util/Enumeration;
            astore 3 /* enum_ */
        start local 3 // java.util.Enumeration enum_
         5: .line 541
            goto 8
         6: .line 542
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 3 /* enum_ */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            pop
         7: .line 543
            iinc 1 /* numAliases */ 1
         8: .line 541
      StackMap locals:
      StackMap stack:
            aload 3 /* enum_ */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 6
         9: .line 546
            iload 1 /* numAliases */
            ifle 17
        10: .line 548
            iload 1 /* numAliases */
            anewarray java.lang.String
            astore 2 /* aliases */
        11: .line 549
            iconst_0
            istore 1 /* numAliases */
        12: .line 550
            aload 0 /* this */
            getfield sun.security.tools.policytool.PolicyTool.keyStore:Ljava/security/KeyStore;
            invokevirtual java.security.KeyStore.aliases:()Ljava/util/Enumeration;
            astore 3 /* enum_ */
        13: .line 551
            goto 16
        14: .line 552
      StackMap locals:
      StackMap stack:
            aload 2 /* aliases */
            iload 1 /* numAliases */
            new java.lang.String
            dup
            aload 3 /* enum_ */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            invokespecial java.lang.String.<init>:(Ljava/lang/String;)V
            aastore
        15: .line 553
            iinc 1 /* numAliases */ 1
        16: .line 551
      StackMap locals:
      StackMap stack:
            aload 3 /* enum_ */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 14
        17: .line 556
      StackMap locals:
      StackMap stack:
            aload 2 /* aliases */
            areturn
        end local 3 // java.util.Enumeration enum_
        end local 2 // java.lang.String[] aliases
        end local 1 // int numAliases
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lsun/security/tools/policytool/PolicyTool;
            1   18     1  numAliases  I
            2   18     2     aliases  [Ljava/lang/String;
            5   18     3       enum_  Ljava/util/Enumeration<Ljava/lang/String;>;
    Exceptions:
      throws java.security.KeyStoreException

  java.lang.String[] parseSigners(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // java.lang.String signedBy
         0: .line 565
            aconst_null
            astore 2 /* signers */
        start local 2 // java.lang.String[] signers
         1: .line 566
            iconst_1
            istore 3 /* numSigners */
        start local 3 // int numSigners
         2: .line 567
            iconst_0
            istore 4 /* signedByIndex */
        start local 4 // int signedByIndex
         3: .line 568
            iconst_0
            istore 5 /* commaIndex */
        start local 5 // int commaIndex
         4: .line 569
            iconst_0
            istore 6 /* signerNum */
        start local 6 // int signerNum
         5: .line 572
            goto 10
         6: .line 573
      StackMap locals: sun.security.tools.policytool.PolicyTool java.lang.String java.lang.String[] int int int int
      StackMap stack:
            aload 1 /* signedBy */
            bipush 44
            iload 4 /* signedByIndex */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 5 /* commaIndex */
         7: .line 574
            iload 5 /* commaIndex */
            iflt 10
         8: .line 575
            iinc 3 /* numSigners */ 1
         9: .line 576
            iload 5 /* commaIndex */
            iconst_1
            iadd
            istore 4 /* signedByIndex */
        10: .line 572
      StackMap locals:
      StackMap stack:
            iload 5 /* commaIndex */
            ifge 6
        11: .line 579
            iload 3 /* numSigners */
            anewarray java.lang.String
            astore 2 /* signers */
        12: .line 582
            iconst_0
            istore 5 /* commaIndex */
        13: .line 583
            iconst_0
            istore 4 /* signedByIndex */
        14: .line 584
            goto 23
        15: .line 585
      StackMap locals:
      StackMap stack:
            aload 1 /* signedBy */
            bipush 44
            iload 4 /* signedByIndex */
            invokevirtual java.lang.String.indexOf:(II)I
            dup
            istore 5 /* commaIndex */
            iflt 22
        16: .line 587
            aload 2 /* signers */
            iload 6 /* signerNum */
        17: .line 588
            aload 1 /* signedBy */
            iload 4 /* signedByIndex */
            iload 5 /* commaIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
        18: .line 587
            aastore
        19: .line 589
            iinc 6 /* signerNum */ 1
        20: .line 590
            iload 5 /* commaIndex */
            iconst_1
            iadd
            istore 4 /* signedByIndex */
        21: .line 591
            goto 23
        22: .line 593
      StackMap locals:
      StackMap stack:
            aload 2 /* signers */
            iload 6 /* signerNum */
            aload 1 /* signedBy */
            iload 4 /* signedByIndex */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            aastore
        23: .line 584
      StackMap locals:
      StackMap stack:
            iload 5 /* commaIndex */
            ifge 15
        24: .line 596
            aload 2 /* signers */
            areturn
        end local 6 // int signerNum
        end local 5 // int commaIndex
        end local 4 // int signedByIndex
        end local 3 // int numSigners
        end local 2 // java.lang.String[] signers
        end local 1 // java.lang.String signedBy
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Lsun/security/tools/policytool/PolicyTool;
            0   25     1       signedBy  Ljava/lang/String;
            1   25     2        signers  [Ljava/lang/String;
            2   25     3     numSigners  I
            3   25     4  signedByIndex  I
            4   25     5     commaIndex  I
            5   25     6      signerNum  I
    MethodParameters:
          Name  Flags
      signedBy  

  void verifyPrincipal(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // java.lang.String type
        start local 2 // java.lang.String name
         0: .line 606
            aload 1 /* type */
            ldc "WILDCARD_PRINCIPAL_CLASS"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 607
            aload 1 /* type */
            ldc "PolicyParser.REPLACE_NAME"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 608
      StackMap locals:
      StackMap stack:
            return
         3: .line 610
      StackMap locals:
      StackMap stack:
            ldc "java.security.Principal"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* PRIN */
        start local 3 // java.lang.Class PRIN
         4: .line 611
            aload 1 /* type */
            iconst_1
         5: .line 612
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
         6: .line 611
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 4 /* pc */
        start local 4 // java.lang.Class pc
         7: .line 613
            aload 3 /* PRIN */
            aload 4 /* pc */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 13
         8: .line 614
            new java.text.MessageFormat
            dup
            getstatic sun.security.tools.policytool.PolicyTool.rb:Ljava/util/ResourceBundle;
         9: .line 615
            ldc "Illegal.Principal.Type.type"
        10: .line 614
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 5 /* form */
        start local 5 // java.text.MessageFormat form
        11: .line 616
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* type */
            aastore
            astore 6 /* source */
        start local 6 // java.lang.Object[] source
        12: .line 617
            new java.lang.InstantiationException
            dup
            aload 5 /* form */
            aload 6 /* source */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.InstantiationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.Object[] source
        end local 5 // java.text.MessageFormat form
        13: .line 620
      StackMap locals: java.lang.Class java.lang.Class
      StackMap stack:
            ldc "javax.security.auth.x500.X500Principal"
            aload 4 /* pc */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 626
            new javax.security.auth.x500.X500Principal
            aload 2 /* name */
            invokespecial javax.security.auth.x500.X500Principal.<init>:(Ljava/lang/String;)V
        15: .line 628
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Class pc
        end local 3 // java.lang.Class PRIN
        end local 2 // java.lang.String name
        end local 1 // java.lang.String type
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lsun/security/tools/policytool/PolicyTool;
            0   16     1    type  Ljava/lang/String;
            0   16     2    name  Ljava/lang/String;
            4   16     3    PRIN  Ljava/lang/Class<*>;
            7   16     4      pc  Ljava/lang/Class<*>;
           11   13     5    form  Ljava/text/MessageFormat;
           12   13     6  source  [Ljava/lang/Object;
    Exceptions:
      throws java.lang.ClassNotFoundException, java.lang.InstantiationException
    MethodParameters:
      Name  Flags
      type  
      name  

  void verifyPermission(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // sun.security.tools.policytool.PolicyTool this
        start local 1 // java.lang.String type
        start local 2 // java.lang.String name
        start local 3 // java.lang.String actions
         0: .line 645
            aload 1 /* type */
            iconst_1
         1: .line 646
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
         2: .line 645
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 4 /* pc */
        start local 4 // java.lang.Class pc
         3: .line 647
            aconst_null
            astore 5 /* c */
        start local 5 // java.lang.reflect.Constructor c
         4: .line 648
            new java.util.Vector
            dup
            iconst_2
            invokespecial java.util.Vector.<init>:(I)V
            astore 6 /* objects */
        start local 6 // java.util.Vector objects
         5: .line 649
            aload 2 /* name */
            ifnull 6
            aload 6 /* objects */
            aload 2 /* name */
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
         6: .line 650
      StackMap locals: java.lang.Class java.lang.reflect.Constructor java.util.Vector
      StackMap stack:
            aload 3 /* actions */
            ifnull 7
            aload 6 /* objects */
            aload 3 /* actions */
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
         7: .line 651
      StackMap locals:
      StackMap stack:
            aload 6 /* objects */
            invokevirtual java.util.Vector.size:()I
            tableswitch { // 0 - 2
                    0: 8
                    1: 12
                    2: 16
              default: 17
          }
         8: .line 654
      StackMap locals:
      StackMap stack:
            aload 4 /* pc */
            getstatic sun.security.tools.policytool.PolicyTool.NOPARAMS:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* c */
         9: .line 655
            goto 17
        10: .line 656
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            pop
        11: .line 658
            aload 6 /* objects */
            aconst_null
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
        12: .line 663
      StackMap locals:
      StackMap stack:
            aload 4 /* pc */
            getstatic sun.security.tools.policytool.PolicyTool.ONEPARAMS:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* c */
        13: .line 664
            goto 17
        14: .line 665
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            pop
        15: .line 667
            aload 6 /* objects */
            aconst_null
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
        16: .line 671
      StackMap locals:
      StackMap stack:
            aload 4 /* pc */
            getstatic sun.security.tools.policytool.PolicyTool.TWOPARAMS:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* c */
        17: .line 674
      StackMap locals:
      StackMap stack:
            aload 6 /* objects */
            invokevirtual java.util.Vector.toArray:()[Ljava/lang/Object;
            astore 7 /* parameters */
        start local 7 // java.lang.Object[] parameters
        18: .line 675
            aload 5 /* c */
            aload 7 /* parameters */
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
            pop
        19: .line 676
            return
        end local 7 // java.lang.Object[] parameters
        end local 6 // java.util.Vector objects
        end local 5 // java.lang.reflect.Constructor c
        end local 4 // java.lang.Class pc
        end local 3 // java.lang.String actions
        end local 2 // java.lang.String name
        end local 1 // java.lang.String type
        end local 0 // sun.security.tools.policytool.PolicyTool this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lsun/security/tools/policytool/PolicyTool;
            0   20     1        type  Ljava/lang/String;
            0   20     2        name  Ljava/lang/String;
            0   20     3     actions  Ljava/lang/String;
            3   20     4          pc  Ljava/lang/Class<*>;
            4   20     5           c  Ljava/lang/reflect/Constructor<*>;
            5   20     6     objects  Ljava/util/Vector<Ljava/lang/String;>;
           18   20     7  parameters  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           8     9      10  Class java.lang.NoSuchMethodException
          12    13      14  Class java.lang.NoSuchMethodException
    Exceptions:
      throws java.lang.ClassNotFoundException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException
    MethodParameters:
         Name  Flags
      type     
      name     
      actions  

  static void parseArgs(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 683
            iconst_0
            istore 1 /* n */
        start local 1 // int n
         1: .line 685
            iconst_0
            istore 1 /* n */
            goto 14
         2: .line 687
      StackMap locals: int
      StackMap stack:
            aload 0 /* args */
            iload 1 /* n */
            aaload
            astore 2 /* flags */
        start local 2 // java.lang.String flags
         3: .line 689
            getstatic sun.security.tools.policytool.PolicyTool.collator:Ljava/text/Collator;
            aload 2 /* flags */
            ldc "-file"
            invokevirtual java.text.Collator.compare:(Ljava/lang/String;Ljava/lang/String;)I
            ifne 7
         4: .line 690
            iinc 1 /* n */ 1
            iload 1 /* n */
            aload 0 /* args */
            arraylength
            if_icmpne 5
            invokestatic sun.security.tools.policytool.PolicyTool.usage:()V
         5: .line 691
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* args */
            iload 1 /* n */
            aaload
            putstatic sun.security.tools.policytool.PolicyTool.policyFileName:Ljava/lang/String;
         6: .line 692
            goto 13
         7: .line 693
      StackMap locals:
      StackMap stack:
            new java.text.MessageFormat
            dup
            getstatic sun.security.tools.policytool.PolicyTool.rb:Ljava/util/ResourceBundle;
         8: .line 694
            ldc "Illegal.option.option"
         9: .line 693
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 3 /* form */
        start local 3 // java.text.MessageFormat form
        10: .line 695
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* flags */
            aastore
            astore 4 /* source */
        start local 4 // java.lang.Object[] source
        11: .line 696
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 3 /* form */
            aload 4 /* source */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        12: .line 697
            invokestatic sun.security.tools.policytool.PolicyTool.usage:()V
        end local 4 // java.lang.Object[] source
        end local 3 // java.text.MessageFormat form
        end local 2 // java.lang.String flags
        13: .line 685
      StackMap locals:
      StackMap stack:
            iinc 1 /* n */ 1
      StackMap locals:
      StackMap stack:
        14: iload 1 /* n */
            aload 0 /* args */
            arraylength
            if_icmpge 15
            aload 0 /* args */
            iload 1 /* n */
            aaload
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 2
        15: .line 700
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int n
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    args  [Ljava/lang/String;
            1   16     1       n  I
            3   13     2   flags  Ljava/lang/String;
           10   13     3    form  Ljava/text/MessageFormat;
           11   13     4  source  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      args  

  static void usage();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 703
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            getstatic sun.security.tools.policytool.PolicyTool.rb:Ljava/util/ResourceBundle;
            ldc "Usage.policytool.options."
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 704
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
         2: .line 705
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            getstatic sun.security.tools.policytool.PolicyTool.rb:Ljava/util/ResourceBundle;
         3: .line 706
            ldc ".file.file.policy.file.location"
         4: .line 705
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 707
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
         6: .line 709
            iconst_1
            invokestatic java.lang.System.exit:(I)V
         7: .line 710
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 716
            aload 0 /* args */
            invokestatic sun.security.tools.policytool.PolicyTool.parseArgs:([Ljava/lang/String;)V
         1: .line 717
            new sun.security.tools.policytool.ToolWindow
            dup
            new sun.security.tools.policytool.PolicyTool
            dup
            invokespecial sun.security.tools.policytool.PolicyTool.<init>:()V
            invokespecial sun.security.tools.policytool.ToolWindow.<init>:(Lsun/security/tools/policytool/PolicyTool;)V
            astore 1 /* tw */
        start local 1 // sun.security.tools.policytool.ToolWindow tw
         2: .line 718
            aload 1 /* tw */
            aload 0 /* args */
            invokevirtual sun.security.tools.policytool.ToolWindow.displayToolWindow:([Ljava/lang/String;)V
         3: .line 719
            return
        end local 1 // sun.security.tools.policytool.ToolWindow tw
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  args  [Ljava/lang/String;
            2    4     1    tw  Lsun/security/tools/policytool/ToolWindow;
    MethodParameters:
      Name  Flags
      args  

  static java.lang.String splitToWords(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String instr
         0: .line 725
            aload 0 /* instr */
            ldc "([A-Z])"
            ldc " $1"
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String instr
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  instr  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      instr  
}
SourceFile: "PolicyTool.java"
InnerClasses:
  public GrantEntry = sun.security.provider.PolicyParser$GrantEntry of sun.security.provider.PolicyParser
  public ParsingException = sun.security.provider.PolicyParser$ParsingException of sun.security.provider.PolicyParser
  public PermissionEntry = sun.security.provider.PolicyParser$PermissionEntry of sun.security.provider.PolicyParser
  public PrincipalEntry = sun.security.provider.PolicyParser$PrincipalEntry of sun.security.provider.PolicyParser
  public ExpandException = sun.security.util.PropertyExpander$ExpandException of sun.security.util.PropertyExpander