Program: 62175
Project: 62175
Buggy source:
public MainFrame(SWF swf){
  setSize(1000,700);
  tabPane=new JTabbedPane();
  View.setWindowIcon(this);
  addWindowListener(new WindowAdapter(){
    @Override public void windowClosing(    WindowEvent e){
      if (Main.proxyFrame != null) {
        if (Main.proxyFrame.isVisible()) {
          return;
        }
      }
      Main.exit();
    }
  }
);
  setTitle(Main.applicationVerName + (Configuration.DISPLAY_FILENAME ? "String_Node_Str" + Main.getFileTitle() : "String_Node_Str"));
  JMenuBar menuBar=new JMenuBar();
  try {
    flashPanel=new FlashPlayerPanel(this);
  }
 catch (  FlashUnsupportedException fue) {
  }
  JMenu menuFile=new JMenu("String_Node_Str");
  JMenuItem miOpen=new JMenuItem("String_Node_Str");
  miOpen.setIcon(View.getIcon("String_Node_Str"));
  miOpen.setActionCommand("String_Node_Str");
  miOpen.addActionListener(this);
  JMenuItem miSave=new JMenuItem("String_Node_Str");
  miSave.setIcon(View.getIcon("String_Node_Str"));
  miSave.setActionCommand("String_Node_Str");
  miSave.addActionListener(this);
  JMenuItem miSaveAs=new JMenuItem("String_Node_Str");
  miSaveAs.setIcon(View.getIcon("String_Node_Str"));
  miSaveAs.setActionCommand("String_Node_Str");
  miSaveAs.addActionListener(this);
  JMenuItem menuExportFla=new JMenuItem("String_Node_Str");
  menuExportFla.setActionCommand("String_Node_Str");
  menuExportFla.addActionListener(this);
  menuExportFla.setIcon(View.getIcon("String_Node_Str"));
  JMenuItem menuExportAll=new JMenuItem("String_Node_Str");
  menuExportAll.setActionCommand("String_Node_Str");
  menuExportAll.addActionListener(this);
  JMenuItem menuExportSel=new JMenuItem("String_Node_Str");
  menuExportSel.setActionCommand("String_Node_Str");
  menuExportSel.addActionListener(this);
  menuExportAll.setIcon(View.getIcon("String_Node_Str"));
  menuExportSel.setIcon(View.getIcon("String_Node_Str"));
  menuFile.add(miOpen);
  menuFile.add(miSave);
  menuFile.add(miSaveAs);
  menuFile.add(menuExportFla);
  menuFile.add(menuExportAll);
  menuFile.add(menuExportSel);
  menuFile.addSeparator();
  JMenuItem miClose=new JMenuItem("String_Node_Str");
  miClose.setIcon(View.getIcon("String_Node_Str"));
  miClose.setActionCommand("String_Node_Str");
  miClose.addActionListener(this);
  menuFile.add(miClose);
  menuBar.add(menuFile);
  JMenu menuDeobfuscation=new JMenu("String_Node_Str");
  menuDeobfuscation.setIcon(View.getIcon("String_Node_Str"));
  JMenuItem miDeobfuscation=new JMenuItem("String_Node_Str");
  miDeobfuscation.setActionCommand("String_Node_Str");
  miDeobfuscation.addActionListener(this);
  autoDeobfuscateMenuItem=new JCheckBoxMenuItem("String_Node_Str");
  autoDeobfuscateMenuItem.setState((Boolean)Configuration.getConfig("String_Node_Str",true));
  autoDeobfuscateMenuItem.addActionListener(this);
  autoDeobfuscateMenuItem.setActionCommand("String_Node_Str");
  menuDeobfuscation.add(autoDeobfuscateMenuItem);
  JCheckBoxMenuItem miSubLimiter=new JCheckBoxMenuItem("String_Node_Str");
  miSubLimiter.setActionCommand("String_Node_Str");
  miSubLimiter.addActionListener(this);
  JMenuItem miRenameOneIdentifier=new JMenuItem("String_Node_Str");
  miRenameOneIdentifier.setActionCommand("String_Node_Str");
  miRenameOneIdentifier.addActionListener(this);
  JMenuItem miRenameIdentifiers=new JMenuItem("String_Node_Str");
  miRenameIdentifiers.setActionCommand("String_Node_Str");
  miRenameIdentifiers.addActionListener(this);
  JMenuItem miRemoveDeadCode=new JMenuItem("String_Node_Str");
  miRemoveDeadCode.setActionCommand("String_Node_Str");
  miRemoveDeadCode.addActionListener(this);
  JMenuItem miRemoveDeadCodeAll=new JMenuItem("String_Node_Str");
  miRemoveDeadCodeAll.setActionCommand("String_Node_Str");
  miRemoveDeadCodeAll.addActionListener(this);
  JMenuItem miTraps=new JMenuItem("String_Node_Str");
  miTraps.setActionCommand("String_Node_Str");
  miTraps.addActionListener(this);
  JMenuItem miTrapsAll=new JMenuItem("String_Node_Str");
  miTrapsAll.setActionCommand("String_Node_Str");
  miTrapsAll.addActionListener(this);
  JMenuItem miControlFlow=new JMenuItem("String_Node_Str");
  miControlFlow.setActionCommand("String_Node_Str");
  miControlFlow.addActionListener(this);
  JMenuItem miControlFlowAll=new JMenuItem("String_Node_Str");
  miControlFlowAll.setActionCommand("String_Node_Str");
  miControlFlowAll.addActionListener(this);
  menuDeobfuscation.add(miRenameOneIdentifier);
  menuDeobfuscation.add(miRenameIdentifiers);
  menuDeobfuscation.add(miDeobfuscation);
  JMenu menuTools=new JMenu("String_Node_Str");
  JMenuItem miProxy=new JMenuItem("String_Node_Str");
  miProxy.setActionCommand("String_Node_Str");
  miProxy.setIcon(View.getIcon("String_Node_Str"));
  miProxy.addActionListener(this);
  JMenuItem miSearchScript=new JMenuItem("String_Node_Str");
  miSearchScript.addActionListener(this);
  miSearchScript.setActionCommand("String_Node_Str");
  miSearchScript.setIcon(View.getIcon("String_Node_Str"));
  menuTools.add(miSearchScript);
  miInternalViewer=new JCheckBoxMenuItem("String_Node_Str");
  miInternalViewer.setSelected((Boolean)Configuration.getConfig("String_Node_Str",(Boolean)(flashPanel == null)));
  if (flashPanel == null) {
    miInternalViewer.setSelected(true);
    miInternalViewer.setEnabled(false);
  }
  miInternalViewer.setActionCommand("String_Node_Str");
  miInternalViewer.addActionListener(this);
  menuTools.add(miInternalViewer);
  miParallelSpeedUp=new JCheckBoxMenuItem("String_Node_Str");
  miParallelSpeedUp.setSelected((Boolean)Configuration.getConfig("String_Node_Str",Boolean.TRUE));
  miParallelSpeedUp.setActionCommand("String_Node_Str");
  miParallelSpeedUp.addActionListener(this);
  menuTools.add(miParallelSpeedUp);
  menuTools.add(miProxy);
  menuTools.add(menuDeobfuscation);
  JMenuItem miGotoDocumentClass=new JMenuItem("String_Node_Str");
  miGotoDocumentClass.setActionCommand("String_Node_Str");
  miGotoDocumentClass.addActionListener(this);
  if (swf.fileAttributes.actionScript3) {
    menuTools.add(miGotoDocumentClass);
  }
  menuBar.add(menuTools);
  JMenu menuHelp=new JMenu("String_Node_Str");
  JMenuItem miAbout=new JMenuItem("String_Node_Str");
  miAbout.setIcon(View.getIcon("String_Node_Str"));
  miAbout.setActionCommand("String_Node_Str");
  miAbout.addActionListener(this);
  JMenuItem miCheckUpdates=new JMenuItem("String_Node_Str");
  miCheckUpdates.setActionCommand("String_Node_Str");
  miCheckUpdates.setIcon(View.getIcon("String_Node_Str"));
  miCheckUpdates.addActionListener(this);
  JMenuItem miHelpUs=new JMenuItem("String_Node_Str");
  miHelpUs.setActionCommand("String_Node_Str");
  miHelpUs.setIcon(View.getIcon("String_Node_Str"));
  miHelpUs.addActionListener(this);
  JMenuItem miHomepage=new JMenuItem("String_Node_Str");
  miHomepage.setActionCommand("String_Node_Str");
  miHomepage.setIcon(View.getIcon("String_Node_Str"));
  miHomepage.addActionListener(this);
  menuHelp.add(miCheckUpdates);
  menuHelp.add(miHelpUs);
  menuHelp.add(miHomepage);
  menuHelp.add(miAbout);
  menuBar.add(menuHelp);
  setJMenuBar(menuBar);
  List<Object> objs=new ArrayList<>();
  objs.addAll(swf.tags);
  this.swf=swf;
  java.awt.Container cnt=getContentPane();
  cnt.setLayout(new BorderLayout());
  detailPanel=new JPanel();
  detailPanel.setLayout(new CardLayout());
  JPanel whitePanel=new JPanel();
  whitePanel.setBackground(Color.white);
  detailPanel.add(whitePanel,DETAILCARDEMPTYPANEL);
  CardLayout cl2=(CardLayout)(detailPanel.getLayout());
  cl2.show(detailPanel,DETAILCARDEMPTYPANEL);
  abcList=new ArrayList<>();
  getActionScript3(objs,abcList);
  if (!abcList.isEmpty()) {
    addTab(tabPane,abcPanel=new ABCPanel(abcList),"String_Node_Str",View.getIcon("String_Node_Str"));
    detailPanel.add(abcPanel.tabbedPane,DETAILCARDAS3NAVIGATOR);
  }
 else {
    actionPanel=new ActionPanel();
    addTab(tabPane,actionPanel,"String_Node_Str",View.getIcon("String_Node_Str"));
    miDeobfuscation.setEnabled(false);
  }
  tagTree=new JTree(new TagTreeModel(createTagList(objs,null),new SWFRoot((new File(Main.file)).getName())));
  tagTree.addTreeSelectionListener(this);
  DragSource dragSource=DragSource.getDefaultDragSource();
  dragSource.createDefaultDragGestureRecognizer(tagTree,DnDConstants.ACTION_COPY_OR_MOVE,new DragGestureListener(){
    @Override public void dragGestureRecognized(    DragGestureEvent dge){
      dge.startDrag(DragSource.DefaultCopyDrop,new Transferable(){
        @Override public DataFlavor[] getTransferDataFlavors(){
          return new DataFlavor[]{DataFlavor.javaFileListFlavor};
        }
        @Override public boolean isDataFlavorSupported(        DataFlavor flavor){
          return flavor.equals(DataFlavor.javaFileListFlavor);
        }
        @Override public Object getTransferData(        DataFlavor flavor) throws UnsupportedFlavorException, IOException {
          if (flavor.equals(DataFlavor.javaFileListFlavor)) {
            List<File> files=new ArrayList<>();
            String tempDir=System.getProperty("String_Node_Str");
            if (!tempDir.endsWith(File.separator)) {
              tempDir+=File.separator;
            }
            Random rnd=new Random();
            tempDir+="String_Node_Str" + File.separator + "String_Node_Str"+ File.separator+ System.currentTimeMillis()+ "String_Node_Str"+ rnd.nextInt(1000);
            new File(tempDir).mkdirs();
            final ExportDialog export=new ExportDialog();
            try {
              File ftemp=new File(tempDir);
              files=exportSelection(tempDir,export);
              files.clear();
              File fs[]=ftemp.listFiles();
              for (              File f : fs) {
                files.add(f);
              }
              Main.stopWork();
            }
 catch (            IOException ex) {
              return null;
            }
            for (            File f : files) {
              f.deleteOnExit();
            }
            new File(tempDir).deleteOnExit();
            return files;
          }
          return null;
        }
      }
,new DragSourceListener(){
        @Override public void dragEnter(        DragSourceDragEvent dsde){
          enableDrop(false);
        }
        @Override public void dragOver(        DragSourceDragEvent dsde){
        }
        @Override public void dropActionChanged(        DragSourceDragEvent dsde){
        }
        @Override public void dragExit(        DragSourceEvent dse){
        }
        @Override public void dragDropEnd(        DragSourceDropEvent dsde){
          enableDrop(true);
        }
      }
);
    }
  }
);
  final JPopupMenu spritePopupMenu=new JPopupMenu();
  JMenuItem removeMenuItem=new JMenuItem("String_Node_Str");
  removeMenuItem.addActionListener(this);
  removeMenuItem.setActionCommand("String_Node_Str");
  spritePopupMenu.add(removeMenuItem);
  tagTree.addMouseListener(new MouseAdapter(){
    @Override public void mouseClicked(    MouseEvent e){
      if (SwingUtilities.isRightMouseButton(e)) {
        int row=tagTree.getClosestRowForLocation(e.getX(),e.getY());
        tagTree.setSelectionRow(row);
        Object tagObj=tagTree.getLastSelectedPathComponent();
        if (tagObj == null) {
          return;
        }
        if (tagObj instanceof TagNode) {
          tagObj=((TagNode)tagObj).tag;
        }
        if (tagObj instanceof DefineSpriteTag) {
          spritePopupMenu.show(e.getComponent(),e.getX(),e.getY());
        }
      }
    }
  }
);
  TreeCellRenderer tcr=new DefaultTreeCellRenderer(){
    @Override public Component getTreeCellRendererComponent(    JTree tree,    Object value,    boolean sel,    boolean expanded,    boolean leaf,    int row,    boolean hasFocus){
      super.getTreeCellRendererComponent(tree,value,sel,expanded,leaf,row,hasFocus);
      Object val=value;
      if (val instanceof TagNode) {
        val=((TagNode)val).tag;
      }
      String type=getTagType(val);
      if (row == 0) {
        setIcon(View.getIcon("String_Node_Str"));
      }
 else       if (type != null) {
        if (type.equals("String_Node_Str") && expanded) {
          type="String_Node_Str";
        }
        setIcon(View.getIcon(type + "String_Node_Str"));
      }
 else {
      }
      return this;
    }
  }
;
  tagTree.setCellRenderer(tcr);
  loadingPanel.setPreferredSize(new Dimension(30,30));
  statusPanel=new JPanel();
  statusPanel.setPreferredSize(new Dimension(1,30));
  statusPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
  statusPanel.setLayout(new BorderLayout());
  statusPanel.add(loadingPanel,BorderLayout.WEST);
  statusPanel.add(statusLabel,BorderLayout.CENTER);
  loadingPanel.setVisible(false);
  cnt.add(statusPanel,BorderLayout.SOUTH);
  for (  Tag t : swf.tags) {
    if (t instanceof JPEGTablesTag) {
      jtt=(JPEGTablesTag)t;
    }
  }
  characters=new HashMap<>();
  List<Object> list2=new ArrayList<>();
  list2.addAll(swf.tags);
  parseCharacters(list2);
  JPanel textTopPanel=new JPanel(new BorderLayout());
  textValue=new LineMarkedEditorPane();
  textTopPanel.add(new JScrollPane(textValue),BorderLayout.CENTER);
  textValue.setEditable(false);
  JPanel buttonsPanel=new JPanel();
  buttonsPanel.setLayout(new FlowLayout());
  textSaveButton=new JButton("String_Node_Str",View.getIcon("String_Node_Str"));
  textSaveButton.setMargin(new Insets(3,3,3,10));
  textSaveButton.setActionCommand("String_Node_Str");
  textSaveButton.addActionListener(this);
  textEditButton=new JButton("String_Node_Str",View.getIcon("String_Node_Str"));
  textEditButton.setMargin(new Insets(3,3,3,10));
  textEditButton.setActionCommand("String_Node_Str");
  textEditButton.addActionListener(this);
  textCancelButton=new JButton("String_Node_Str",View.getIcon("String_Node_Str"));
  textCancelButton.setMargin(new Insets(3,3,3,10));
  textCancelButton.setActionCommand("String_Node_Str");
  textCancelButton.addActionListener(this);
  buttonsPanel.add(textEditButton);
  buttonsPanel.add(textSaveButton);
  buttonsPanel.add(textCancelButton);
  textSaveButton.setVisible(false);
  textCancelButton.setVisible(false);
  textTopPanel.add(buttonsPanel,BorderLayout.SOUTH);
  displayWithPreview=new JPanel(new CardLayout());
  JPanel textPanel=new JPanel();
  textPanel.setLayout(new BoxLayout(textPanel,BoxLayout.Y_AXIS));
  textPanel.add(textTopPanel);
  displayWithPreview.add(textPanel,CARDTEXTPANEL);
  Component leftComponent=null;
  displayPanel=new JPanel(new CardLayout());
  if (flashPanel != null) {
    leftComponent=flashPanel;
  }
 else {
    JPanel swtPanel=new JPanel(new BorderLayout());
    swtPanel.add(new JLabel("String_Node_Str",JLabel.CENTER),BorderLayout.CENTER);
    swtPanel.setBackground(Color.white);
    leftComponent=swtPanel;
  }
  textValue.setContentType("String_Node_Str");
  previewSplitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
  previewSplitPane.setDividerLocation(300);
  JPanel pan=new JPanel(new BorderLayout());
  JLabel prevLabel=new JLabel("String_Node_Str");
  prevLabel.setHorizontalAlignment(SwingConstants.CENTER);
  prevLabel.setBorder(new BevelBorder(BevelBorder.RAISED));
  JLabel paramsLabel=new JLabel("String_Node_Str");
  paramsLabel.setHorizontalAlignment(SwingConstants.CENTER);
  paramsLabel.setBorder(new BevelBorder(BevelBorder.RAISED));
  pan.add(prevLabel,BorderLayout.NORTH);
  pan.add(leftComponent,BorderLayout.CENTER);
  previewSplitPane.setLeftComponent(pan);
  parametersPanel=new JPanel(new BorderLayout());
  parametersPanel.add(paramsLabel,BorderLayout.NORTH);
  parametersPanel.add(displayWithPreview,BorderLayout.CENTER);
  previewSplitPane.setRightComponent(parametersPanel);
  parametersPanel.setVisible(false);
  displayPanel.add(previewSplitPane,CARDFLASHPANEL);
  imagePanel=new ImagePanel();
  JPanel imagesCard=new JPanel(new BorderLayout());
  imagesCard.add(imagePanel,BorderLayout.CENTER);
  imageReplaceButton=new JButton("String_Node_Str",View.getIcon("String_Node_Str"));
  imageReplaceButton.setMargin(new Insets(3,3,3,10));
  imageReplaceButton.setActionCommand("String_Node_Str");
  imageReplaceButton.addActionListener(this);
  imageButtonsPanel=new JPanel(new FlowLayout());
  imageButtonsPanel.add(imageReplaceButton);
  imagesCard.add(imageButtonsPanel,BorderLayout.SOUTH);
  displayPanel.add(imagesCard,CARDIMAGEPANEL);
  JPanel shapesCard=new JPanel(new BorderLayout());
  JPanel previewPanel=new JPanel(new BorderLayout());
  previewImagePanel=new ImagePanel();
  previewPanel.add(previewImagePanel,BorderLayout.CENTER);
  JLabel prevIntLabel=new JLabel("String_Node_Str");
  prevIntLabel.setHorizontalAlignment(SwingConstants.CENTER);
  prevIntLabel.setBorder(new BevelBorder(BevelBorder.RAISED));
  previewPanel.add(prevIntLabel,BorderLayout.NORTH);
  shapesCard.add(previewPanel,BorderLayout.CENTER);
  displayPanel.add(shapesCard,CARDDRAWPREVIEWPANEL);
  swfPreviewPanel=new SWFPreviwPanel();
  displayPanel.add(swfPreviewPanel,CARDSWFPREVIEWPANEL);
  displayPanel.add(new JPanel(),CARDEMPTYPANEL);
  if (actionPanel != null) {
    displayPanel.add(actionPanel,CARDACTIONSCRIPTPANEL);
  }
  if (abcPanel != null) {
    displayPanel.add(abcPanel,CARDACTIONSCRIPTPANEL);
  }
  CardLayout cl=(CardLayout)(displayPanel.getLayout());
  cl.show(displayPanel,CARDEMPTYPANEL);
  searchPanel=new JPanel();
  searchPanel.setLayout(new BorderLayout());
  searchPanel.add(filterField,BorderLayout.CENTER);
  searchPanel.add(new JLabel(View.getIcon("String_Node_Str")),BorderLayout.WEST);
  JLabel closeSearchButton=new JLabel(View.getIcon("String_Node_Str"));
  closeSearchButton.addMouseListener(new MouseAdapter(){
    @Override public void mouseClicked(    MouseEvent e){
      filterField.setText("String_Node_Str");
      doFilter();
      searchPanel.setVisible(false);
    }
  }
);
  searchPanel.add(closeSearchButton,BorderLayout.EAST);
  JPanel pan1=new JPanel(new BorderLayout());
  pan1.add(new JScrollPane(tagTree),BorderLayout.CENTER);
  pan1.add(searchPanel,BorderLayout.SOUTH);
  filterField.setActionCommand("String_Node_Str");
  filterField.addActionListener(this);
  searchPanel.setVisible(false);
  filterField.getDocument().addDocumentListener(new DocumentListener(){
    @Override public void changedUpdate(    DocumentEvent e){
      warn();
    }
    @Override public void removeUpdate(    DocumentEvent e){
      warn();
    }
    @Override public void insertUpdate(    DocumentEvent e){
      warn();
    }
    public void warn(){
      doFilter();
    }
  }
);
  splitPane2=new JSplitPane(JSplitPane.VERTICAL_SPLIT,pan1,detailPanel);
  splitPane1=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitPane2,displayPanel);
  cnt.add(splitPane1,BorderLayout.CENTER);
  splitPane1.setDividerLocation(0.5);
  View.centerScreen(this);
  tagTree.addKeyListener(new KeyAdapter(){
    @Override public void keyPressed(    KeyEvent e){
      if ((e.getKeyCode() == 'F') && (e.isControlDown())) {
        searchPanel.setVisible(true);
        filterField.requestFocusInWindow();
      }
    }
  }
);
  detailPanel.setVisible(false);
  enableDrop(true);
}

