- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
86 lines
3.5 KiB
Java
86 lines
3.5 KiB
Java
package com.amazonaws.regions;
|
|
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import javax.xml.parsers.DocumentBuilderFactory;
|
|
import org.w3c.dom.Element;
|
|
import org.w3c.dom.Node;
|
|
import org.w3c.dom.NodeList;
|
|
|
|
@Deprecated
|
|
/* loaded from: classes.dex */
|
|
public class RegionMetadataParser {
|
|
@Deprecated
|
|
public RegionMetadataParser() {
|
|
}
|
|
|
|
public List parseRegionMetadata(InputStream inputStream) {
|
|
return internalParse(inputStream, false);
|
|
}
|
|
|
|
public static List internalParse(InputStream inputStream, boolean z) {
|
|
try {
|
|
try {
|
|
DocumentBuilderFactory newInstance = DocumentBuilderFactory.newInstance();
|
|
newInstance.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
|
|
newInstance.setXIncludeAware(false);
|
|
newInstance.setExpandEntityReferences(false);
|
|
NodeList elementsByTagName = newInstance.newDocumentBuilder().parse(inputStream).getElementsByTagName("Region");
|
|
ArrayList arrayList = new ArrayList();
|
|
for (int i = 0; i < elementsByTagName.getLength(); i++) {
|
|
Node item = elementsByTagName.item(i);
|
|
if (item.getNodeType() == 1) {
|
|
arrayList.add(parseRegionElement((Element) item, z));
|
|
}
|
|
}
|
|
return arrayList;
|
|
} finally {
|
|
try {
|
|
inputStream.close();
|
|
} catch (IOException unused) {
|
|
}
|
|
}
|
|
} catch (IOException e) {
|
|
throw e;
|
|
} catch (Exception e2) {
|
|
throw new IOException("Unable to parse region metadata file: " + e2.getMessage(), e2);
|
|
}
|
|
}
|
|
|
|
public static Region parseRegionElement(Element element, boolean z) {
|
|
Region region = new Region(getChildElementValue("Name", element), getChildElementValue("Domain", element));
|
|
NodeList elementsByTagName = element.getElementsByTagName("Endpoint");
|
|
for (int i = 0; i < elementsByTagName.getLength(); i++) {
|
|
addRegionEndpoint(region, (Element) elementsByTagName.item(i), z);
|
|
}
|
|
return region;
|
|
}
|
|
|
|
public static void addRegionEndpoint(Region region, Element element, boolean z) {
|
|
String childElementValue = getChildElementValue("ServiceName", element);
|
|
String childElementValue2 = getChildElementValue("Hostname", element);
|
|
String childElementValue3 = getChildElementValue("Http", element);
|
|
String childElementValue4 = getChildElementValue("Https", element);
|
|
if (z && !verifyLegacyEndpoint(childElementValue2)) {
|
|
throw new IllegalStateException("Invalid service endpoint (" + childElementValue2 + ") is detected.");
|
|
}
|
|
region.getServiceEndpoints().put(childElementValue, childElementValue2);
|
|
region.getHttpSupport().put(childElementValue, Boolean.valueOf("true".equals(childElementValue3)));
|
|
region.getHttpsSupport().put(childElementValue, Boolean.valueOf("true".equals(childElementValue4)));
|
|
}
|
|
|
|
public static String getChildElementValue(String str, Element element) {
|
|
Node item = element.getElementsByTagName(str).item(0);
|
|
if (item == null) {
|
|
return null;
|
|
}
|
|
return item.getChildNodes().item(0).getNodeValue();
|
|
}
|
|
|
|
public static boolean verifyLegacyEndpoint(String str) {
|
|
return str.endsWith(".amazonaws.com");
|
|
}
|
|
}
|