| 1 | package com.jsql.view.swing.panel.preferences; | |
| 2 | ||
| 3 | import com.jsql.view.swing.panel.PanelPreferences; | |
| 4 | import com.jsql.view.swing.panel.preferences.listener.SpinnerMouseWheelListener; | |
| 5 | import com.jsql.view.swing.text.JPopupTextField; | |
| 6 | import com.jsql.view.swing.text.listener.DocumentListenerEditing; | |
| 7 | import com.jsql.view.swing.util.MediatorHelper; | |
| 8 | ||
| 9 | import javax.swing.*; | |
| 10 | import javax.swing.event.DocumentListener; | |
| 11 | import java.awt.*; | |
| 12 | import java.awt.event.ActionListener; | |
| 13 | import java.util.Arrays; | |
| 14 | import java.util.stream.Stream; | |
| 15 | ||
| 16 | public class PanelInjection extends JPanel { | |
| 17 | ||
| 18 | public static final String CHECKBOX_IS_PARSING_FORM = "checkboxIsParsingForm"; | |
| 19 | public static final String RADIO_IS_ZIP_STRATEGY = "radioIsZipStrategy"; | |
| 20 | public static final String RADIO_IS_DIOS_STRATEGY = "radioIsDiosStrategy"; | |
| 21 | public static final String RADIO_IS_DEFAULT_STRATEGY = "radioIsDefaultStrategy"; | |
| 22 | ||
| 23 | private final JCheckBox checkboxIsNotShowingVulnReport = new JCheckBox("Disable showing vulnerability report", MediatorHelper.model().getMediatorUtils().preferencesUtil().isNotShowingVulnReport()); | |
| 24 | private final JCheckBox checkboxIsNotSearchingCharInsertion = new JCheckBox("Disable search for character insertion", MediatorHelper.model().getMediatorUtils().preferencesUtil().isNotSearchingCharInsertion()); | |
| 25 | private final JCheckBox checkboxIsNotInjectingMetadata = new JCheckBox("Disable search of database name, version and user metadata", MediatorHelper.model().getMediatorUtils().preferencesUtil().isNotInjectingMetadata()); | |
| 26 | private final JCheckBox checkboxIsParsingForm = new JCheckBox("Get HTML tags <input/> and add parameters to URL and Request", MediatorHelper.model().getMediatorUtils().preferencesUtil().isParsingForm()); | |
| 27 | | |
| 28 | private final JCheckBox checkboxIsCheckingAllParam = new JCheckBox("Inject every parameters (ignore user's selection)", MediatorHelper.model().getMediatorUtils().preferencesUtil().isCheckingAllParam()); | |
| 29 | private final JCheckBox checkboxIsCheckingAllURLParam = new JCheckBox("Inject every URL parameters when URL method is selected", MediatorHelper.model().getMediatorUtils().preferencesUtil().isCheckingAllURLParam()); | |
| 30 | private final JCheckBox checkboxIsCheckingAllRequestParam = new JCheckBox("Inject every Request parameters when Request method is selected", MediatorHelper.model().getMediatorUtils().preferencesUtil().isCheckingAllRequestParam()); | |
| 31 | private final JCheckBox checkboxIsCheckingAllHeaderParam = new JCheckBox("Inject every Header parameters when Header method is selected", MediatorHelper.model().getMediatorUtils().preferencesUtil().isCheckingAllHeaderParam()); | |
| 32 | private final JCheckBox checkboxIsCheckingAllBase64Param = new JCheckBox("Inject Base64 parameters", MediatorHelper.model().getMediatorUtils().preferencesUtil().isCheckingAllBase64Param()); | |
| 33 | private final JCheckBox checkboxIsCheckingAllJSONParam = new JCheckBox("Inject every JSON parameters", MediatorHelper.model().getMediatorUtils().preferencesUtil().isCheckingAllJsonParam()); | |
| 34 | private final JCheckBox checkboxIsCheckingAllCookieParam = new JCheckBox("Inject every cookie parameters", MediatorHelper.model().getMediatorUtils().preferencesUtil().isCheckingAllCookieParam()); | |
| 35 | private final JCheckBox checkboxIsCheckingAllSOAPParam = new JCheckBox("Inject SOAP parameters in Request body", MediatorHelper.model().getMediatorUtils().preferencesUtil().isCheckingAllSoapParam()); | |
| 36 | ||
| 37 | private final JCheckBox checkboxIsLimitingUnionIndex = new JCheckBox("Limit Union strategy:", MediatorHelper.model().getMediatorUtils().preferencesUtil().isLimitingUnionIndex()); | |
| 38 | private final JSpinner spinnerUnionIndexCount = new JSpinner(); | |
| 39 | private final JCheckBox checkboxIsLimitingSleepTimeStrategy = new JCheckBox("Delay Time strategy:", MediatorHelper.model().getMediatorUtils().preferencesUtil().isLimitingSleepTimeStrategy()); | |
| 40 | private final JSpinner spinnerSleepTimeStrategyCount = new JSpinner(); | |
| 41 | ||
| 42 | private final JCheckBox checkboxIsPerfIndexDisabled = new JCheckBox("Disable calibration (smaller SQL query during Union index selection only)", MediatorHelper.model().getMediatorUtils().preferencesUtil().isPerfIndexDisabled()); | |
| 43 | private final JRadioButton radioIsDefaultStrategy = new JRadioButton("Use Default mode (keep unchanged ; URL and processing unchanged)", true); | |
| 44 | private final JRadioButton radioIsZipStrategy = new JRadioButton("Use Zip mode (smaller SQL queries ; reduce URL size but less efficient)", MediatorHelper.model().getMediatorUtils().preferencesUtil().isZipStrategy()); | |
| 45 | private final JRadioButton radioIsDiosStrategy = new JRadioButton("Use Dios mode (less queries ; do not use with Error strategies)", MediatorHelper.model().getMediatorUtils().preferencesUtil().isDiosStrategy()); | |
| 46 | private final JCheckBox checkboxIsUrlEncodingDisabled = new JCheckBox("Disable URL encoding (smaller URL)", MediatorHelper.model().getMediatorUtils().preferencesUtil().isUrlEncodingDisabled()); | |
| 47 | private final JCheckBox checkboxIsUrlRandomSuffixDisabled = new JCheckBox("Disable URL random suffix (strategy Time special use case)", MediatorHelper.model().getMediatorUtils().preferencesUtil().isUrlRandomSuffixDisabled()); | |
| 48 | ||
| 49 | private final JTextField textfieldDnsDomain = new JPopupTextField("e.g custom-domain.com", MediatorHelper.model().getMediatorUtils().preferencesUtil().getDnsDomain()).getProxy(); | |
| 50 | private final JTextField textfieldDnsPort = new JPopupTextField("e.g 53", MediatorHelper.model().getMediatorUtils().preferencesUtil().getDnsPort()).getProxy(); | |
| 51 | ||
| 52 | public PanelInjection(PanelPreferences panelPreferences) { | |
| 53 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsNotInjectingMetadata.setName("checkboxIsNotInjectingMetadata"); |
| 54 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsNotSearchingCharInsertion.setName("checkboxIsNotSearchingCharInsertion"); |
| 55 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsNotShowingVulnReport.setName("checkboxIsNotShowingVulnReport"); |
| 56 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsParsingForm.setName(PanelInjection.CHECKBOX_IS_PARSING_FORM); |
| 57 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsCheckingAllURLParam.setName("checkboxIsCheckingAllURLParam"); |
| 58 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsCheckingAllRequestParam.setName("checkboxIsCheckingAllRequestParam"); |
| 59 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsCheckingAllHeaderParam.setName("checkboxIsCheckingAllHeaderParam"); |
| 60 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsCheckingAllJSONParam.setName("checkboxIsCheckingAllJSONParam"); |
| 61 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsCheckingAllBase64Param.setName("checkboxIsCheckingAllBase64Param"); |
| 62 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsCheckingAllCookieParam.setName("checkboxIsCheckingAllCookieParam"); |
| 63 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsCheckingAllSOAPParam.setName("checkboxIsCheckingAllSOAPParam"); |
| 64 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsPerfIndexDisabled.setName("checkboxIsPerfIndexDisabled"); |
| 65 |
1
1. <init> : removed call to javax/swing/JRadioButton::setName → NO_COVERAGE |
this.radioIsZipStrategy.setName(PanelInjection.RADIO_IS_ZIP_STRATEGY); |
| 66 |
1
1. <init> : removed call to javax/swing/JRadioButton::setName → NO_COVERAGE |
this.radioIsDefaultStrategy.setName(PanelInjection.RADIO_IS_DEFAULT_STRATEGY); |
| 67 |
1
1. <init> : removed call to javax/swing/JRadioButton::setName → NO_COVERAGE |
this.radioIsDiosStrategy.setName(PanelInjection.RADIO_IS_DIOS_STRATEGY); |
| 68 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsUrlEncodingDisabled.setName("checkboxIsUrlEncodingDisabled"); |
| 69 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsUrlRandomSuffixDisabled.setName("checkboxIsUrlRandomSuffixDisabled"); |
| 70 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsLimitingUnionIndex.setName("checkboxIsLimitingUnionIndex"); |
| 71 |
1
1. <init> : removed call to javax/swing/JCheckBox::setName → NO_COVERAGE |
this.checkboxIsLimitingSleepTimeStrategy.setName("checkboxIsLimitingSleepTimeStrategy"); |
| 72 | | |
| 73 |
1
1. <init> : removed call to javax/swing/JCheckBox::setToolTipText → NO_COVERAGE |
this.checkboxIsPerfIndexDisabled.setToolTipText( |
| 74 | "<html>Reduce Union calibration URL, useful when host rejects large URL." | |
| 75 | + "<br>Should be enabled when Zip mode is activated.</html>" | |
| 76 | ); | |
| 77 |
1
1. <init> : removed call to javax/swing/JCheckBox::setToolTipText → NO_COVERAGE |
this.checkboxIsParsingForm.setToolTipText( |
| 78 | "<html>Create name=value params from HTML forms' extracted data.<br>" | |
| 79 | + "Sometimes mandatory params are contained in forms.<br>" | |
| 80 | + "It makes easy adding such params to requests.</html>" | |
| 81 | ); | |
| 82 |
1
1. <init> : removed call to javax/swing/JCheckBox::setToolTipText → NO_COVERAGE |
this.checkboxIsNotInjectingMetadata.setToolTipText("Not injecting metadata saves time, particularly for Blind and Time strategies"); |
| 83 |
1
1. <init> : removed call to javax/swing/JCheckBox::setToolTipText → NO_COVERAGE |
this.checkboxIsNotSearchingCharInsertion.setToolTipText( |
| 84 | "<html>Injection query starts usually with prefix like <b>quote</b> or <b>parenthesis</b>:<br>" + | |
| 85 | "- ...&injectMe=' union select...<br>" + | |
| 86 | "- ...&injectMe=) union select...<br>" + | |
| 87 | "Default is searching for the prefix but can be disabled to save time when prefix is already set by the user.</html>" | |
| 88 | ); | |
| 89 |
1
1. <init> : removed call to javax/swing/JCheckBox::setToolTipText → NO_COVERAGE |
this.checkboxIsLimitingSleepTimeStrategy.setToolTipText("<html>Time strategy waits a given number of seconds for a page to respond (fallback to default if unchecked).<br>Amount of seconds can be lowered on a stable environment to save time (e.g. local tests).</html>"); |
| 90 | ||
| 91 | var panelSleepTimeStrategy = new JPanel(); | |
| 92 |
1
1. <init> : removed call to javax/swing/JPanel::setLayout → NO_COVERAGE |
panelSleepTimeStrategy.setLayout(new BoxLayout(panelSleepTimeStrategy, BoxLayout.X_AXIS)); |
| 93 |
1
1. <init> : removed call to javax/swing/JPanel::add → NO_COVERAGE |
panelSleepTimeStrategy.add(new JLabel("Adjust delay to "), BorderLayout.WEST); |
| 94 |
1
1. <init> : removed call to javax/swing/JPanel::add → NO_COVERAGE |
panelSleepTimeStrategy.add(this.spinnerSleepTimeStrategyCount, BorderLayout.CENTER); |
| 95 |
1
1. <init> : removed call to javax/swing/JPanel::add → NO_COVERAGE |
panelSleepTimeStrategy.add(new JLabel(" s ; default 5s"), BorderLayout.EAST); |
| 96 |
1
1. <init> : removed call to javax/swing/JPanel::setMaximumSize → NO_COVERAGE |
panelSleepTimeStrategy.setMaximumSize(new Dimension(125, this.spinnerSleepTimeStrategyCount.getPreferredSize().height)); |
| 97 | int countSleepTimeStrategy = MediatorHelper.model().getMediatorUtils().preferencesUtil().countSleepTimeStrategy(); | |
| 98 | var spinnerSleepTimeStrategy = new SpinnerNumberModel( | |
| 99 |
2
1. <init> : changed conditional boundary → NO_COVERAGE 2. <init> : negated conditional → NO_COVERAGE |
countSleepTimeStrategy <= 0 ? 15 : countSleepTimeStrategy, |
| 100 | 1, | |
| 101 | 30, | |
| 102 | 1 | |
| 103 | ); | |
| 104 |
1
1. <init> : removed call to javax/swing/JSpinner::setModel → NO_COVERAGE |
this.spinnerSleepTimeStrategyCount.setModel(spinnerSleepTimeStrategy); |
| 105 |
1
1. <init> : removed call to javax/swing/JSpinner::addMouseWheelListener → NO_COVERAGE |
this.spinnerSleepTimeStrategyCount.addMouseWheelListener(new SpinnerMouseWheelListener()); |
| 106 |
2
1. lambda$new$0 : removed call to java/awt/event/ActionListener::actionPerformed → NO_COVERAGE 2. <init> : removed call to javax/swing/JSpinner::addChangeListener → NO_COVERAGE |
this.spinnerSleepTimeStrategyCount.addChangeListener(e -> panelPreferences.getActionListenerSave().actionPerformed(null)); |
| 107 | ||
| 108 |
1
1. <init> : removed call to javax/swing/JCheckBox::setToolTipText → NO_COVERAGE |
this.checkboxIsLimitingUnionIndex.setToolTipText("Maximum number of columns to check on UNION based queries"); |
| 109 | ||
| 110 | var panelIsLimitingUnionIndex = new JPanel(); | |
| 111 |
1
1. <init> : removed call to javax/swing/JPanel::setLayout → NO_COVERAGE |
panelIsLimitingUnionIndex.setLayout(new BoxLayout(panelIsLimitingUnionIndex, BoxLayout.X_AXIS)); |
| 112 | panelIsLimitingUnionIndex.add(new JLabel("Search for up to ")); | |
| 113 | panelIsLimitingUnionIndex.add(this.spinnerUnionIndexCount); | |
| 114 | panelIsLimitingUnionIndex.add(new JLabel(" column(s) ; default 50 columns")); | |
| 115 |
1
1. <init> : removed call to javax/swing/JPanel::setMaximumSize → NO_COVERAGE |
panelIsLimitingUnionIndex.setMaximumSize(new Dimension(325, this.spinnerUnionIndexCount.getPreferredSize().height)); |
| 116 | int countUnionIndex = MediatorHelper.model().getMediatorUtils().preferencesUtil().countUnionIndex(); | |
| 117 | var spinnerCountUnionIndex = new SpinnerNumberModel( | |
| 118 |
2
1. <init> : changed conditional boundary → NO_COVERAGE 2. <init> : negated conditional → NO_COVERAGE |
countUnionIndex <= 0 ? 50 : countUnionIndex, |
| 119 | 1, | |
| 120 | 200, | |
| 121 | 1 | |
| 122 | ); | |
| 123 |
1
1. <init> : removed call to javax/swing/JSpinner::setModel → NO_COVERAGE |
this.spinnerUnionIndexCount.setModel(spinnerCountUnionIndex); |
| 124 |
1
1. <init> : removed call to javax/swing/JSpinner::addMouseWheelListener → NO_COVERAGE |
this.spinnerUnionIndexCount.addMouseWheelListener(new SpinnerMouseWheelListener()); |
| 125 |
2
1. <init> : removed call to javax/swing/JSpinner::addChangeListener → NO_COVERAGE 2. lambda$new$1 : removed call to java/awt/event/ActionListener::actionPerformed → NO_COVERAGE |
this.spinnerUnionIndexCount.addChangeListener(e -> panelPreferences.getActionListenerSave().actionPerformed(null)); |
| 126 | ||
| 127 |
1
1. <init> : removed call to javax/swing/JRadioButton::setToolTipText → NO_COVERAGE |
this.radioIsDiosStrategy.setToolTipText( |
| 128 | "<html>Mode Dump In One Shot injects a single query that gets all the data at once." | |
| 129 | + "<br>Faster than default mode for Union and Error strats but requires volume of data to not be huge.</html>" | |
| 130 | ); | |
| 131 |
1
1. <init> : removed call to javax/swing/JRadioButton::setToolTipText → NO_COVERAGE |
this.radioIsZipStrategy.setToolTipText( |
| 132 | "<html>Zip mode injects small queries, useful when host rejects large URL." | |
| 133 | + "<br>Downside is metadata like table or row count is not fetched.</html>" | |
| 134 | ); | |
| 135 | ||
| 136 | var labelGeneralInjection = new JLabel("<html><b>Processing</b></html>"); | |
| 137 | var labelParamsInjection = new JLabel("<html><br><b>URL parameters</b></html>"); | |
| 138 | var labelSpecial = new JLabel("<html><br><b>Special parameters</b></html>"); | |
| 139 | var labelQuerySize = new JLabel("<html><br><b>[Advanced] Reduce URL size</b></html>"); | |
| 140 | var labelDns = new JLabel("<html><br><b>[Advanced] DNS exfiltration (also working on local database without registrar)</b></html>"); | |
| 141 | Arrays.asList( | |
| 142 | labelGeneralInjection, | |
| 143 | labelParamsInjection, | |
| 144 | labelSpecial, | |
| 145 | labelQuerySize, | |
| 146 | labelDns | |
| 147 |
2
1. <init> : removed call to java/util/List::forEach → NO_COVERAGE 2. lambda$new$2 : removed call to javax/swing/JLabel::setBorder → NO_COVERAGE |
).forEach(label -> label.setBorder(PanelGeneral.MARGIN)); |
| 148 | ||
| 149 | ActionListener actionListenerCheckingAllParam = actionEvent -> { | |
| 150 |
1
1. lambda$new$3 : negated conditional → NO_COVERAGE |
if (actionEvent.getSource() != this.checkboxIsCheckingAllParam) { |
| 151 |
2
1. lambda$new$3 : negated conditional → NO_COVERAGE 2. lambda$new$3 : removed call to javax/swing/JCheckBox::setSelected → NO_COVERAGE |
this.checkboxIsCheckingAllParam.setSelected(!this.checkboxIsCheckingAllParam.isSelected()); |
| 152 | } | |
| 153 | | |
| 154 |
1
1. lambda$new$3 : removed call to javax/swing/JCheckBox::setSelected → NO_COVERAGE |
this.checkboxIsCheckingAllURLParam.setSelected(this.checkboxIsCheckingAllParam.isSelected()); |
| 155 |
1
1. lambda$new$3 : removed call to javax/swing/JCheckBox::setSelected → NO_COVERAGE |
this.checkboxIsCheckingAllRequestParam.setSelected(this.checkboxIsCheckingAllParam.isSelected()); |
| 156 |
1
1. lambda$new$3 : removed call to javax/swing/JCheckBox::setSelected → NO_COVERAGE |
this.checkboxIsCheckingAllHeaderParam.setSelected(this.checkboxIsCheckingAllParam.isSelected()); |
| 157 | | |
| 158 |
2
1. lambda$new$3 : negated conditional → NO_COVERAGE 2. lambda$new$3 : removed call to javax/swing/JCheckBox::setEnabled → NO_COVERAGE |
this.checkboxIsCheckingAllURLParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected()); |
| 159 |
2
1. lambda$new$3 : removed call to javax/swing/JCheckBox::setEnabled → NO_COVERAGE 2. lambda$new$3 : negated conditional → NO_COVERAGE |
this.checkboxIsCheckingAllRequestParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected()); |
| 160 |
2
1. lambda$new$3 : removed call to javax/swing/JCheckBox::setEnabled → NO_COVERAGE 2. lambda$new$3 : negated conditional → NO_COVERAGE |
this.checkboxIsCheckingAllHeaderParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected()); |
| 161 | | |
| 162 |
1
1. lambda$new$3 : removed call to java/awt/event/ActionListener::actionPerformed → NO_COVERAGE |
panelPreferences.getActionListenerSave().actionPerformed(null); |
| 163 | }; | |
| 164 | | |
| 165 |
2
1. <init> : negated conditional → NO_COVERAGE 2. <init> : removed call to javax/swing/JCheckBox::setEnabled → NO_COVERAGE |
this.checkboxIsCheckingAllURLParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected()); |
| 166 |
2
1. <init> : removed call to javax/swing/JCheckBox::setEnabled → NO_COVERAGE 2. <init> : negated conditional → NO_COVERAGE |
this.checkboxIsCheckingAllRequestParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected()); |
| 167 |
2
1. <init> : negated conditional → NO_COVERAGE 2. <init> : removed call to javax/swing/JCheckBox::setEnabled → NO_COVERAGE |
this.checkboxIsCheckingAllHeaderParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected()); |
| 168 | ||
| 169 |
1
1. <init> : removed call to javax/swing/JCheckBox::addActionListener → NO_COVERAGE |
this.checkboxIsCheckingAllParam.addActionListener(actionListenerCheckingAllParam); |
| 170 | | |
| 171 | Stream.of( | |
| 172 | this.checkboxIsNotInjectingMetadata, | |
| 173 | this.checkboxIsNotSearchingCharInsertion, | |
| 174 | this.checkboxIsNotShowingVulnReport, | |
| 175 | this.checkboxIsParsingForm, | |
| 176 | this.checkboxIsCheckingAllURLParam, | |
| 177 | this.checkboxIsCheckingAllRequestParam, | |
| 178 | this.checkboxIsCheckingAllHeaderParam, | |
| 179 | this.checkboxIsCheckingAllJSONParam, | |
| 180 | this.checkboxIsCheckingAllBase64Param, | |
| 181 | this.checkboxIsCheckingAllCookieParam, | |
| 182 | this.checkboxIsCheckingAllSOAPParam, | |
| 183 | this.checkboxIsPerfIndexDisabled, | |
| 184 | this.radioIsZipStrategy, | |
| 185 | this.radioIsDiosStrategy, | |
| 186 | this.radioIsDefaultStrategy, | |
| 187 | this.checkboxIsUrlEncodingDisabled, | |
| 188 | this.checkboxIsUrlRandomSuffixDisabled, | |
| 189 | this.checkboxIsLimitingUnionIndex, | |
| 190 | this.checkboxIsLimitingSleepTimeStrategy | |
| 191 | ) | |
| 192 |
2
1. <init> : removed call to java/util/stream/Stream::forEach → NO_COVERAGE 2. lambda$new$4 : removed call to javax/swing/JToggleButton::addActionListener → NO_COVERAGE |
.forEach(button -> button.addActionListener(panelPreferences.getActionListenerSave())); |
| 193 | ||
| 194 | var panelDnsDomain = new JPanel(); | |
| 195 |
1
1. <init> : removed call to javax/swing/JPanel::setLayout → NO_COVERAGE |
panelDnsDomain.setLayout(new BoxLayout(panelDnsDomain, BoxLayout.X_AXIS)); |
| 196 | panelDnsDomain.add(new JLabel("Domain name ")); | |
| 197 | panelDnsDomain.add(this.textfieldDnsDomain); | |
| 198 | panelDnsDomain.add(new JLabel(" ; default custom-domain.com")); | |
| 199 |
1
1. <init> : removed call to javax/swing/JPanel::setMaximumSize → NO_COVERAGE |
panelDnsDomain.setMaximumSize(new Dimension(400, this.textfieldDnsDomain.getPreferredSize().height)); |
| 200 | var panelDnsPort = new JPanel(); | |
| 201 |
1
1. <init> : removed call to javax/swing/JPanel::setLayout → NO_COVERAGE |
panelDnsPort.setLayout(new BoxLayout(panelDnsPort, BoxLayout.X_AXIS)); |
| 202 | panelDnsPort.add(new JLabel("DNS port ")); | |
| 203 | panelDnsPort.add(this.textfieldDnsPort); | |
| 204 | panelDnsPort.add(new JLabel(" ; default 53")); | |
| 205 |
1
1. <init> : removed call to javax/swing/JPanel::setMaximumSize → NO_COVERAGE |
panelDnsPort.setMaximumSize(new Dimension(125, this.textfieldDnsPort.getPreferredSize().height)); |
| 206 | ||
| 207 | DocumentListener documentListenerSave = new DocumentListenerEditing() { | |
| 208 | @Override | |
| 209 | public void process() { | |
| 210 |
1
1. process : removed call to java/awt/event/ActionListener::actionPerformed → NO_COVERAGE |
panelPreferences.getActionListenerSave().actionPerformed(null); |
| 211 | } | |
| 212 | }; | |
| 213 | ||
| 214 |
1
1. <init> : removed call to java/util/stream/Stream::forEach → NO_COVERAGE |
Stream.of(this.textfieldDnsDomain, this.textfieldDnsPort).forEach( |
| 215 |
1
1. lambda$new$5 : removed call to javax/swing/text/Document::addDocumentListener → NO_COVERAGE |
textField -> textField.getDocument().addDocumentListener(documentListenerSave) |
| 216 | ); | |
| 217 | ||
| 218 |
1
1. <init> : removed call to javax/swing/JTextField::setToolTipText → NO_COVERAGE |
this.textfieldDnsDomain.setToolTipText( |
| 219 | "<html>" | |
| 220 | + "<b>This domain must redirect to your IP address that runs jSQL</b><br>" | |
| 221 | + "You can run DNS exfiltration on a local database, replace your ISP box address<br>" | |
| 222 | + "by your system address in your OS preferred DNS.<br>" | |
| 223 | + "</html>" | |
| 224 | ); | |
| 225 |
1
1. <init> : removed call to javax/swing/JTextField::setToolTipText → NO_COVERAGE |
this.textfieldDnsPort.setToolTipText("The DNS server port started by jSQL"); |
| 226 | ||
| 227 | var groupSpaceToComment = new ButtonGroup(); | |
| 228 |
1
1. <init> : removed call to javax/swing/ButtonGroup::add → NO_COVERAGE |
groupSpaceToComment.add(this.radioIsZipStrategy); |
| 229 |
1
1. <init> : removed call to javax/swing/ButtonGroup::add → NO_COVERAGE |
groupSpaceToComment.add(this.radioIsDiosStrategy); |
| 230 |
1
1. <init> : removed call to javax/swing/ButtonGroup::add → NO_COVERAGE |
groupSpaceToComment.add(this.radioIsDefaultStrategy); |
| 231 | ||
| 232 | var groupLayout = new GroupLayout(this); | |
| 233 |
1
1. <init> : removed call to com/jsql/view/swing/panel/preferences/PanelInjection::setLayout → NO_COVERAGE |
this.setLayout(groupLayout); |
| 234 | ||
| 235 |
1
1. <init> : removed call to javax/swing/GroupLayout::setHorizontalGroup → NO_COVERAGE |
groupLayout.setHorizontalGroup( |
| 236 | groupLayout | |
| 237 | .createSequentialGroup() | |
| 238 | .addGroup( | |
| 239 | groupLayout | |
| 240 | .createParallelGroup(GroupLayout.Alignment.LEADING, false) | |
| 241 | .addComponent(labelGeneralInjection) | |
| 242 | .addComponent(this.checkboxIsParsingForm) | |
| 243 | .addComponent(this.checkboxIsNotInjectingMetadata) | |
| 244 | .addComponent(this.checkboxIsNotSearchingCharInsertion) | |
| 245 | .addComponent(this.checkboxIsNotShowingVulnReport) | |
| 246 | .addComponent(this.checkboxIsLimitingUnionIndex) | |
| 247 | .addComponent(panelIsLimitingUnionIndex) | |
| 248 | .addComponent(this.checkboxIsLimitingSleepTimeStrategy) | |
| 249 | .addComponent(panelSleepTimeStrategy) | |
| 250 | ||
| 251 | .addComponent(labelParamsInjection) | |
| 252 | .addComponent(this.checkboxIsCheckingAllParam) | |
| 253 | .addComponent(this.checkboxIsCheckingAllURLParam) | |
| 254 | .addComponent(this.checkboxIsCheckingAllRequestParam) | |
| 255 | .addComponent(this.checkboxIsCheckingAllHeaderParam) | |
| 256 | ||
| 257 | .addComponent(labelSpecial) | |
| 258 | // .addComponent(this.checkboxIsCheckingAllBase64Param) | |
| 259 | .addComponent(this.checkboxIsCheckingAllJSONParam) | |
| 260 | .addComponent(this.checkboxIsCheckingAllSOAPParam) | |
| 261 | .addComponent(this.checkboxIsCheckingAllCookieParam) | |
| 262 | ||
| 263 | .addComponent(labelQuerySize) | |
| 264 | .addComponent(this.radioIsDefaultStrategy) | |
| 265 | .addComponent(this.radioIsDiosStrategy) | |
| 266 | .addComponent(this.radioIsZipStrategy) | |
| 267 | .addComponent(this.checkboxIsPerfIndexDisabled) | |
| 268 | .addComponent(this.checkboxIsUrlEncodingDisabled) | |
| 269 | .addComponent(this.checkboxIsUrlRandomSuffixDisabled) | |
| 270 | ||
| 271 | .addComponent(labelDns) | |
| 272 | .addComponent(panelDnsDomain) | |
| 273 | .addComponent(panelDnsPort) | |
| 274 | ) | |
| 275 | ); | |
| 276 | ||
| 277 |
1
1. <init> : removed call to javax/swing/GroupLayout::setVerticalGroup → NO_COVERAGE |
groupLayout.setVerticalGroup( |
| 278 | groupLayout | |
| 279 | .createSequentialGroup() | |
| 280 | .addGroup( | |
| 281 | groupLayout | |
| 282 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 283 | .addComponent(labelGeneralInjection) | |
| 284 | ) | |
| 285 | .addGroup( | |
| 286 | groupLayout | |
| 287 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 288 | .addComponent(this.checkboxIsParsingForm) | |
| 289 | ) | |
| 290 | .addGroup( | |
| 291 | groupLayout | |
| 292 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 293 | .addComponent(this.checkboxIsNotInjectingMetadata) | |
| 294 | ) | |
| 295 | .addGroup( | |
| 296 | groupLayout | |
| 297 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 298 | .addComponent(this.checkboxIsNotSearchingCharInsertion) | |
| 299 | ) | |
| 300 | .addGroup( | |
| 301 | groupLayout | |
| 302 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 303 | .addComponent(this.checkboxIsNotShowingVulnReport) | |
| 304 | ) | |
| 305 | .addGroup( | |
| 306 | groupLayout | |
| 307 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 308 | .addComponent(this.checkboxIsLimitingUnionIndex) | |
| 309 | ) | |
| 310 | .addGroup( | |
| 311 | groupLayout | |
| 312 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 313 | .addComponent(panelIsLimitingUnionIndex) | |
| 314 | ) | |
| 315 | .addGroup( | |
| 316 | groupLayout | |
| 317 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 318 | .addComponent(this.checkboxIsLimitingSleepTimeStrategy) | |
| 319 | ) | |
| 320 | .addGroup( | |
| 321 | groupLayout | |
| 322 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 323 | .addComponent(panelSleepTimeStrategy) | |
| 324 | ) | |
| 325 | ||
| 326 | .addGroup( | |
| 327 | groupLayout | |
| 328 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 329 | .addComponent(labelParamsInjection) | |
| 330 | ) | |
| 331 | .addGroup( | |
| 332 | groupLayout | |
| 333 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 334 | .addComponent(this.checkboxIsCheckingAllParam) | |
| 335 | ) | |
| 336 | .addGroup( | |
| 337 | groupLayout | |
| 338 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 339 | .addComponent(this.checkboxIsCheckingAllURLParam) | |
| 340 | ) | |
| 341 | .addGroup( | |
| 342 | groupLayout | |
| 343 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 344 | .addComponent(this.checkboxIsCheckingAllRequestParam) | |
| 345 | ) | |
| 346 | .addGroup( | |
| 347 | groupLayout | |
| 348 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 349 | .addComponent(this.checkboxIsCheckingAllHeaderParam) | |
| 350 | ) | |
| 351 | ||
| 352 | .addGroup( | |
| 353 | groupLayout | |
| 354 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 355 | .addComponent(labelSpecial) | |
| 356 | ) | |
| 357 | // .addGroup( | |
| 358 | // groupLayout | |
| 359 | // .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 360 | // .addComponent(this.checkboxIsCheckingAllBase64Param) | |
| 361 | // ) | |
| 362 | .addGroup( | |
| 363 | groupLayout | |
| 364 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 365 | .addComponent(this.checkboxIsCheckingAllJSONParam) | |
| 366 | ) | |
| 367 | .addGroup( | |
| 368 | groupLayout | |
| 369 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 370 | .addComponent(this.checkboxIsCheckingAllSOAPParam) | |
| 371 | ) | |
| 372 | .addGroup( | |
| 373 | groupLayout | |
| 374 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 375 | .addComponent(this.checkboxIsCheckingAllCookieParam) | |
| 376 | ) | |
| 377 | ||
| 378 | .addGroup( | |
| 379 | groupLayout | |
| 380 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 381 | .addComponent(labelQuerySize) | |
| 382 | ) | |
| 383 | .addGroup( | |
| 384 | groupLayout | |
| 385 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 386 | .addComponent(this.radioIsDefaultStrategy) | |
| 387 | ) | |
| 388 | .addGroup( | |
| 389 | groupLayout | |
| 390 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 391 | .addComponent(this.radioIsDiosStrategy) | |
| 392 | ) | |
| 393 | .addGroup( | |
| 394 | groupLayout | |
| 395 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 396 | .addComponent(this.radioIsZipStrategy) | |
| 397 | ) | |
| 398 | .addGroup( | |
| 399 | groupLayout | |
| 400 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 401 | .addComponent(this.checkboxIsPerfIndexDisabled) | |
| 402 | ) | |
| 403 | .addGroup( | |
| 404 | groupLayout | |
| 405 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 406 | .addComponent(this.checkboxIsUrlEncodingDisabled) | |
| 407 | ) | |
| 408 | .addGroup( | |
| 409 | groupLayout | |
| 410 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 411 | .addComponent(this.checkboxIsUrlRandomSuffixDisabled) | |
| 412 | ) | |
| 413 | .addGroup( | |
| 414 | groupLayout | |
| 415 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 416 | .addComponent(labelDns) | |
| 417 | ) | |
| 418 | .addGroup( | |
| 419 | groupLayout | |
| 420 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 421 | .addComponent(panelDnsDomain) | |
| 422 | ) | |
| 423 | .addGroup( | |
| 424 | groupLayout | |
| 425 | .createParallelGroup(GroupLayout.Alignment.BASELINE) | |
| 426 | .addComponent(panelDnsPort) | |
| 427 | ) | |
| 428 | ); | |
| 429 | } | |
| 430 | ||
| 431 | | |
| 432 | // Getter and setter | |
| 433 | | |
| 434 | public JCheckBox getCheckboxIsNotInjectingMetadata() { | |
| 435 |
1
1. getCheckboxIsNotInjectingMetadata : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsNotInjectingMetadata → NO_COVERAGE |
return this.checkboxIsNotInjectingMetadata; |
| 436 | } | |
| 437 | | |
| 438 | public JCheckBox getCheckboxIsNotSearchingCharInsertion() { | |
| 439 |
1
1. getCheckboxIsNotSearchingCharInsertion : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsNotSearchingCharInsertion → NO_COVERAGE |
return this.checkboxIsNotSearchingCharInsertion; |
| 440 | } | |
| 441 | ||
| 442 | public JCheckBox getCheckboxIsNotShowingVulnReport() { | |
| 443 |
1
1. getCheckboxIsNotShowingVulnReport : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsNotShowingVulnReport → NO_COVERAGE |
return this.checkboxIsNotShowingVulnReport; |
| 444 | } | |
| 445 | ||
| 446 | public JCheckBox getCheckboxIsCheckingAllParam() { | |
| 447 |
1
1. getCheckboxIsCheckingAllParam : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsCheckingAllParam → NO_COVERAGE |
return this.checkboxIsCheckingAllParam; |
| 448 | } | |
| 449 | | |
| 450 | public JCheckBox getCheckboxIsCheckingAllURLParam() { | |
| 451 |
1
1. getCheckboxIsCheckingAllURLParam : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsCheckingAllURLParam → NO_COVERAGE |
return this.checkboxIsCheckingAllURLParam; |
| 452 | } | |
| 453 | | |
| 454 | public JCheckBox getCheckboxIsCheckingAllRequestParam() { | |
| 455 |
1
1. getCheckboxIsCheckingAllRequestParam : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsCheckingAllRequestParam → NO_COVERAGE |
return this.checkboxIsCheckingAllRequestParam; |
| 456 | } | |
| 457 | | |
| 458 | public JCheckBox getCheckboxIsCheckingAllHeaderParam() { | |
| 459 |
1
1. getCheckboxIsCheckingAllHeaderParam : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsCheckingAllHeaderParam → NO_COVERAGE |
return this.checkboxIsCheckingAllHeaderParam; |
| 460 | } | |
| 461 | | |
| 462 | public JCheckBox getCheckboxIsCheckingAllBase64Param() { | |
| 463 |
1
1. getCheckboxIsCheckingAllBase64Param : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsCheckingAllBase64Param → NO_COVERAGE |
return this.checkboxIsCheckingAllBase64Param; |
| 464 | } | |
| 465 | | |
| 466 | public JCheckBox getCheckboxIsCheckingAllJsonParam() { | |
| 467 |
1
1. getCheckboxIsCheckingAllJsonParam : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsCheckingAllJsonParam → NO_COVERAGE |
return this.checkboxIsCheckingAllJSONParam; |
| 468 | } | |
| 469 | | |
| 470 | public JCheckBox getCheckboxIsCheckingAllCookieParam() { | |
| 471 |
1
1. getCheckboxIsCheckingAllCookieParam : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsCheckingAllCookieParam → NO_COVERAGE |
return this.checkboxIsCheckingAllCookieParam; |
| 472 | } | |
| 473 | | |
| 474 | public JCheckBox getCheckboxIsCheckingAllSoapParam() { | |
| 475 |
1
1. getCheckboxIsCheckingAllSoapParam : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsCheckingAllSoapParam → NO_COVERAGE |
return this.checkboxIsCheckingAllSOAPParam; |
| 476 | } | |
| 477 | | |
| 478 | public JCheckBox getCheckboxIsParsingForm() { | |
| 479 |
1
1. getCheckboxIsParsingForm : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsParsingForm → NO_COVERAGE |
return this.checkboxIsParsingForm; |
| 480 | } | |
| 481 | ||
| 482 | public JCheckBox getCheckboxIsPerfIndexDisabled() { | |
| 483 |
1
1. getCheckboxIsPerfIndexDisabled : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsPerfIndexDisabled → NO_COVERAGE |
return this.checkboxIsPerfIndexDisabled; |
| 484 | } | |
| 485 | ||
| 486 | public JRadioButton getRadioIsZipStrategy() { | |
| 487 |
1
1. getRadioIsZipStrategy : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getRadioIsZipStrategy → NO_COVERAGE |
return this.radioIsZipStrategy; |
| 488 | } | |
| 489 | | |
| 490 | public JRadioButton getRadioIsDiosStrategy() { | |
| 491 |
1
1. getRadioIsDiosStrategy : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getRadioIsDiosStrategy → NO_COVERAGE |
return this.radioIsDiosStrategy; |
| 492 | } | |
| 493 | | |
| 494 | public JRadioButton getRadioIsDefaultStrategy() { | |
| 495 |
1
1. getRadioIsDefaultStrategy : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getRadioIsDefaultStrategy → NO_COVERAGE |
return this.radioIsDefaultStrategy; |
| 496 | } | |
| 497 | | |
| 498 | public JCheckBox getCheckboxIsUrlEncodingDisabled() { | |
| 499 |
1
1. getCheckboxIsUrlEncodingDisabled : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsUrlEncodingDisabled → NO_COVERAGE |
return this.checkboxIsUrlEncodingDisabled; |
| 500 | } | |
| 501 | | |
| 502 | public JCheckBox getCheckboxIsUrlRandomSuffixDisabled() { | |
| 503 |
1
1. getCheckboxIsUrlRandomSuffixDisabled : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsUrlRandomSuffixDisabled → NO_COVERAGE |
return this.checkboxIsUrlRandomSuffixDisabled; |
| 504 | } | |
| 505 | ||
| 506 | public JCheckBox getCheckboxIsLimitingUnionIndex() { | |
| 507 |
1
1. getCheckboxIsLimitingUnionIndex : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsLimitingUnionIndex → NO_COVERAGE |
return this.checkboxIsLimitingUnionIndex; |
| 508 | } | |
| 509 | | |
| 510 | public JSpinner getSpinnerUnionIndexCount() { | |
| 511 |
1
1. getSpinnerUnionIndexCount : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getSpinnerUnionIndexCount → NO_COVERAGE |
return this.spinnerUnionIndexCount; |
| 512 | } | |
| 513 | | |
| 514 | public JCheckBox getCheckboxIsLimitingSleepTimeStrategy() { | |
| 515 |
1
1. getCheckboxIsLimitingSleepTimeStrategy : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getCheckboxIsLimitingSleepTimeStrategy → NO_COVERAGE |
return this.checkboxIsLimitingSleepTimeStrategy; |
| 516 | } | |
| 517 | | |
| 518 | public JSpinner getSpinnerSleepTimeStrategy() { | |
| 519 |
1
1. getSpinnerSleepTimeStrategy : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getSpinnerSleepTimeStrategy → NO_COVERAGE |
return this.spinnerSleepTimeStrategyCount; |
| 520 | } | |
| 521 | ||
| 522 | public JTextField getTextfieldDnsDomain() { | |
| 523 |
1
1. getTextfieldDnsDomain : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getTextfieldDnsDomain → NO_COVERAGE |
return this.textfieldDnsDomain; |
| 524 | } | |
| 525 | ||
| 526 | public JTextField getTextfieldDnsPort() { | |
| 527 |
1
1. getTextfieldDnsPort : replaced return value with null for com/jsql/view/swing/panel/preferences/PanelInjection::getTextfieldDnsPort → NO_COVERAGE |
return this.textfieldDnsPort; |
| 528 | } | |
| 529 | } | |
Mutations | ||
| 53 |
1.1 |
|
| 54 |
1.1 |
|
| 55 |
1.1 |
|
| 56 |
1.1 |
|
| 57 |
1.1 |
|
| 58 |
1.1 |
|
| 59 |
1.1 |
|
| 60 |
1.1 |
|
| 61 |
1.1 |
|
| 62 |
1.1 |
|
| 63 |
1.1 |
|
| 64 |
1.1 |
|
| 65 |
1.1 |
|
| 66 |
1.1 |
|
| 67 |
1.1 |
|
| 68 |
1.1 |
|
| 69 |
1.1 |
|
| 70 |
1.1 |
|
| 71 |
1.1 |
|
| 73 |
1.1 |
|
| 77 |
1.1 |
|
| 82 |
1.1 |
|
| 83 |
1.1 |
|
| 89 |
1.1 |
|
| 92 |
1.1 |
|
| 93 |
1.1 |
|
| 94 |
1.1 |
|
| 95 |
1.1 |
|
| 96 |
1.1 |
|
| 99 |
1.1 2.2 |
|
| 104 |
1.1 |
|
| 105 |
1.1 |
|
| 106 |
1.1 2.2 |
|
| 108 |
1.1 |
|
| 111 |
1.1 |
|
| 115 |
1.1 |
|
| 118 |
1.1 2.2 |
|
| 123 |
1.1 |
|
| 124 |
1.1 |
|
| 125 |
1.1 2.2 |
|
| 127 |
1.1 |
|
| 131 |
1.1 |
|
| 147 |
1.1 2.2 |
|
| 150 |
1.1 |
|
| 151 |
1.1 2.2 |
|
| 154 |
1.1 |
|
| 155 |
1.1 |
|
| 156 |
1.1 |
|
| 158 |
1.1 2.2 |
|
| 159 |
1.1 2.2 |
|
| 160 |
1.1 2.2 |
|
| 162 |
1.1 |
|
| 165 |
1.1 2.2 |
|
| 166 |
1.1 2.2 |
|
| 167 |
1.1 2.2 |
|
| 169 |
1.1 |
|
| 192 |
1.1 2.2 |
|
| 195 |
1.1 |
|
| 199 |
1.1 |
|
| 201 |
1.1 |
|
| 205 |
1.1 |
|
| 210 |
1.1 |
|
| 214 |
1.1 |
|
| 215 |
1.1 |
|
| 218 |
1.1 |
|
| 225 |
1.1 |
|
| 228 |
1.1 |
|
| 229 |
1.1 |
|
| 230 |
1.1 |
|
| 233 |
1.1 |
|
| 235 |
1.1 |
|
| 277 |
1.1 |
|
| 435 |
1.1 |
|
| 439 |
1.1 |
|
| 443 |
1.1 |
|
| 447 |
1.1 |
|
| 451 |
1.1 |
|
| 455 |
1.1 |
|
| 459 |
1.1 |
|
| 463 |
1.1 |
|
| 467 |
1.1 |
|
| 471 |
1.1 |
|
| 475 |
1.1 |
|
| 479 |
1.1 |
|
| 483 |
1.1 |
|
| 487 |
1.1 |
|
| 491 |
1.1 |
|
| 495 |
1.1 |
|
| 499 |
1.1 |
|
| 503 |
1.1 |
|
| 507 |
1.1 |
|
| 511 |
1.1 |
|
| 515 |
1.1 |
|
| 519 |
1.1 |
|
| 523 |
1.1 |
|
| 527 |
1.1 |