Fixed version (ground truth):
public MainFrame(SWF swf){
  setSize(1000,700);
  tabPane=new JTabbedPane();
  View.setWindowIcon(this);
  addWindowListener(new WindowAdapter(){
    @Override public void windowClosing(    WindowEvent e){
      if (Main.proxyFrame != null) {
        if (Main.proxyFrame.isVisible()) {
          return;
        }
      }
      Main.exit();
    }
  }
);
  setTitle(Main.applicationVerName + (Configuration.DISPLAY_FILENAME ? "String_Node_Str" + Main.getFileTitle() : "String_Node_Str"));
  JMenuBar menuBar=new JMenuBar();
  try {
    flashPanel=new FlashPlayerPanel(this);
  }
 catch (  FlashUnsupportedException fue) {
  }
  JMenu menuFile=new JMenu("String_Node_Str");
  JMenuItem miOpen=new JMenuItem("String_Node_Str");
  miOpen.setIcon(View.getIcon("String_Node_Str"));
  miOpen.setActionCommand("String_Node_Str");
  miOpen.addActionListener(this);
  JMenuItem miSave=new JMenuItem("String_Node_Str");
  miSave.setIcon(View.getIcon("String_Node_Str"));
  miSave.setActionCommand("String_Node_Str");
  miSave.addActionListener(this);
  JMenuItem miSaveAs=new JMenuItem("String_Node_Str");
  miSaveAs.setIcon(View.getIcon("String_Node_Str"));
  miSaveAs.setActionCommand("String_Node_Str");
  miSaveAs.addActionListener(this);
  JMenuItem menuExportFla=new JMenuItem("String_Node_Str");
  menuExportFla.setActionCommand("String_Node_Str");
  menuExportFla.addActionListener(this);
  menuExportFla.setIcon(View.getIcon("String_Node_Str"));
  JMenuItem menuExportAll=new JMenuItem("String_Node_Str");
  menuExportAll.setActionCommand("String_Node_Str");
  menuExportAll.addActionListener(this);
  JMenuItem menuExportSel=new JMenuItem("String_Node_Str");
  menuExportSel.setActionCommand("String_Node_Str");
  menuExportSel.addActionListener(this);
  menuExportAll.setIcon(View.getIcon("String_Node_Str"));
  menuExportSel.setIcon(View.getIcon("String_Node_Str"));
  menuFile.add(miOpen);
  menuFile.add(miSave);
  menuFile.add(miSaveAs);
  menuFile.add(menuExportFla);
  menuFile.add(menuExportAll);
  menuFile.add(menuExportSel);
  menuFile.addSeparator();
  JMenuItem miClose=new JMenuItem("String_Node_Str");
  miClose.setIcon(View.getIcon("String_Node_Str"));
  miClose.setActionCommand("String_Node_Str");
  miClose.addActionListener(this);
  menuFile.add(miClose);
  menuBar.add(menuFile);
  JMenu menuDeobfuscation=new JMenu("String_Node_Str");
  menuDeobfuscation.setIcon(View.getIcon("String_Node_Str"));
  JMenuItem miDeobfuscation=new JMenuItem("String_Node_Str");
  miDeobfuscation.setActionCommand("String_Node_Str");
  miDeobfuscation.addActionListener(this);
  autoDeobfuscateMenuItem=new JCheckBoxMenuItem("String_Node_Str");
  autoDeobfuscateMenuItem.setState((Boolean)Configuration.getConfig("String_Node_Str",true));
  autoDeobfuscateMenuItem.addActionListener(this);
  autoDeobfuscateMenuItem.setActionCommand("String_Node_Str");
  JCheckBoxMenuItem miSubLimiter=new JCheckBoxMenuItem("String_Node_Str");
  miSubLimiter.setActionCommand("String_Node_Str");
  miSubLimiter.addActionListener(this);
  JMenuItem miRenameOneIdentifier=new JMenuItem("String_Node_Str");
  miRenameOneIdentifier.setActionCommand("String_Node_Str");
  miRenameOneIdentifier.addActionListener(this);
  JMenuItem miRenameIdentifiers=new JMenuItem("String_Node_Str");
  miRenameIdentifiers.setActionCommand("String_Node_Str");
  miRenameIdentifiers.addActionListener(this);
  JMenuItem miRemoveDeadCode=new JMenuItem("String_Node_Str");
  miRemoveDeadCode.setActionCommand("String_Node_Str");
  miRemoveDeadCode.addActionListener(this);
  JMenuItem miRemoveDeadCodeAll=new JMenuItem("String_Node_Str");
  miRemoveDeadCodeAll.setActionCommand("String_Node_Str");
  miRemoveDeadCodeAll.addActionListener(this);
  JMenuItem miTraps=new JMenuItem("String_Node_Str");
  miTraps.setActionCommand("String_Node_Str");
  miTraps.addActionListener(this);
  JMenuItem miTrapsAll=new JMenuItem("String_Node_Str");
  miTrapsAll.setActionCommand("String_Node_Str");
  miTrapsAll.addActionListener(this);
  JMenuItem miControlFlow=new JMenuItem("String_Node_Str");
  miControlFlow.setActionCommand("String_Node_Str");
  miControlFlow.addActionListener(this);
  JMenuItem miControlFlowAll=new JMenuItem("String_Node_Str");
  miControlFlowAll.setActionCommand("String_Node_Str");
  miControlFlowAll.addActionListener(this);
  menuDeobfuscation.add(miRenameOneIdentifier);
  menuDeobfuscation.add(miRenameIdentifiers);
  menuDeobfuscation.add(miDeobfuscation);
  JMenu menuTools=new JMenu("String_Node_Str");
  JMenuItem miProxy=new JMenuItem("String_Node_Str");
  miProxy.setActionCommand("String_Node_Str");
  miProxy.setIcon(View.getIcon("String_Node_Str"));
  miProxy.addActionListener(this);
  JMenuItem miSearchScript=new JMenuItem("String_Node_Str");
  miSearchScript.addActionListener(this);
  miSearchScript.setActionCommand("String_Node_Str");
  miSearchScript.setIcon(View.getIcon("String_Node_Str"));
  menuTools.add(miSearchScript);
  miInternalViewer=new JCheckBoxMenuItem("String_Node_Str");
  miInternalViewer.setSelected((Boolean)Configuration.getConfig("String_Node_Str",(Boolean)(flashPanel == null)));
  if (flashPanel == null) {
    miInternalViewer.setSelected(true);
    miInternalViewer.setEnabled(false);
  }
  miInternalViewer.setActionCommand("String_Node_Str");
  miInternalViewer.addActionListener(this);
  miParallelSpeedUp=new JCheckBoxMenuItem("String_Node_Str");
  miParallelSpeedUp.setSelected((Boolean)Configuration.getConfig("String_Node_Str",Boolean.TRUE));
  miParallelSpeedUp.setActionCommand("String_Node_Str");
  miParallelSpeedUp.addActionListener(this);
  menuTools.add(miProxy);
  menuTools.add(menuDeobfuscation);
  JMenuItem miGotoDocumentClass=new JMenuItem("String_Node_Str");
  miGotoDocumentClass.setActionCommand("String_Node_Str");
  miGotoDocumentClass.addActionListener(this);
  if (swf.fileAttributes.actionScript3) {
    menuTools.add(miGotoDocumentClass);
  }
  menuBar.add(menuTools);
  JMenu menuSettings=new JMenu("String_Node_Str");
  menuSettings.add(autoDeobfuscateMenuItem);
  menuSettings.add(miInternalViewer);
  menuSettings.add(miParallelSpeedUp);
  miAssociate=new JCheckBoxMenuItem("String_Node_Str");
  miAssociate.setActionCommand("String_Node_Str");
  miAssociate.addActionListener(this);
  miAssociate.setState(isAssociated());
  if (Platform.isWindows()) {
    menuSettings.add(miAssociate);
  }
  menuBar.add(menuSettings);
  JMenu menuHelp=new JMenu("String_Node_Str");
  JMenuItem miAbout=new JMenuItem("String_Node_Str");
  miAbout.setIcon(View.getIcon("String_Node_Str"));
  miAbout.setActionCommand("String_Node_Str");
  miAbout.addActionListener(this);
  JMenuItem miCheckUpdates=new JMenuItem("String_Node_Str");
  miCheckUpdates.setActionCommand("String_Node_Str");
  miCheckUpdates.setIcon(View.getIcon("String_Node_Str"));
  miCheckUpdates.addActionListener(this);
  JMenuItem miHelpUs=new JMenuItem("String_Node_Str");
  miHelpUs.setActionCommand("String_Node_Str");
  miHelpUs.setIcon(View.getIcon("String_Node_Str"));
  miHelpUs.addActionListener(this);
  JMenuItem miHomepage=new JMenuItem("String_Node_Str");
  miHomepage.setActionCommand("String_Node_Str");
  miHomepage.setIcon(View.getIcon("String_Node_Str"));
  miHomepage.addActionListener(this);
  menuHelp.add(miCheckUpdates);
  menuHelp.add(miHelpUs);
  menuHelp.add(miHomepage);
  menuHelp.add(miAbout);
  menuBar.add(menuHelp);
  setJMenuBar(menuBar);
  List<Object> objs=new ArrayList<>();
  objs.addAll(swf.tags);
  this.swf=swf;
  java.awt.Container cnt=getContentPane();
  cnt.setLayout(new BorderLayout());
  detailPanel=new JPanel();
  detailPanel.setLayout(new CardLayout());
  JPanel whitePanel=new JPanel();
  whitePanel.setBackground(Color.white);
  detailPanel.add(whitePanel,DETAILCARDEMPTYPANEL);
  CardLayout cl2=(CardLayout)(detailPanel.getLayout());
  cl2.show(detailPanel,DETAILCARDEMPTYPANEL);
  abcList=new ArrayList<>();
  getActionScript3(objs,abcList);
  if (!abcList.isEmpty()) {
    addTab(tabPane,abcPanel=new ABCPanel(abcList),"String_Node_Str",View.getIcon("String_Node_Str"));
    detailPanel.add(abcPanel.tabbedPane,DETAILCARDAS3NAVIGATOR);
  }
 else {
    actionPanel=new ActionPanel();
    addTab(tabPane,actionPanel,"String_Node_Str",View.getIcon("String_Node_Str"));
    miDeobfuscation.setEnabled(false);
  }
  tagTree=new JTree(new TagTreeModel(createTagList(objs,null),new SWFRoot((new File(Main.file)).getName())));
  tagTree.addTreeSelectionListener(this);
  DragSource dragSource=DragSource.getDefaultDragSource();
  dragSource.createDefaultDragGestureRecognizer(tagTree,DnDConstants.ACTION_COPY_OR_MOVE,new DragGestureListener(){
    @Override public void dragGestureRecognized(    DragGestureEvent dge){
      dge.startDrag(DragSource.DefaultCopyDrop,new Transferable(){
        @Override public DataFlavor[] getTransferDataFlavors(){
          return new DataFlavor[]{DataFlavor.javaFileListFlavor};
        }
        @Override public boolean isDataFlavorSupported(        DataFlavor flavor){
          return flavor.equals(DataFlavor.javaFileListFlavor);
        }
        @Override public Object getTransferData(        DataFlavor flavor) throws UnsupportedFlavorException, IOException {
          if (flavor.equals(DataFlavor.javaFileListFlavor)) {
            List<File> files=new ArrayList<>();
            String tempDir=System.getProperty("String_Node_Str");
            if (!tempDir.endsWith(File.separator)) {
              tempDir+=File.separator;
            }
            Random rnd=new Random();
            tempDir+="String_Node_Str" + File.separator + "String_Node_Str"+ File.separator+ System.currentTimeMillis()+ "String_Node_Str"+ rnd.nextInt(1000);
            new File(tempDir).mkdirs();
            final ExportDialog export=new ExportDialog();
            try {
              File ftemp=new File(tempDir);
              files=exportSelection(tempDir,export);
              files.clear();
              File fs[]=ftemp.listFiles();
              for (              File f : fs) {
                files.add(f);
              }
              Main.stopWork();
            }
 catch (            IOException ex) {
              return null;
            }
            for (            File f : files) {
              f.deleteOnExit();
            }
            new File(tempDir).deleteOnExit();
            return files;
          }
          return null;
        }
      }
,new DragSourceListener(){
        @Override public void dragEnter(        DragSourceDragEvent dsde){
          enableDrop(false);
        }
        @Override public void dragOver(        DragSourceDragEvent dsde){
        }
        @Override public void dropActionChanged(        DragSourceDragEvent dsde){
        }
        @Override public void dragExit(        DragSourceEvent dse){
        }
        @Override public void dragDropEnd(        DragSourceDropEvent dsde){
          enableDrop(true);
        }
      }
);
    }
  }
);
  final JPopupMenu spritePopupMenu=new JPopupMenu();
  JMenuItem removeMenuItem=new JMenuItem("String_Node_Str");
  removeMenuItem.addActionListener(this);
  removeMenuItem.setActionCommand("String_Node_Str");
  spritePopupMenu.add(removeMenuItem);
  tagTree.addMouseListener(new MouseAdapter(){
    @Override public void mouseClicked(    MouseEvent e){
      if (SwingUtilities.isRightMouseButton(e)) {
        int row=tagTree.getClosestRowForLocation(e.getX(),e.getY());
        tagTree.setSelectionRow(row);
        Object tagObj=tagTree.getLastSelectedPathComponent();
        if (tagObj == null) {
          return;
        }
        if (tagObj instanceof TagNode) {
          tagObj=((TagNode)tagObj).tag;
        }
        if (tagObj instanceof DefineSpriteTag) {
          spritePopupMenu.show(e.getComponent(),e.getX(),e.getY());
        }
      }
    }
  }
);
  TreeCellRenderer tcr=new DefaultTreeCellRenderer(){
    @Override public Component getTreeCellRendererComponent(    JTree tree,    Object value,    boolean sel,    boolean expanded,    boolean leaf,    int row,    boolean hasFocus){
      super.getTreeCellRendererComponent(tree,value,sel,expanded,leaf,row,hasFocus);
      Object val=value;
      if (val instanceof TagNode) {
        val=((TagNode)val).tag;
      }
      String type=getTagType(val);
      if (row == 0) {
        setIcon(View.getIcon("String_Node_Str"));
      }
 else       if (type != null) {
        if (type.equals("String_Node_Str") && expanded) {
          type="String_Node_Str";
        }
        setIcon(View.getIcon(type + "String_Node_Str"));
      }
 else {
      }
      return this;
    }
  }
;
  tagTree.setCellRenderer(tcr);
  loadingPanel.setPreferredSize(new Dimension(30,30));
  statusPanel=new JPanel();
  statusPanel.setPreferredSize(new Dimension(1,30));
  statusPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
  statusPanel.setLayout(new BorderLayout());
  statusPanel.add(loadingPanel,BorderLayout.WEST);
  statusPanel.add(statusLabel,BorderLayout.CENTER);
  loadingPanel.setVisible(false);
  cnt.add(statusPanel,BorderLayout.SOUTH);
  for (  Tag t : swf.tags) {
    if (t instanceof JPEGTablesTag) {
      jtt=(JPEGTablesTag)t;
    }
  }
  characters=new HashMap<>();
  List<Object> list2=new ArrayList<>();
  list2.addAll(swf.tags);
  parseCharacters(list2);
  JPanel textTopPanel=new JPanel(new BorderLayout());
  textValue=new LineMarkedEditorPane();
  textTopPanel.add(new JScrollPane(textValue),BorderLayout.CENTER);
  textValue.setEditable(false);
  JPanel buttonsPanel=new JPanel();
  buttonsPanel.setLayout(new FlowLayout());
  textSaveButton=new JButton("String_Node_Str",View.getIcon("String_Node_Str"));
  textSaveButton.setMargin(new Insets(3,3,3,10));
  textSaveButton.setActionCommand("String_Node_Str");
  textSaveButton.addActionListener(this);
  textEditButton=new JButton("String_Node_Str",View.getIcon("String_Node_Str"));
  textEditButton.setMargin(new Insets(3,3,3,10));
  textEditButton.setActionCommand("String_Node_Str");
  textEditButton.addActionListener(this);
  textCancelButton=new JButton("String_Node_Str",View.getIcon("String_Node_Str"));
  textCancelButton.setMargin(new Insets(3,3,3,10));
  textCancelButton.setActionCommand("String_Node_Str");
  textCancelButton.addActionListener(this);
  buttonsPanel.add(textEditButton);
  buttonsPanel.add(textSaveButton);
  buttonsPanel.add(textCancelButton);
  textSaveButton.setVisible(false);
  textCancelButton.setVisible(false);
  textTopPanel.add(buttonsPanel,BorderLayout.SOUTH);
  displayWithPreview=new JPanel(new CardLayout());
  JPanel textPanel=new JPanel();
  textPanel.setLayout(new BoxLayout(textPanel,BoxLayout.Y_AXIS));
  textPanel.add(textTopPanel);
  displayWithPreview.add(textPanel,CARDTEXTPANEL);
  Component leftComponent=null;
  displayPanel=new JPanel(new CardLayout());
  if (flashPanel != null) {
    leftComponent=flashPanel;
  }
 else {
    JPanel swtPanel=new JPanel(new BorderLayout());
    swtPanel.add(new JLabel("String_Node_Str",JLabel.CENTER),BorderLayout.CENTER);
    swtPanel.setBackground(Color.white);
    leftComponent=swtPanel;
  }
  textValue.setContentType("String_Node_Str");
  previewSplitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
  previewSplitPane.setDividerLocation(300);
  JPanel pan=new JPanel(new BorderLayout());
  JLabel prevLabel=new JLabel("String_Node_Str");
  prevLabel.setHorizontalAlignment(SwingConstants.CENTER);
  prevLabel.setBorder(new BevelBorder(BevelBorder.RAISED));
  JLabel paramsLabel=new JLabel("String_Node_Str");
  paramsLabel.setHorizontalAlignment(SwingConstants.CENTER);
  paramsLabel.setBorder(new BevelBorder(BevelBorder.RAISED));
  pan.add(prevLabel,BorderLayout.NORTH);
  pan.add(leftComponent,BorderLayout.CENTER);
  previewSplitPane.setLeftComponent(pan);
  parametersPanel=new JPanel(new BorderLayout());
  parametersPanel.add(paramsLabel,BorderLayout.NORTH);
  parametersPanel.add(displayWithPreview,BorderLayout.CENTER);
  previewSplitPane.setRightComponent(parametersPanel);
  parametersPanel.setVisible(false);
  displayPanel.add(previewSplitPane,CARDFLASHPANEL);
  imagePanel=new ImagePanel();
  JPanel imagesCard=new JPanel(new BorderLayout());
  imagesCard.add(imagePanel,BorderLayout.CENTER);
  imageReplaceButton=new JButton("String_Node_Str",View.getIcon("String_Node_Str"));
  imageReplaceButton.setMargin(new Insets(3,3,3,10));
  imageReplaceButton.setActionCommand("String_Node_Str");
  imageReplaceButton.addActionListener(this);
  imageButtonsPanel=new JPanel(new FlowLayout());
  imageButtonsPanel.add(imageReplaceButton);
  imagesCard.add(imageButtonsPanel,BorderLayout.SOUTH);
  displayPanel.add(imagesCard,CARDIMAGEPANEL);
  JPanel shapesCard=new JPanel(new BorderLayout());
  JPanel previewPanel=new JPanel(new BorderLayout());
  previewImagePanel=new ImagePanel();
  previewPanel.add(previewImagePanel,BorderLayout.CENTER);
  JLabel prevIntLabel=new JLabel("String_Node_Str");
  prevIntLabel.setHorizontalAlignment(SwingConstants.CENTER);
  prevIntLabel.setBorder(new BevelBorder(BevelBorder.RAISED));
  previewPanel.add(prevIntLabel,BorderLayout.NORTH);
  shapesCard.add(previewPanel,BorderLayout.CENTER);
  displayPanel.add(shapesCard,CARDDRAWPREVIEWPANEL);
  swfPreviewPanel=new SWFPreviwPanel();
  displayPanel.add(swfPreviewPanel,CARDSWFPREVIEWPANEL);
  displayPanel.add(new JPanel(),CARDEMPTYPANEL);
  if (actionPanel != null) {
    displayPanel.add(actionPanel,CARDACTIONSCRIPTPANEL);
  }
  if (abcPanel != null) {
    displayPanel.add(abcPanel,CARDACTIONSCRIPTPANEL);
  }
  CardLayout cl=(CardLayout)(displayPanel.getLayout());
  cl.show(displayPanel,CARDEMPTYPANEL);
  searchPanel=new JPanel();
  searchPanel.setLayout(new BorderLayout());
  searchPanel.add(filterField,BorderLayout.CENTER);
  searchPanel.add(new JLabel(View.getIcon("String_Node_Str")),BorderLayout.WEST);
  JLabel closeSearchButton=new JLabel(View.getIcon("String_Node_Str"));
  closeSearchButton.addMouseListener(new MouseAdapter(){
    @Override public void mouseClicked(    MouseEvent e){
      filterField.setText("String_Node_Str");
      doFilter();
      searchPanel.setVisible(false);
    }
  }
);
  searchPanel.add(closeSearchButton,BorderLayout.EAST);
  JPanel pan1=new JPanel(new BorderLayout());
  pan1.add(new JScrollPane(tagTree),BorderLayout.CENTER);
  pan1.add(searchPanel,BorderLayout.SOUTH);
  filterField.setActionCommand("String_Node_Str");
  filterField.addActionListener(this);
  searchPanel.setVisible(false);
  filterField.getDocument().addDocumentListener(new DocumentListener(){
    @Override public void changedUpdate(    DocumentEvent e){
      warn();
    }
    @Override public void removeUpdate(    DocumentEvent e){
      warn();
    }
    @Override public void insertUpdate(    DocumentEvent e){
      warn();
    }
    public void warn(){
      doFilter();
    }
  }
);
  splitPane2=new JSplitPane(JSplitPane.VERTICAL_SPLIT,pan1,detailPanel);
  splitPane1=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitPane2,displayPanel);
  cnt.add(splitPane1,BorderLayout.CENTER);
  splitPane1.setDividerLocation(0.5);
  View.centerScreen(this);
  tagTree.addKeyListener(new KeyAdapter(){
    @Override public void keyPressed(    KeyEvent e){
      if ((e.getKeyCode() == 'F') && (e.isControlDown())) {
        searchPanel.setVisible(true);
        filterField.requestFocusInWindow();
      }
    }
  }
);
  detailPanel.setVisible(false);
  enableDrop(true);
}