--- a/jdk/make/lib/Awt2dLibraries.gmk Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/make/lib/Awt2dLibraries.gmk Thu Jun 16 20:56:45 2016 +0000
@@ -578,9 +578,7 @@
$(X_CFLAGS) \
$(LIBAWT_HEADLESS_CFLAGS), \
DISABLED_WARNINGS_xlc := 1506-356, \
- DISABLED_WARNINGS_gcc := maybe-uninitialized int-to-pointer-cast, \
- DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE \
- E_EMPTY_TRANSLATION_UNIT, \
+ DISABLED_WARNINGS_solstudio := E_EMPTY_TRANSLATION_UNIT, \
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_headless/mapfile-vers, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
--- a/jdk/src/demo/share/jfc/Font2DTest/FontPanel.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/demo/share/jfc/Font2DTest/FontPanel.java Thu Jun 16 20:56:45 2016 +0000
@@ -128,7 +128,6 @@
/// General Graphics Variable
private final JScrollBar verticalBar;
private final FontCanvas fc;
- private boolean updateBackBuffer = true;
private boolean updateFontMetrics = true;
private boolean updateFont = true;
private boolean force16Cols = false;
@@ -178,7 +177,6 @@
verticalBar.addAdjustmentListener( this );
this.addComponentListener( new ComponentAdapter() {
public void componentResized( ComponentEvent e ) {
- updateBackBuffer = true;
updateFontMetrics = true;
}
});
@@ -199,7 +197,6 @@
public void setTransformG2( int transform ) {
g2Transform = transform;
- updateBackBuffer = true;
updateFontMetrics = true;
fc.repaint();
}
@@ -252,7 +249,6 @@
AffineTransform at = getAffineTransform( fontTransform );
testFont = testFont.deriveFont( at );
}
- updateBackBuffer = true;
updateFontMetrics = true;
fc.repaint();
if ( fontModified ) {
@@ -266,14 +262,12 @@
antiAliasType = ((AAValues)aa).getHint();
fractionalMetricsType = ((FMValues)fm).getHint();
lcdContrast = contrast;
- updateBackBuffer = true;
updateFontMetrics = true;
fc.repaint();
}
public void setDrawMethod( int i ) {
drawMethod = i;
- updateBackBuffer = true;
fc.repaint();
}
@@ -292,7 +286,6 @@
drawMethod = TL_DRAW;
}
- updateBackBuffer = true;
updateFontMetrics = true;
fc.repaint();
updateFontInfo();
@@ -300,13 +293,11 @@
public void setGridDisplay( boolean b ) {
showGrid = b;
- updateBackBuffer = true;
fc.repaint();
}
public void setForce16Columns( boolean b ) {
force16Cols = b;
- updateBackBuffer = true;
updateFontMetrics = true;
fc.repaint();
}
@@ -411,7 +402,6 @@
/// When scrolled using the scroll bar, update the backbuffer
public void adjustmentValueChanged( AdjustmentEvent e ) {
- updateBackBuffer = true;
fc.repaint();
}
@@ -443,9 +433,6 @@
/// Offset from the top left edge of the canvas where the draw will start
private int canvasInset_X = 5, canvasInset_Y = 5;
- /// Offscreen buffer of this canvas
- private BufferedImage backBuffer = null;
-
/// LineBreak'ed TextLayout vector
private Vector lineBreakTLs = null;
@@ -509,7 +496,6 @@
public boolean firstTime() { return firstTime; }
public void refresh() {
firstTime = false;
- updateBackBuffer = true;
repaint();
}
@@ -895,19 +881,10 @@
/// Draws text according to the parameters set by Font2DTest GUI
private void drawText( Graphics g, int w, int h ) {
- Graphics2D g2;
-
- /// Create back buffer when not printing, and its Graphics2D
- /// Then set drawing parameters for that Graphics2D object
- if ( isPrinting )
- g2 = (Graphics2D) g;
- else {
- backBuffer = (BufferedImage) this.createImage( w, h );
- g2 = backBuffer.createGraphics();
- g2.setColor(Color.white);
- g2.fillRect(0, 0, w, h);
- g2.setColor(Color.black);
- }
+ Graphics2D g2 = (Graphics2D) g;
+ g2.setColor(Color.white);
+ g2.fillRect(0, 0, w, h);
+ g2.setColor(Color.black);
/// sets font, RenderingHints.
setParams( g2 );
@@ -927,8 +904,6 @@
int charToDraw = drawStart;
if ( showGrid )
drawGrid( g2 );
- if ( !isPrinting )
- g.drawImage( backBuffer, 0, 0, this );
for ( int i = 0; i < numCharDown && charToDraw <= drawEnd; i++ ) {
for ( int j = 0; j < numCharAcross && charToDraw <= drawEnd; j++, charToDraw++ ) {
@@ -938,19 +913,12 @@
modeSpecificDrawChar( g2, charToDraw,
gridLocX + gridWidth / 2,
gridLocY + maxAscent );
- //if ( !isPrinting ) {
- // g.setClip( gridLocX, gridLocY, gridWidth + 1, gridHeight + 1 );
- // g.drawImage( backBuffer, 0, 0, this );
- //}
}
}
}
else if ( textToUse == USER_TEXT ) {
g2.drawRect( 0, 0, w - 1, h - 1 );
- if ( !isPrinting )
- g.drawImage( backBuffer, 0, 0, this );
-
for ( int i = drawStart; i <= drawEnd; i++ ) {
int lineStartX = canvasInset_Y;
int lineStartY = ( i - drawStart ) * gridHeight + maxAscent;
@@ -960,9 +928,6 @@
else {
float xPos, yPos = (float) canvasInset_Y;
g2.drawRect( 0, 0, w - 1, h - 1 );
- if ( !isPrinting )
- g.drawImage( backBuffer, 0, 0, this );
-
for ( int i = drawStart; i <= drawEnd; i++ ) {
TextLayout oneLine = (TextLayout) lineBreakTLs.elementAt( i );
xPos =
@@ -982,33 +947,26 @@
yPos += fmData[3] + fmData[5]; // descent + leading
}
}
- if ( !isPrinting )
- g.drawImage( backBuffer, 0, 0, this );
g2.dispose();
}
/// Component paintComponent function...
/// Draws/Refreshes canvas according to flag(s) set by other functions
public void paintComponent( Graphics g ) {
- if ( updateBackBuffer ) {
+ super.paintComponent(g);
+
Dimension d = this.getSize();
isPrinting = false;
try {
drawText( g, d.width, d.height );
}
catch ( CannotDrawException e ) {
+ super.paintComponent(g);
f2dt.fireChangeStatus( ERRORS[ e.id ], true );
- super.paintComponent(g);
return;
}
- }
- else {
- /// Screen refresh
- g.drawImage( backBuffer, 0, 0, this );
- }
showingError = false;
- updateBackBuffer = false;
}
/// Printable interface function
@@ -1087,7 +1045,17 @@
/// Ouputs the current canvas into a given PNG file
public void writePNG( String fileName ) {
try {
- ImageIO.write(backBuffer, "png", new java.io.File(fileName));
+ int w = this.getSize().width;
+ int h = this.getSize().height;
+ BufferedImage buffer = (BufferedImage) this.createImage( w, h );
+ Graphics2D g2 = buffer.createGraphics();
+ g2.setColor(Color.white);
+ g2.fillRect(0, 0, w, h);
+ g2.setColor(Color.black);
+ updateFontMetrics = true;
+ drawText(g2, w, h);
+ updateFontMetrics = true;
+ ImageIO.write(buffer, "png", new java.io.File(fileName));
}
catch ( Exception e ) {
f2dt.fireChangeStatus( "ERROR: Failed to Save PNG image; See stack trace", true );
--- a/jdk/src/demo/share/jfc/Notepad/resources/Notepad_ja.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/demo/share/jfc/Notepad/resources/Notepad_ja.properties Thu Jun 16 20:56:45 2016 +0000
@@ -38,7 +38,7 @@
pasteLabel=\u8CBC\u4ED8\u3051
pasteImage=resources/paste.gif
undoLabel=\u5143\u306B\u623B\u3059
-redoLabel=\u3084\u308A\u76F4\u3057
+redoLabel=\u518D\u5B9F\u884C
#
# debug Menu definition
--- a/jdk/src/java.base/macosx/classes/module-info.java.extra Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/macosx/classes/module-info.java.extra Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,4 +24,3 @@
*/
exports jdk.internal.loader to java.desktop;
-provides java.security.Provider with apple.security.AppleProvider;
--- a/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -61,17 +61,25 @@
"Usage: pack200 [-opt... | --option=value]... x.pack[.gz] y.jar",
"",
"Packing Options",
- " -g, --no-gzip output a plain *.pack file with no zipping",
- " --gzip (default) post-process the pack output with gzip",
- " -G, --strip-debug remove debugging attributes while packing",
+ " -r, --repack repack or normalize a jar, suitable for ",
+ " signing with jarsigner",
+ " -g, --no-gzip output a plain pack file, suitable to be",
+ " compressed with a file compression utility",
+ " --gzip (default) post compress the pack output",
+ " with gzip",
+ " -G, --strip-debug remove debugging attributes (SourceFile,",
+ " LineNumberTable, LocalVariableTable",
+ " and LocalVariableTypeTable) while packing",
" -O, --no-keep-file-order do not transmit file ordering information",
" --keep-file-order (default) preserve input file ordering",
- " -S{N}, --segment-limit={N} output segment limit (default N=1Mb)",
+ " -S{N}, --segment-limit={N} limit segment sizes (default unlimited)",
" -E{N}, --effort={N} packing effort (default N=5)",
- " -H{h}, --deflate-hint={h} transmit deflate hint: true, false, or keep (default)",
+ " -H{h}, --deflate-hint={h} transmit deflate hint: true, false,",
+ " or keep (default)",
" -m{V}, --modification-time={V} transmit modtimes: latest or keep (default)",
- " -P{F}, --pass-file={F} transmit the given input element(s) uncompressed",
- " -U{a}, --unknown-attribute={a} unknown attribute action: error, strip, or pass (default)",
+ " -P{F}, --pass-file={F} transmit the given input element(s) unchanged",
+ " -U{a}, --unknown-attribute={a} unknown attribute action: error, strip,",
+ " or pass (default)",
" -C{N}={L}, --class-attribute={N}={L} (user-defined attribute)",
" -F{N}={L}, --field-attribute={N}={L} (user-defined attribute)",
" -M{N}={L}, --method-attribute={N}={L} (user-defined attribute)",
@@ -79,7 +87,8 @@
" -f{F}, --config-file={F} read file F for Pack200.Packer properties",
" -v, --verbose increase program verbosity",
" -q, --quiet set verbosity to lowest level",
- " -l{F}, --log-file={F} output to the given log file, or '-' for System.out",
+ " -l{F}, --log-file={F} output to the given log file, ",
+ " or '-' for System.out",
" -?, -h, --help print this message",
" -V, --version print program version",
" -J{X} pass option X to underlying Java VM",
@@ -92,18 +101,23 @@
" Layout definitions (like RUH) are defined by JSR 200.",
"",
"Repacking mode updates the JAR file with a pack/unpack cycle:",
- " pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar\n"
+ " pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar\n",
+ "",
+ "Exit Status:",
+ " 0 if successful, >0 if an error occurred"
}
},
{UNPACK_HELP, new String[] {
"Usage: unpack200 [-opt... | --option=value]... x.pack[.gz] y.jar\n",
"",
"Unpacking Options",
- " -H{h}, --deflate-hint={h} override transmitted deflate hint: true, false, or keep (default)",
+ " -H{h}, --deflate-hint={h} override transmitted deflate hint:",
+ " true, false, or keep (default)",
" -r, --remove-pack-file remove input file after unpacking",
" -v, --verbose increase program verbosity",
" -q, --quiet set verbosity to lowest level",
- " -l{F}, --log-file={F} output to the given log file, or '-' for System.out",
+ " -l{F}, --log-file={F} output to the given log file, or",
+ " '-' for System.out",
" -?, -h, --help print this message",
" -V, --version print program version",
" -J{X} pass option X to underlying Java VM"
--- a/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -84,7 +84,7 @@
" -V\u3001--version \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u307E\u3059",
" -J{X} \u30AA\u30D7\u30B7\u30E7\u30F3X\u3092\u57FA\u790E\u3068\u306A\u308BJava VM\u306B\u6E21\u3057\u307E\u3059",
"",
- "\u6CE8\u610F:",
+ "\u6CE8:",
" -P\u3001-C\u3001-F\u3001-M\u304A\u3088\u3073-D\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u7D2F\u7A4D\u3055\u308C\u307E\u3059\u3002",
" \u5C5E\u6027\u5B9A\u7FA9\u306E\u4F8B: -C SourceFile=RUH .",
" Config.\u30D5\u30A1\u30A4\u30EB\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u306F\u3001Pack200 API\u306B\u3088\u3063\u3066\u5B9A\u7FA9\u3055\u308C\u307E\u3059\u3002",
--- a/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -48,7 +48,7 @@
* Do not translate command arguments and words with a prefix of '-' or '--'.
*/
private static final Object[][] resource = {
- {VERSION, "{0}\u7248\u672C{1}"}, // parameter 0:class name;parameter 1: version value
+ {VERSION, "{0}\u7248\u672C {1}"}, // parameter 0:class name;parameter 1: version value
{BAD_ARGUMENT, "\u9519\u8BEF\u53C2\u6570: {0}"},
{BAD_OPTION, "\u9519\u8BEF\u9009\u9879: {0}={1}"}, // parameter 0:option name;parameter 1:option value
{BAD_REPACK_OUTPUT, "--repack \u8F93\u51FA\u9519\u8BEF: {0}"}, // parameter 0:filename
--- a/jdk/src/java.base/share/classes/java/lang/Class.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/Class.java Thu Jun 16 20:56:45 2016 +0000
@@ -480,6 +480,24 @@
* any exception thrown by the constructor in a (checked) {@link
* java.lang.reflect.InvocationTargetException}.
*
+ * <p>The call
+ *
+ * <pre>{@code
+ * clazz.newInstance()
+ * }</pre>
+ *
+ * can be replaced by
+ *
+ * <pre>{@code
+ * clazz.getConstructor().newInstance()
+ * }</pre>
+ *
+ * The latter sequence of calls is inferred to be able to throw
+ * the additional exception types {@link
+ * InvocationTargetException} and {@link
+ * NoSuchMethodException}. Both of these exception types are
+ * subclasses of {@link ReflectiveOperationException}.
+ *
* @return a newly allocated instance of the class represented by this
* object.
* @throws IllegalAccessException if the class or its nullary
--- a/jdk/src/java.base/share/classes/java/time/chrono/JapaneseDate.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/java/time/chrono/JapaneseDate.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -437,7 +437,7 @@
field == ALIGNED_WEEK_OF_MONTH || field == ALIGNED_WEEK_OF_YEAR) {
return false;
}
- return ChronoLocalDate.super.isSupported(field);
+ return super.isSupported(field);
}
@Override
--- a/jdk/src/java.base/share/classes/java/util/PriorityQueue.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/java/util/PriorityQueue.java Thu Jun 16 20:56:45 2016 +0000
@@ -337,11 +337,8 @@
int i = size;
if (i >= queue.length)
grow(i + 1);
+ siftUp(i, e);
size = i + 1;
- if (i == 0)
- queue[0] = e;
- else
- siftUp(i, e);
return true;
}
--- a/jdk/src/java.base/share/classes/java/util/Scanner.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/java/util/Scanner.java Thu Jun 16 20:56:45 2016 +0000
@@ -793,7 +793,6 @@
private void readInput() {
if (buf.limit() == buf.capacity())
makeSpace();
-
// Prepare to receive data
int p = buf.position();
buf.position(buf.limit());
@@ -806,15 +805,12 @@
lastException = ioe;
n = -1;
}
-
if (n == -1) {
sourceClosed = true;
needInput = false;
}
-
if (n > 0)
needInput = false;
-
// Restore current position and limit for reading
buf.limit(buf.position());
buf.position(p);
@@ -871,15 +867,20 @@
matchValid = false;
matcher.usePattern(delimPattern);
matcher.region(position, buf.limit());
-
// Skip delims first
- if (matcher.lookingAt())
+ if (matcher.lookingAt()) {
+ if (matcher.hitEnd() && !sourceClosed) {
+ // more input might change the match of delims, in which
+ // might change whether or not if there is token left in
+ // buffer (don't update the "position" in this case)
+ needInput = true;
+ return false;
+ }
position = matcher.end();
-
+ }
// If we are sitting at the end, no more tokens in buffer
if (position == buf.limit())
return false;
-
return true;
}
@@ -900,7 +901,6 @@
*/
private String getCompleteTokenInBuffer(Pattern pattern) {
matchValid = false;
-
// Skip delims first
matcher.usePattern(delimPattern);
if (!skipped) { // Enforcing only one skip of leading delims
@@ -941,13 +941,16 @@
foundNextDelim = matcher.find();
}
if (foundNextDelim) {
- // In the rare case that more input could cause the match
- // to be lost and there is more input coming we must wait
- // for more input. Note that hitting the end is okay as long
- // as the match cannot go away. It is the beginning of the
- // next delims we want to be sure about, we don't care if
- // they potentially extend further.
- if (matcher.requireEnd() && !sourceClosed) {
+ // In two rare cases that more input might cause the match to be
+ // lost or change.
+ // (1) if requireEnd() is true, more input might cause the match
+ // to be lost, we must wait for more input.
+ // (2) while hitting the end is okay IF the match does not
+ // go away AND the beginning of the next delims does not change
+ // (we don't care if they potentially extend further). But it's
+ // possible that more input could cause the beginning of the
+ // delims change, so have to wait for more input as well.
+ if ((matcher.requireEnd() || matcher.hitEnd()) && !sourceClosed) {
needInput = true;
return null;
}
@@ -1341,8 +1344,9 @@
saveState();
modCount++;
while (!sourceClosed) {
- if (hasTokenInBuffer())
+ if (hasTokenInBuffer()) {
return revertState(true);
+ }
readInput();
}
boolean result = hasTokenInBuffer();
@@ -1365,7 +1369,6 @@
ensureOpen();
clearCaches();
modCount++;
-
while (true) {
String token = getCompleteTokenInBuffer(null);
if (token != null) {
--- a/jdk/src/java.base/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java Thu Jun 16 20:56:45 2016 +0000
@@ -66,7 +66,7 @@
* inaccurate results if this collection is modified during traversal.
* Additionally, the bulk operations {@code addAll},
* {@code removeAll}, {@code retainAll}, {@code containsAll},
- * {@code equals}, and {@code toArray} are <em>not</em> guaranteed
+ * and {@code toArray} are <em>not</em> guaranteed
* to be performed atomically. For example, an iterator operating
* concurrently with an {@code addAll} operation might view only some
* of the added elements.
--- a/jdk/src/java.base/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java Thu Jun 16 20:56:45 2016 +0000
@@ -80,7 +80,7 @@
* inaccurate results if this collection is modified during traversal.
* Additionally, the bulk operations {@code addAll},
* {@code removeAll}, {@code retainAll}, {@code containsAll},
- * {@code equals}, and {@code toArray} are <em>not</em> guaranteed
+ * and {@code toArray} are <em>not</em> guaranteed
* to be performed atomically. For example, an iterator operating
* concurrently with an {@code addAll} operation might view only some
* of the added elements.
--- a/jdk/src/java.base/share/classes/java/util/concurrent/ConcurrentSkipListMap.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ConcurrentSkipListMap.java Thu Jun 16 20:56:45 2016 +0000
@@ -840,6 +840,9 @@
break; // restart if lost race to replace value
}
// else c < 0; fall through
+ } else if (b == head.node) {
+ // map is empty, so type check key now
+ cpr(cmp, key, key);
}
z = new Node<K,V>(key, value, n);
--- a/jdk/src/java.base/share/classes/java/util/concurrent/LinkedTransferQueue.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/LinkedTransferQueue.java Thu Jun 16 20:56:45 2016 +0000
@@ -61,7 +61,7 @@
* inaccurate results if this collection is modified during traversal.
* Additionally, the bulk operations {@code addAll},
* {@code removeAll}, {@code retainAll}, {@code containsAll},
- * {@code equals}, and {@code toArray} are <em>not</em> guaranteed
+ * and {@code toArray} are <em>not</em> guaranteed
* to be performed atomically. For example, an iterator operating
* concurrently with an {@code addAll} operation might view only some
* of the added elements.
--- a/jdk/src/java.base/share/classes/javax/net/ssl/SSLEngineResult.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/javax/net/ssl/SSLEngineResult.java Thu Jun 16 20:56:45 2016 +0000
@@ -151,7 +151,7 @@
/**
* The {@code SSLEngine} needs to unwrap before handshaking can
- * can continue.
+ * continue.
* <P>
* This value is used to indicate that not-yet-interpreted data
* has been previously received from the remote side, and does
--- a/jdk/src/java.base/share/classes/javax/security/auth/Policy.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/Policy.java Thu Jun 16 20:56:45 2016 +0000
@@ -152,10 +152,11 @@
*
* These two APIs provide callers the means to query the
* Policy for Principal-based Permission entries.
+ * This class is subject to removal in a future version of Java SE.
*
* @see java.security.Security security properties
*/
-@Deprecated
+@Deprecated(since="1.4", forRemoval=true)
public abstract class Policy {
private static Policy policy;
--- a/jdk/src/java.base/share/classes/jdk/internal/jrtfs/JrtUtils.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/jrtfs/JrtUtils.java Thu Jun 16 20:56:45 2016 +0000
@@ -45,7 +45,7 @@
private static boolean isGlobMeta(char c) {
return globMetaChars.indexOf(c) != -1;
}
- private static final char EOL = 0; //TBD
+ private static final char EOL = 0;
private static char next(String glob, int i) {
if (i < glob.length()) {
return glob.charAt(i);
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_de.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_de.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
#
# Translators please note do not translate the options themselves
-java.launcher.opt.header = Verwendung: {0} [-options] class [args...]\n (zur Ausf\u00FChrung einer Klasse)\n oder {0} [-options] -jar jarfile [args...]\n (zur Ausf\u00FChrung einer JAR-Datei)\nwobei options Folgendes umfasst:\n
+java.launcher.opt.header = Verwendung: {0} [options] class [args...]\n (zur Ausf\u00FChrung einer Klasse)\n oder {0} [options] -jar jarfile [args...]\n (zur Ausf\u00FChrung einer JAR-Datei)\n oder {0} [-options] -mp <modulepath> -m <modulename> | <modulename>/<mainclass>\n (zur Ausf\u00FChrung der Hauptklasse in einem Modul)\nwobei "options" Folgendes umfasst:\n
java.launcher.opt.datamodel =\ -d{0}\t Verwendet ein {0}-Bit-Datenmodell, sofern verf\u00FCgbar\n
java.launcher.opt.vmselect =\ {0}\t zur Auswahl der "{1}" VM\n
@@ -34,10 +34,11 @@
java.launcher.ergo.message2 =\ weil die Ausf\u00FChrung auf einem Server-Class-Rechner erfolgt.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <Klassensuchpfad von Verzeichnissen und ZIP-/JAR-Dateien>\n -classpath <Klassensuchpfad von Verzeichnissen und ZIP-/JAR-Dateien>\n Eine durch {0} getrennte Liste mit Verzeichnissen, JAR-Archiven\n und ZIP-Archiven zur Suche nach Klassendateien.\n -D<name>=<value>\n Legt eine Systemeigenschaft fest\n -verbose:[class|gc|jni]\n Aktiviert die Verbose-Ausgabe\n -version Druckt Produktversion und beendet das Programm\n -version:<value>\n Erfordert die angegebene Version zur Ausf\u00FChrung\n -showversion Druckt Produktversion und f\u00E4hrt fort\n -jre-restrict-search | -no-jre-restrict-search\n Bezieht private JREs des Benutzers in Versionssuche ein bzw. schlie\u00DFt sie aus\n -? -help Druckt diese Hilfemeldung\n -X Druckt Hilfe zu Nicht-Standardoptionen\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n Aktiviert Assertionen mit angegebener Granularit\u00E4t\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n Deaktiviert Assertionen mit angegebener Granularit\u00E4t\n -esa | -enablesystemassertions\n Aktiviert Systemassertionen\n -dsa | -disablesystemassertions\n Deaktiviert Systemassertionen\n -agentlib:<libname>[=<options>]\n L\u00E4dt native Agent Library <libname>, z.B. -agentlib:hprof\n siehe auch -agentlib:jdwp=help und -agentlib:hprof=help\n -agentpath:<pathname>[=<options>]\n L\u00E4dt native Agent Library nach vollem Pfadnamen\n -javaagent:<jarpath>[=<options>]\n L\u00E4dt Java-Programmiersprachen-Agent, siehe java.lang.instrument\n -splash:<imagepath>\n Zeigt Startbildschirm mit angegebenem Bild\nWeitere Einzelheiten finden Sie unter http://www.oracle.com/technetwork/java/javase/documentation/index.html
+java.launcher.opt.footer =\ -cp <Klassensuchpfad von Verzeichnissen und ZIP-/JAR-Dateien>\n -classpath <Klassensuchpfad von Verzeichnissen und ZIP-/JAR-Dateien>\n Eine durch {0} getrennte Liste mit Verzeichnissen, JAR-Archiven\n und ZIP-Archiven zur Suche nach Klassendateien.\n -mp <Modulpfad>\n -modulepath <Modulpfad>...\n Eine durch {0} getrennte Liste mit Verzeichnissen, in der jedes Verzeichnis\n ein Modulverzeichnis darstellt.\n -upgrademodulepath <Modulpfad>...\n Eine durch {0} getrennte Liste mit Verzeichnissen, in der jedes Verzeichnis\n ein Verzeichnis von Modulen darstellt, die upgradef\u00E4hige\n Module im Laufzeitimage ersetzen\n -m <modulename> | <modulename>/<mainclass>\n das anf\u00E4ngliche oder Hauptmodul, das aufgel\u00F6st werden soll\n -addmods <modulename>[,<modulename>...]\n Root-Module, die zus\u00E4tzlich zum anf\u00E4nglichen Modul aufgel\u00F6st werden sollen\n -limitmods <modulename>[,<modulename>...]\n Schr\u00E4nkt die Gesamtzahl der beachtbaren Module ein\n -listmods[:<modulename>[,<modulename>...]]\n Listet die beachtbaren Module auf und beendet den Vorgang\n -D<name>=<value>\n Legt eine Systemeigenschaft fest\n -verbose:[class|gc|jni]\n Aktiviert die Verbose-Ausgabe\n -version Druckt Produktversion und beendet das Programm\n -showversion Druckt Produktversion und f\u00E4hrt fort\n -? -help Druckt diese Hilfemeldung\n -X Druckt Hilfe zu Nicht-Standardoptionen\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n Aktiviert Assertions mit angegebener Granularit\u00E4t\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n Deaktiviert Assertions mit angegebener Granularit\u00E4t\n -esa | -enablesystemassertions\n Aktiviert System-Assertions\n -dsa | -disablesystemassertions\n Deaktiviert System-Assertions\n -agentlib:<libname>[=<options>]\n L\u00E4dt native Agent Library <libname>, z.B. -agentlib:jdwp\n siehe auch -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n L\u00E4dt native Agent Library nach vollem Pfadnamen\n -javaagent:<jarpath>[=<options>]\n L\u00E4dt Java-Programmiersprachen-Agent, siehe java.lang.instrument\n -splash:<imagepath>\n Zeigt Startbildschirm mit angegebenem Bild an\n @<filepath> Liest Optionen aus der angegebenen Datei\n
+See Weitere Einzelheiten finden Sie unter http://www.oracle.com/technetwork/java/javase/documentation/index.html.
# Translators please note do not translate the options themselves
-java.launcher.X.usage=\ -Xmixed Ausf\u00FChrung im gemischten Modus (Standard)\n -Xint Nur Ausf\u00FChrung im interpretierten Modus\n -Xbootclasspath:<Verzeichnisse und ZIP-/JAR-Dateien durch {0} getrennt>\n Legt Suchpfad f\u00FCr Bootstrap-Klassen und Ressourcen fest\n -Xbootclasspath/a:<Verzeichnisse und ZIP-/JAR-Dateien durch {0} getrennt>\n H\u00E4ngt an das Ende des Bootstrap Classpath an\n -Xbootclasspath/p:<Verzeichnisse und ZIP-/JAR-Dateien durch {0} getrennt>\n Stellt Bootstrap Classpath voran\n -Xdiag Zeigt zus\u00E4tzliche Diagnosemeldungen an\n -Xnoclassgc Deaktiviert Klassen-Garbage Collection\n -Xincgc Aktiviert inkrementelle Garbage Collection\n -Xloggc:<file> Loggt GC-Status in einer Datei mit Zeitstempeln\n -Xbatch Deaktiviert Hintergrundkompilierung\n -Xms<size> Legt anf\u00E4ngliche Java Heap-Gr\u00F6\u00DFe fest\n -Xmx<size> Legt maximale Java Heap-Gr\u00F6\u00DFe fest\n -Xss<size> Legt Java-Thread-Stackgr\u00F6\u00DFe fest\n -Xprof Gibt CPU-Profiling-Daten aus\n -Xfuture Aktiviert strengste Pr\u00FCfungen, antizipiert zuk\u00FCnftigen Standardwert\n -Xrs Reduziert Verwendung von BS-Signalen durch Java/VM (siehe Dokumentation)\n -Xcheck:jni F\u00FChrt zus\u00E4tzliche Pr\u00FCfungen f\u00FCr JNI-Funktionen durch\n -Xshare:off Kein Versuch, gemeinsame Klassendaten zu verwenden\n -Xshare:auto Verwendet gemeinsame Klassendaten, wenn m\u00F6glich (Standard)\n -Xshare:on Erfordert die Verwendung gemeinsamer Klassendaten, sonst verl\u00E4uft der Vorgang nicht erfolgreich.\n -XshowSettings Zeigt alle Einstellungen und f\u00E4hrt fort\n -XshowSettings:all\n Zeigt alle Einstellungen und f\u00E4hrt fort\n -XshowSettings:vm Zeigt alle VM-bezogenen Einstellungen und f\u00E4hrt fort\n -XshowSettings:properties\n Zeigt alle Eigenschaftseinstellungen und f\u00E4hrt fort\n -XshowSettings:locale\n Zeigt alle gebietsschemabezogenen Einstellungen und f\u00E4hrt fort\n\nDie -X-Optionen sind keine Standardoptionen und k\u00F6nnen ohne Vorank\u00FCndigung ge\u00E4ndert werden.\n
+java.launcher.X.usage=\ -Xmixed Ausf\u00FChrung im gemischten Modus (Standard)\n -Xint Nur Ausf\u00FChrung im interpretierten Modus\n -Xbootclasspath/a:<Verzeichnisse und ZIP-/JAR-Dateien durch {0} getrennt>\n H\u00E4ngt an das Ende des Bootstrap Classpath an\n -Xdiag Zeigt zus\u00E4tzliche Diagnosemeldungen an\n -Xdiag:resolver Zeigt Resolver-Diagnosemeldungen an\n -Xnoclassgc Deaktiviert Klassen-Garbage Collection\n -Xincgc Aktiviert inkrementelle Garbage Collection\n -Xloggc:<file> Protokolliert GC-Status in einer Datei mit Zeitstempeln\n -Xbatch Deaktiviert Hintergrundkompilierung\n -Xms<size> Legt anf\u00E4ngliche Java-Heap-Gr\u00F6\u00DFe fest\n -Xmx<size> Legt maximale Java-Heap-Gr\u00F6\u00DFe fest\n -Xss<size> Legt Java-Threadstackgr\u00F6\u00DFe fest\n -Xprof Gibt CPU-Profilingdaten aus\n -Xfuture Aktiviert strengste Pr\u00FCfungen, antizipiert zuk\u00FCnftigen Standardwert\n -Xrs Reduziert Verwendung von BS-Signalen durch Java/VM (siehe Dokumentation)\n -Xcheck:jni F\u00FChrt zus\u00E4tzliche Pr\u00FCfungen f\u00FCr JNI-Funktionen durch\n -Xshare:off Kein Versuch, gemeinsame Klassendaten zu verwenden\n -Xshare:auto Verwendet gemeinsame Klassendaten, wenn m\u00F6glich (Standard)\n -Xshare:on Erfordert die Verwendung gemeinsamer Klassendaten, sonst verl\u00E4uft der Vorgang nicht erfolgreich.\n -XshowSettings Zeigt alle Einstellungen an und f\u00E4hrt fort\n -XshowSettings:all\n Zeigt alle Einstellungen an und f\u00E4hrt fort\n -XshowSettings:vm Zeigt alle VM-bezogenen Einstellungen an und f\u00E4hrt fort\n -XshowSettings:properties\n Zeigt alle Eigenschaftseinstellungen an und f\u00E4hrt fort\n -XshowSettings:locale\n Zeigt alle gebietsschemabezogenen Einstellungen an und f\u00E4hrt fort\n -XaddReads:<module>=<other-module>(,<other-module>)*\n <module> liest andere Module\n unabh\u00E4ngig von der Moduldeklaration\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n <module> exportiert <package> in andere Module\n unabh\u00E4ngig von der Moduldeklaration\n -Xpatch:<module>=<file>({0}<file>)*\n Modul mit Klassen und Ressourcen in JAR-Dateien oder Verzeichnissen\n au\u00DFer Kraft setzen oder erg\u00E4nzen\n -Xdisable-@files Deaktiviert weitere Argumentdateierweiterung\n\nDie -X-Optionen sind keine Standardoptionen und k\u00F6nnen ohne Vorank\u00FCndigung ge\u00E4ndert werden.\n
# Translators please note do not translate the options themselves
java.launcher.X.macosx.usage=\nDie folgenden Optionen sind f\u00FCr Mac OS X spezifisch:\n -XstartOnFirstThread\n f\u00FChrt die main()-Methode f\u00FCr den ersten (AppKit) Thread aus\n -Xdock:name=<Anwendungsname>"\n \u00DCberschreibt den in der Uhr angezeigten Standardanwendungsnamen\n -Xdock:icon=<Pfad zu Symboldatei>\n \u00DCberschreibt das in der Uhr angezeigte Standardsymbol\n\n
@@ -52,3 +53,5 @@
java.launcher.jar.error3=kein Hauptmanifestattribut, in {0}
java.launcher.init.error=Initialisierungsfehler
java.launcher.javafx.error1=Fehler: Die JavaFX-Methode launchApplication hat die falsche Signatur, sie\nmuss als statisch deklariert werden und einen Wert vom Typ VOID zur\u00FCckgeben
+java.launcher.module.error1=Modul {0} weist kein MainClass-Attribut auf. Verwenden Sie -m <module>/<main-class>
+java.launcher.module.error2=Fehler: Hauptklasse {0} konnte in Modul {1} nicht gefunden oder geladen werden
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_es.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_es.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
#
# Translators please note do not translate the options themselves
-java.launcher.opt.header = Sintaxis: {0} [-options] class [args...]\n (para ejecutar una clase)\n o {0} [-options] -jar jarfile [args...]\n (para ejecutar un archivo jar)\ndonde las opciones incluyen:\n
+java.launcher.opt.header = Sintaxis: {0} [opciones] class [args...]\n (para ejecutar una clase)\n or {0} [opciones] -jar jarfile [args...]\n (para ejecutar un archivo jar)\n or {0} [-options] -mp <ruta_m\u00F3dulo> -m <nombre_m\u00F3dulo> | <nombre_m\u00F3dulo>/<clase_principal>\n (para ejecutar una clase principal en un m\u00F3dulo)\ndonde opciones incluye:\n
java.launcher.opt.datamodel =\ -d{0}\t usar un modelo de datos de {0} bits, si est\u00E1 disponible\n
java.launcher.opt.vmselect =\ {0}\t para seleccionar la VM "{1}"\n
@@ -34,10 +34,11 @@
java.launcher.ergo.message2 =\ porque la ejecuci\u00F3n se est\u00E1 llevando a cabo en una m\u00E1quina de clase de servidor.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <ruta de acceso de b\u00FAsqueda de clases de los directorios y los archivos zip/jar>\n -classpath <ruta de acceso de b\u00FAsqueda de clases de los directorios y los archivos zip/jar>\n Lista separada por {0} de directorios, archivos JAR\n y archivos ZIP para buscar archivos de clase.\n -D<nombre>=<valor>\n definir una propiedad del sistema\n -verbose:[class|gc|jni]\n activar la salida verbose\n -version imprimir la versi\u00F3n del producto y salir\n -version:<valor>\n es necesario que se ejecute la versi\u00F3n especificada\n -showversion imprimir la versi\u00F3n del producto y continuar\n -jre-restrict-search | -no-jre-restrict-search\n incluir/excluir JRE privados de usuario en la b\u00FAsqueda de versi\u00F3n\n -? -help imprimir este mensaje de ayuda\n -X imprimir la ayuda sobre las opciones que no sean est\u00E1ndar\n -ea[:<nombre_paquete>...|:<nombre_clase>]\n -enableassertions[:<nombre_paquete>...|:<nombre_clase>]\n activar afirmaciones con la granularidad especificada\n -da[:<nombre_paquete>...|:<nombre_clase>]\n -disableassertions[:<nombre_paquete>...|:<nombre_clase>]\n desactivar afirmaciones con la granularidad especificada\n -esa | -enablesystemassertions\n activar afirmaciones del sistema\n -dsa | -disablesystemassertions\n desactivar afirmaciones del sistema\n -agentlib:<nombre_bib>[=<opciones>]\n cargar la biblioteca de agente nativa <nombre_bib>, como -agentlib:hprof\n v\u00E9ase tambi\u00E9n -agentlib:jdwp=help y -agentlib:hprof=help\n -agentpath:<nombre_ruta_acceso>[=<opciones>]\n cargar biblioteca de agente nativa con el nombre de la ruta de acceso completa\n -javaagent:<ruta_acceso_jar>[=<opciones>]\n cargar agente de lenguaje de programaci\u00F3n Java, v\u00E9ase java.lang.instrument\n -splash:<ruta_acceso_imagen>\n mostrar una pantalla de presentaci\u00F3n con la imagen especificada\nConsulte http://www.oracle.com/technetwork/java/javase/documentation/index.html para obtener m\u00E1s informaci\u00F3n.
+java.launcher.opt.footer =\ -cp <ruta de b\u00FAsqueda de clases de los directorios y los archivos zip/jar>\n -classpath <ruta de b\u00FAsqueda de clases de los directorios y los archivos zip/jar>\n Lista separada por {0} de directorios, archivos JAR\n y archivos ZIP para buscar archivos de clase.\n -mp <ruta de m\u00F3dulo>\n -modulepath <ruta de m\u00F3dulo>...\n Lista de directorios separados por {0}, cada directorio\n es un directorio de m\u00F3dulos.\n -upgrademodulepath <ruta de m\u00F3dulo>...\n Lista de directorios separados por {0}, cada directorio\n es un directorio de m\u00F3dulos que sustituye a los m\u00F3dulos\n actualizables en la imagen de tiempo de ejecuci\u00F3n\n -m <nombre_m\u00F3dulo> | <nombre_m\u00F3dulo>/<clase_principal>\n m\u00F3dulo principal o inicial que resolver\n -addmods <nombre_m\u00F3dulo>[,<nombre_m\u00F3dulo>...]\n m\u00F3dulos ra\u00EDz que resolver, adem\u00E1s del m\u00F3dulo inicial\n -limitmods <nombre_m\u00F3dulo>[,<nombre_m\u00F3dulo>...]\n limita el universo de los m\u00F3dulos observables\n -listmods[:<nombre_m\u00F3dulo>[,<nombre_m\u00F3dulo>...]]\n muestra los m\u00F3dulos observables y sale\n -D<nombre>=<valor>\n define una propiedad del sistema\n -verbose:[class|gc|jni]\n activa la salida verbose\n -version imprime la versi\u00F3n del producto y sale\n -showversion imprime la versi\u00F3n del producto y sale\n -? -help imprime este mensaje de ayuda\n -X imprime la ayuda de opciones no est\u00E1ndar\n -ea[:<nombre_paquete>...|:<nombre_clase>]\n -enableassertions[:<nombre_paquete>...|:<nombre_clase>]\n activar afirmaciones con la granularidad especificada\n -da[:<nombre_paquete>...|:<nombre_clase>]\n -disableassertions[:<nombre_paquete>...|:<nombre_clase>]\n desactivar afirmaciones con la granularidad especificada\n -esa | -enablesystemassertions\n activar afirmaciones del sistema\n -dsa | -disablesystemassertions\n desactivar afirmaciones del sistema\n -agentlib:<nombre_bib>[=<opciones>]\n cargar biblioteca de agentes nativos <nombre_bib>, p. ej,. -agentlib:jdwp\n ver tambi\u00E9n -agentlib:jdwp=help\n -agentpath:<nombre_ruta>[=<opciones>]\n cargar biblioteca de agentes nativos por ruta completa\n -javaagent:<ruta_jar>[=<opciones>]\n cargar agente de lenguaje de programaci\u00F3n Java, ver java.lang.instrument\n -splash:<ruta_imagen>\n mostrar pantalla de bienvenida con la imagen especificada\n @<ruta_archivo> leer opciones del archivo especificado\n
+See http://www.oracle.com/technetwork/java/javase/documentation/index.html para obtener m\u00E1s informaci\u00F3n.
# Translators please note do not translate the options themselves
-java.launcher.X.usage=\ -Xmixed ejecuci\u00F3n de modo mixto (por defecto)\n -Xint s\u00F3lo ejecuci\u00F3n de modo interpretado\n -Xbootclasspath:<directorios y archivos zip/jar separados por {0}>\n definir la ruta de acceso de b\u00FAsqueda para los recursos y clases de inicializaci\u00F3n de datos\n -Xbootclasspath/a:<directorios y archivos zip/jar separados por {0}>\n agregar al final de la ruta de acceso de la clase de inicializaci\u00F3n de datos\n -Xbootclasspath/p:<directorios y archivos zip/jar separados por {0}>\n anteponer a la ruta de acceso de la clase de inicializaci\u00F3n de datos\n -Xdiag mostrar mensajes de diagn\u00F3stico adicionales\n -Xnoclassgc desactivar la recolecci\u00F3n de basura de clases\n -Xincgc activar la recolecci\u00F3n de basura de clases\n -Xloggc:<archivo> registrar el estado de GC en un archivo con registros de hora\n -Xbatch desactivar compilaci\u00F3n en segundo plano\n -Xms<tama\u00F1o> definir tama\u00F1o de pila Java inicial\n -Xmx<tama\u00F1o> definir tama\u00F1o de pila Java m\u00E1ximo\n -Xss<tama\u00F1o> definir tama\u00F1o de la pila del thread de Java\n -Xprof datos de salida de creaci\u00F3n de perfil de CPU\n -Xfuture activar las comprobaciones m\u00E1s estrictas, anticip\u00E1ndose al futuro valor por defecto\n -Xrs reducir el uso de se\u00F1ales de sistema operativo por parte de Java/VM (consulte la documentaci\u00F3n)\n -Xcheck:jni realizar comprobaciones adicionales para las funciones de JNI\n -Xshare:off no intentar usar datos de clase compartidos\n -Xshare:auto usar datos de clase compartidos si es posible (valor por defecto)\n -Xshare:on es obligatorio el uso de datos de clase compartidos, de lo contrario se emitir\u00E1 un fallo.\n -XshowSettings mostrar todos los valores y continuar\n -XshowSettings:all\n mostrar todos los valores y continuar\n -XshowSettings:vm mostrar todos los valores de la VM y continuar\n -XshowSettings:properties\n mostrar todos los valores de las propiedades y continuar\n -XshowSettings:locale\n mostrar todos los valores relacionados con la configuraci\u00F3n regional y continuar\n\nLas opciones -X no son est\u00E1ndar, por lo que podr\u00EDan cambiarse sin previo aviso.\n
+java.launcher.X.usage=\ -Xmixed ejecuci\u00F3n de modo mixto (por defecto)\n -Xint solo ejecuci\u00F3n de modo interpretado\n -Xbootclasspath/a:<directorios y archivos zip/jar separados por {0}>\n agregar al final de la ruta de la clase de inicializaci\u00F3n de datos\n -Xdiag mostrar mensajes de diagn\u00F3stico adicionales\n -Xdiag:resolver mostrar mensajes de diagn\u00F3stico de resoluci\u00F3n\n -Xnoclassgc desactivar la recopilaci\u00F3n de basura de clases\n -Xincgc activar la recopilaci\u00F3n de basura de clases\n -Xloggc:<archivo> registrar el estado de GC en un archivo con registros de hora\n -Xbatch desactivar compilaci\u00F3n en segundo plano\n -Xms<tama\u00F1o> definir tama\u00F1o de pila Java inicial\n -Xmx<tama\u00F1o> definir tama\u00F1o de pila Java m\u00E1ximo\n -Xss<tama\u00F1o> definir tama\u00F1o de la pila del thread de Java\n -Xfuture activar las comprobaciones m\u00E1s estrictas, anticip\u00E1ndose al futuro valor por defecto\n -Xrs reducir el uso de se\u00F1ales de sistema operativo por parte de Java/VM (consulte la documentaci\u00F3n)\n -Xcheck:jni realizar comprobaciones adicionales para las funciones de JNI\n -Xshare:off no intentar usar datos de clase compartidos\n -Xshare:auto usar datos de clase compartidos si es posible (valor por defecto)\n -Xshare:on es obligatorio el uso de datos de clase compartidos, de lo contrario se emitir\u00E1 un fallo.\n -XshowSettings mostrar todos los valores y continuar\n -XshowSettings:all\n mostrar todos los valores y continuar\n -XshowSettings:vm mostrar todos los valores de la VM y continuar\n -XshowSettings:properties\n mostrar todos los valores de las propiedades y continuar\n -XshowSettings:locale\n mostrar todos los valores relacionados con la configuraci\u00F3n regional y continuar\n -XaddReads:<m\u00F3dulo>=<otros-m\u00F3dulos>(,<otros-m\u00F3dulos>)*\n <m\u00F3dulo> lee otros m\u00F3dulos,\n independientemente de su declaraci\u00F3n\n -XaddExports:<m\u00F3dulo>/<paquete>=<otros-m\u00F3dulos>(,<otros-m\u00F3dulos>)*\n <m\u00F3dulo> exporta <paquete> a otros m\u00F3dulos,\n independientemente de su declaraci\u00F3n\n -Xpatch:<m\u00F3dulo>=<archivo>({0}<archivo>)*\n Sustituye o aumenta un m\u00F3dulo con clases y recursos\n en directorios o archivos JAR\n -Xdisable-@files desactiva la ampliaci\u00F3n de archivos de argumentos\n\nLas opciones -X no son est\u00E1ndar, por lo que podr\u00EDan cambiarse sin previo aviso.\n
# Translators please note do not translate the options themselves
java.launcher.X.macosx.usage=\nLas siguientes opciones son espec\u00EDficas para Mac OS X:\n -XstartOnFirstThread\n ejecuta el m\u00E9todo main() del primer thread (AppKit)\n -Xdock:name=<nombre de aplicaci\u00F3n>"\n sustituye al nombre por defecto de la aplicaci\u00F3n que se muestra en el Dock\n -Xdock:icon=<ruta de acceso a archivo de icono>\n sustituye al icono por defecto que se muestra en el Dock\n\n
@@ -52,3 +53,5 @@
java.launcher.jar.error3=no hay ning\u00FAn atributo de manifiesto principal en {0}
java.launcher.init.error=error de inicializaci\u00F3n
java.launcher.javafx.error1=Error: el m\u00E9todo launchApplication de JavaFX tiene una firma que no es correcta.\\nSe debe declarar est\u00E1tico y devolver un valor de tipo nulo
+java.launcher.module.error1=el m\u00F3dulo {0} no tiene ning\u00FAn atributo MainClass, utilice -m <m\u00F3dulo>/<clase-principal>
+java.launcher.module.error2=Error: no se ha encontrado o cargado la clase principal {0} en el m\u00F3dulo {1}
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_fr.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_fr.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
#
# Translators please note do not translate the options themselves
-java.launcher.opt.header = Syntaxe : {0} [-options] class [args...]\n (pour l''ex\u00E9cution d''une classe)\n ou {0} [-options] -jar jarfile [args...]\n (pour l''ex\u00E9cution d''un fichier JAR)\no\u00F9 les options comprennent :\n
+java.launcher.opt.header = Syntaxe : {0} [options] class [args...]\n (pour l''ex\u00E9cution d''une classe)\n ou {0} [options] -jar jarfile [args...]\n (pour l''ex\u00E9cution d''un fichier JAR)\n ou {0} [-options] -mp <modulepath> -m <modulename> | <modulename>/<mainclass>\n (pour l''ex\u00E9cution de la classe principale dans un module)\no\u00F9 les options incluent :\n
java.launcher.opt.datamodel =\ -d{0}\t utilisez le mod\u00E8le de donn\u00E9es {0} bits s''il est disponible\n
java.launcher.opt.vmselect =\ {0}\t pour s\u00E9lectionner la machine virtuelle "{1}"\n
@@ -34,10 +34,11 @@
java.launcher.ergo.message2 =\ car vous ex\u00E9cutez une machine de classe de serveur.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n -classpath <class search path of directories and zip/jar files>\n Liste de r\u00E9pertoires, d''archives JAR et\n d''archives ZIP s\u00E9par\u00E9s par des {0}, dans laquelle rechercher les fichiers de classe.\n -D<name>=<value>\n d\u00E9finition d''une propri\u00E9t\u00E9 syst\u00E8me\n -verbose:[class|gc|jni]\n activation de la sortie en mode verbose\n -version impression de la version du produit et fin de l''op\u00E9ration\n -version:<value>\n ex\u00E9cution de la version sp\u00E9cifi\u00E9e obligatoire\n -showversion impression de la version du produit et poursuite de l''op\u00E9ration\n -jre-restrict-search | -no-jre-restrict-search\n inclusion/exclusion des environnements JRE priv\u00E9s de l''utilisateur dans la recherche de version\n -? -help impression du message d''aide\n -X impression de l''aide sur les options non standard\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n activation des assertions avec la granularit\u00E9 sp\u00E9cifi\u00E9e\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n d\u00E9sactivation des assertions avec la granularit\u00E9 sp\u00E9cifi\u00E9e\n -esa | -enablesystemassertions\n activation des assertions syst\u00E8me\n -dsa | -disablesystemassertions\n d\u00E9sactivation des assertions syst\u00E8me\n -agentlib:<libname>[=<options>]\n chargement de la biblioth\u00E8que d''agent natif <libname>, par exemple -agentlib:hprof\n voir \u00E9galement, -agentlib:jdwp=help et -agentlib:hprof=help\n -agentpath:<pathname>[=<options>]\n chargement de la biblioth\u00E8que d''agent natif via le chemin d''acc\u00E8s complet\n -javaagent:<jarpath>[=<options>]\n chargement de l''agent du langage de programmation Java, voir java.lang.instrument\n -splash:<imagepath>\n affichage de l''\u00E9cran d''accueil avec l''image sp\u00E9cifi\u00E9e\nVoir http://www.oracle.com/technetwork/java/javase/documentation/index.html pour plus de d\u00E9tails.
+java.launcher.opt.footer =\ -cp <chemin de recherche de classe de r\u00E9pertoire et de fichiers ZIP/JAR>\n -classpath <chemin de recherche de classe de r\u00E9pertoire et de fichiers ZIP/JAR>\n Liste de r\u00E9pertoires, d''archives JAR et\n d''archives ZIP s\u00E9par\u00E9s par des {0}, dans laquelle rechercher des fichiers de classe.\n -mp <chemin de module>\n -modulepath <chemin de module>...\n Liste de r\u00E9pertoires s\u00E9par\u00E9s par des {0}, chaque r\u00E9pertoire\n est un r\u00E9pertoire de modules.\n -upgrademodulepath <chemin de module>...\n Liste de r\u00E9pertoires s\u00E9par\u00E9s par des {0}, chaque r\u00E9pertoire\n est un r\u00E9pertoire de modules qui remplace des modules\n pouvant \u00EAtre mis \u00E0 niveau dans l''image d''ex\u00E9cution\n -m <modulename> | <modulename>/<mainclass>\n modules racines \u00E0 r\u00E9soudre en plus du module initial\n -addmods <modulename>[,<modulename>...]\n modules racines \u00E0 r\u00E9soudre en plus du module initial\n -limitmods <modulename>[,<modulename>...]\n limitation de l''univers de modules observables\n -listmods[:<modulename>[,<modulename>...]]\n \u00E9num\u00E9ration des modules observables et fin de l''op\u00E9ration\n -D<name>=<value>\n d\u00E9finition d''une propri\u00E9t\u00E9 syst\u00E8me\n -verbose:[class|gc|jni]\n activation de la sortie en mode verbose\n -version impression de la version du produit et fin de l''op\u00E9ration\n -showversion impression de la version du produit et poursuite de l''op\u00E9ration\n -? -help impression du message d''aide\n -X impression de l''aide sur les options non standard\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n activation des assertions avec la granularit\u00E9* sp\u00E9cifi\u00E9e\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n d\u00E9sactivation des assertions avec la granularit\u00E9 sp\u00E9cifi\u00E9e\n -esa | -enablesystemassertions\n activation des assertions syst\u00E8me\n -dsa | -disablesystemassertions\n d\u00E9sactivation des assertions syst\u00E8me\n -agentlib:<libname>[=<options>]\n chargement de la biblioth\u00E8que d''agent natif <libname>, par exemple -agentlib:jdwp\n voir aussi, -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n chargement de la biblioth\u00E8que d''agent natif via le chemin d''acc\u00E8s complet\n -javaagent:<jarpath>[=<options>]\n chargement de l''agent du langage de programmation Java, voir java.lang.instrument\n -splash:<imagepath>\n affichage de l''\u00E9cran d''accueil avec l''image indiqu\u00E9e\n @<filepath> lire les options \u00E0 partir du fichier indiqu\u00E9\n
+See http://www.oracle.com/technetwork/java/javase/documentation/index.html pour plus de d\u00E9tails.
# Translators please note do not translate the options themselves
-java.launcher.X.usage=\ -Xmixed ex\u00E9cution en mode mixte (valeur par d\u00E9faut)\n -Xint ex\u00E9cution en mode interpr\u00E9t\u00E9 uniquement\n -Xbootclasspath:<directories and zip/jar files separated by {0}>\n d\u00E9finition du chemin de recherche pour les ressources et classes bootstrap\n -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n ajout \u00E0 la fin du chemin de classe bootstrap\n -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n ajout au d\u00E9but du chemin de classe bootstrap\n -Xdiag affichage de messages de diagnostic suppl\u00E9mentaires\n -Xnoclassgc d\u00E9sactivation de l''op\u00E9ration de ramasse-miette (garbage collection) de la classe\n -Xincgc activation de l''op\u00E9ration de ramasse-miette (garbage collection) incr\u00E9mentielle\n -Xloggc:<file> journalisation du statut de l''op\u00E9ration de ramasse-miette (garbage collection) dans un fichier avec horodatages\n -Xbatch d\u00E9sactivation de la compilation en arri\u00E8re-plan\n -Xms<size> d\u00E9finition de la taille initiale des portions de m\u00E9moire Java\n -Xmx<size> d\u00E9finition de la taille maximale des portions de m\u00E9moire Java\n -Xss<size> d\u00E9finition de la taille de pile de thread Java\n -Xprof sortie des donn\u00E9es de profilage de l''unit\u00E9 centrale\n -Xfuture activation des contr\u00F4les les plus stricts en vue d''anticiper la future valeur par d\u00E9faut\n -Xrs r\u00E9duction de l''utilisation des signaux OS par Java/la machine virtuelle (voir documentation)\n -Xcheck:jni ex\u00E9cution de contr\u00F4les suppl\u00E9mentaires pour les fonctions JNI\n -Xshare:off aucune tentative d''utilisation des donn\u00E9es de classe partag\u00E9es\n -Xshare:auto utilisation des donn\u00E9es de classe partag\u00E9es si possible (valeur par d\u00E9faut)\n -Xshare:on utilisation des donn\u00E9es de classe partag\u00E9es obligatoire ou \u00E9chec de l''op\u00E9ration\n -XshowSettings affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n -XshowSettings:all\n affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n -XshowSettings:vm affichage de tous les param\u00E8tres de machine virtuelle et poursuite de l''op\u00E9ration\n -XshowSettings:properties\n affichage de tous les param\u00E8tres de propri\u00E9t\u00E9 et poursuite de l''op\u00E9ration\n -XshowSettings:locale\n affichage de tous les param\u00E8tres d''environnement local et poursuite de l''op\u00E9ration\n\nLes options -X ne sont pas des options standard et peuvent faire l''objet de modifications sans pr\u00E9avis.\n
+java.launcher.X.usage=\ -Xmixed ex\u00E9cution en mode mixte (valeur par d\u00E9faut)\n -Xint ex\u00E9cution en mode interpr\u00E9t\u00E9 uniquement\n -Xbootclasspath/a:<r\u00E9pertoires et fichiers ZIP/JAR s\u00E9par\u00E9s par des {0}>\n ajout \u00E0 la fin du chemin de classe bootstrap\n -Xdiag affichage de messages de diagnostic suppl\u00E9mentaires\n -Xdiag:resolver affichage de messages de diagnostic du r\u00E9solveur\n -Xnoclassgc d\u00E9sactivation du nettoyage de la m\u00E9moire de la classe\n -Xincgc activation du nettoyage de la m\u00E9moire incr\u00E9mentiel\n -Xloggc:<file> journalisation du statut de nettoyage de la m\u00E9moire dans un fichier avec horodatage\n -Xbatch d\u00E9sactivation de la compilation en arri\u00E8re-plan\n -Xms<size> d\u00E9finition de la taille initiale des portions de m\u00E9moire Java\n -Xmx<size> d\u00E9finition de la taille maximale des portions de m\u00E9moire Java\n -Xss<size> d\u00E9finition de la taille de pile de threads Java\n -Xprof sortie des donn\u00E9es de profilage d''UC\n -Xfuture activation des contr\u00F4les les plus stricts en vue d''anticiper la future valeur par d\u00E9faut\n -Xrs r\u00E9duction de l''utilisation des signaux d''OS par Java/la machine virtuelle (voir documentation)\n -Xcheck:jni ex\u00E9cution de contr\u00F4les suppl\u00E9mentaires pour les fonctions JNI\n -Xshare:off aucune tentative d''utilisation des donn\u00E9es de classe partag\u00E9e\n -Xshare:auto utilisation des donn\u00E9es de classe partag\u00E9e si possible (valeur par d\u00E9faut)\n -Xshare:on utilisation des donn\u00E9es de classe partag\u00E9e obligatoire ou \u00E9chec de l''op\u00E9ration\n -XshowSettings affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n -XshowSettings:all\n affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n -XshowSettings:vm affichage de tous les param\u00E8tres de machine virtuelle et poursuite de l''op\u00E9ration\n -XshowSettings:properties\n affichage de tous les param\u00E8tres de propri\u00E9t\u00E9 et poursuite de l''op\u00E9ration\n -XshowSettings:locale\n affichage de tous les param\u00E8tres d''environnement local et poursuite de l''op\u00E9ration\n -XaddReads:<module>=<other-module>(,<other-module>)*\n <module> lecture de tous les modules,\n quelle que soit la d\u00E9claration de module\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n <module> exporte <package> vers d''autres modules,\n quelle que soit la d\u00E9claration de module\n -Xpatch:<module>=<file>({0}<file>)*\n Remplacement ou augmentation d''un module avec des classes et des ressources\n dans des fichiers ou r\u00E9pertoires JAR\n -Xdisable-@files d\u00E9sactivation d''autres d\u00E9veloppements de fichier d''argument\n\nLes options -X ne sont pas standard et sont susceptibles de modification sans pr\u00E9avis.\n
# Translators please note do not translate the options themselves
java.launcher.X.macosx.usage=\nLes options suivantes sont propres \u00E0 Mac OS X :\n -XstartOnFirstThread\n ex\u00E9cute la m\u00E9thode main() sur le premier thread (AppKit)\n -Xdock:name=<application name>"\n remplace le nom d'application par d\u00E9faut affich\u00E9 dans l'ancrage\n -Xdock:icon=<path to icon file>\n remplace l'ic\u00F4ne par d\u00E9faut affich\u00E9e dans l'ancrage\n\n
@@ -52,3 +53,5 @@
java.launcher.jar.error3=aucun attribut manifest principal dans {0}
java.launcher.init.error=erreur d'initialisation
java.launcher.javafx.error1=Erreur : la signature de la m\u00E9thode launchApplication JavaFX est incorrecte, la\nm\u00E9thode doit \u00EAtre d\u00E9clar\u00E9e statique et renvoyer une valeur de type void
+java.launcher.module.error1=le module {0} n''a pas d''attribut MainClass, utilisez -m <module>/<main-class>
+java.launcher.module.error2=Erreur : impossible de trouver ou charger la classe principale {0} dans le module {1}
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_it.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_it.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
#
# Translators please note do not translate the options themselves
-java.launcher.opt.header = Uso: {0} [-opzioni] class [argomenti...]\n (per eseguire una classe)\n oppure {0} [-opzioni] -jar filejar [argomenti...]\n (per eseguire un file jar)\ndove le opzioni sono:\n
+java.launcher.opt.header = Uso: {0} [options] class [args...]\n (per eseguire una classe)\n oppure {0} [options] -jar jarfile [args...]\n (per eseguire un file jar)\n oppure {0} [-options] -mp <modulepath> -m <modulename> | <modulename>/<mainclass>\n (per eseguire la classe principale in un modulo)\nin cui options include:\n
java.launcher.opt.datamodel =\ -d{0}\t usare un modello di dati {0}-bit se disponibile\n
java.launcher.opt.vmselect =\ {0}\t per selezionare la VM "{1}"\n
@@ -34,10 +34,11 @@
java.launcher.ergo.message2 =\ perch\u00E9 si utilizza un computer di classe server.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <classpath di ricerca di directory e file zip/jar>\n -classpath <classpath di ricerca di directory e file zip/jar>\n Una lista separata da {0} di directory, archivi JAR,\n e archivi ZIP utilizzata per la ricerca di file di classe.\n -D<nome>=<valore>\n imposta una propriet\u00E0 di sistema\n -verbose:[class|gc|jni]\n abilita l''output descrittivo\n -version stampa la versione del prodotto ed esce\n -version:<valore>\n richiede l''esecuzione della versione specificata\n -showversion stampa la versione del prodotto e continua\n -jre-restrict-search | -no-jre-restrict-search\n include/esclude gli ambienti JRE privati dell''utente nella ricerca della versione\n -? -help stampa questo messaggio della Guida\n -X stampa la Guida sulle opzioni non standard\n -ea[:<nomepackage>...|:<nomeclasse>]\n -enableassertions[:<nomepackage>...|:<nomeclasse>]\n abilita le asserzioni con la granularit\u00E0 specificata\n -da[:<nomepackage>...|:<nomeclasse>]\n -disableassertions[:<nomepackage>...|:<nomeclasse>]\n disabilita le asserzioni con la granularit\u00E0 specificata\n -esa | -enablesystemassertions\n abilita le asserzioni di sistema\n -dsa | -disablesystemassertions\n disabilita le asserzioni di sistema\n -agentlib:<nomelib>[=<opzioni>]\n carica la libreria agenti nativa <nomelib>, ad esempio -agentlib:hprof\n vedere anche, -agentlib:jdwp=help and -agentlib:hprof=help\n -agentpath:<nomepercorso>[=<opzioni>]\n carica la libreria agenti nativa con il percorso completo\n -javaagent:<percorsojar>[=<opzioni>]\n carica l''agente del linguaggio di programmazione Java. Vedere java.lang.instrument\n -splash:<percorsoimmagine>\n mostra la schermata iniziale con l''immagine specificata\nPer ulteriori dettagli, vedere http://www.oracle.com/technetwork/java/javase/documentation/index.html.
+java.launcher.opt.footer =\ -cp <classpath di ricerca di directory e file zip/jar>\n -classpath <classpath di ricerca di directory e file zip/jar>\n Una lista separata da {0} di directory, archivi JAR\n e ZIP utilizzata per la ricerca di file di classe.\n -mp <percorsomodulo>\n -modulepath <percorsomodulo>...\n Una lista separata da {0} di directory; ciascuna directory\n \u00E8 una directory di moduli.\n -upgrademodulepath <percorso modulo>...\n Una lista separata da {0} di directory; ciascuna directory\n \u00E8 una directory dei moduli che sostituiscono i moduli\n aggiornabili nell''immagine in fase di esecuzione\n -m <nomemodulo>| <nomemodulo>/<classeprincipale>\n il modulo iniziale o principale da risolvere\n -addmods <nomemodulo>[,<nomemodulo>...]\n moduli root da risolvere in aggiunta al modulo iniziale\n -limitmods <nomemodulo>[,<nomemodulo>...]\n limita l''universe dei moduli osservabili\n -listmods[:<nomemodulo>[,<nomemodulo>...]]\n elenca i moduli osservabili ed esce\n -D<nome>=<valore>\n imposta una propriet\u00E0 di sistema\n -verbose:[class|gc|jni]\n abilita l''output descrittivo\n -version stampa la versione del prodotto ed esce\n -showversion stampa la versione del prodotto e continua\n -? -help stampa questo messaggio della Guida\n -X stampa la Guida sulle opzioni non standard\n -ea[:<nomepackage>...|:<nomeclasse>]\n -enableassertions[:<nomepackage>...|:<nomeclasse>]\n abilita le asserzioni con la granularit\u00E0 specificata\n -da[:<nomepackage>...|:<nomeclasse>]\n -disableassertions[:<nomepackage>...|:<nomeclasse>]\n disabilita le asserzioni con la granularit\u00E0 specificata\n -esa | -enablesystemassertions\n abilita le asserzioni di sistema\n -dsa | -disablesystemassertions\n disabilita le asserzioni di sistema\n -agentlib:<nomelibreria>[=<opzioni>]\n load native agent library <nomelibreria>, ad esempio -agentlib:jdwp\n vedere anche -agentlib:jdwp=help\n -agentpath:<nomepercorso>[=<opzioni>]\n carica la libreria agenti nativa con il percorso completo\n -javaagent:<percorsojar>[=<opzioni>]\n carica l''agente del linguaggio di programmazione Java. Vedere java.lang.instrument\n -splash:<percorsoimmagine>\n mostra la schermata iniziale con l''immagine specificata\n @<percorsofile> legge le opzioni dal file specificato\n
+See Per ulteriori dettagli, vedere http://www.oracle.com/technetwork/java/javase/documentation/index.html.
# Translators please note do not translate the options themselves
-java.launcher.X.usage=\ -Xmixed esecuzione in modalit\u00E0 mista (impostazione predefinita)\n -Xint esecuzione solo in modalit\u00E0 convertita\n -Xbootclasspath:<directory e file zip/jar separati da {0}>\n imposta il percorso di ricerca per le classi e le risorse di bootstrap\n -Xbootclasspath/a:<directory e file zip/jar separati da {0}>\n aggiunge alla fine del classpath di bootstrap\n -Xbootclasspath/p:<directory e file zip/jar separati da {0}>\n antepone al classpath di bootstrap\n -Xdiag mostra messaggi di diagnostica aggiuntivi\n -Xnoclassgc disabilita la garbage collection della classe\n -Xincgc abilita la garbage collection incrementale\n -Xloggc:<file> registra lo stato GC in un file di log con indicatori orari\n -Xbatch disabilita la compilazione in background\n -Xms<dimensione> imposta la dimensione heap Java iniziale\n -Xmx<dimensione> imposta la dimensione heap Java massima\n -Xss<dimensione> imposta la dimensione dello stack di thread Java\n -Xprof visualizza i dati di profilo della CPU\n -Xfuture abilita i controlli pi\u00F9 limitativi anticipando le impostazioni predefinite future\n -Xrs riduce l''uso di segnali del sistema operativo da Java/VM (vedere la documentazione)\n -Xcheck:jni esegue controlli aggiuntivi per le funzioni JNI\n -Xshare:off non tenta di utilizzare i dati della classe condivisi\n -Xshare:auto utilizza i dati di classe condivisi se possibile (impostazione predefinita)\n -Xshare:on richiede l''uso dei dati di classe condivisi, altrimenti l''esecuzione non riesce.\n -XshowSettings mostra tutte le impostazioni e continua\n -XshowSettings:all\n mostra tutte le impostazioni e continua\n -XshowSettings:vm mostra tutte le impostazioni correlate alla VM e continua\n -XshowSettings:properties\n mostra tutte le impostazioni delle propriet\u00E0 e continua\n -XshowSettings:locale\n mostra tutte le impostazioni correlate alle impostazioni nazionali e continua\n\nLe opzioni -X non sono opzioni standard e sono soggette a modifiche senza preavviso.\n
+java.launcher.X.usage=\ -Xmixed esecuzione in modalit\u00E0 mista (impostazione predefinita)\n -Xint esecuzione solo in modalit\u00E0 convertita\n -Xbootclasspath/a:<directory e file zip/jar separati da {0}>\n aggiunge alla fine del classpath di bootstrap\n -Xdiag mostra messaggi di diagnostica aggiuntivi\n -Xdiag:resolver mostra i messaggi di diagnostica del resolver\n -Xnoclassgc disabilita la garbage collection della classe\n -Xincgc abilita la garbage collection incrementale\n -Xloggc:<file> registra lo stato GC in un file con indicatori orari\n -Xbatch disabilita la compilazione in background\n -Xms<size> imposta la dimensione heap Java iniziale\n -Xmx<size> imposta la dimensione heap Java massima\n -Xss<size> imposta la dimensione dello stack di thread Java\n -Xprof visualizza i dati di profilo della CPU\n -Xfuture abilita i controlli pi\u00F9 limitativi anticipando le impostazioni predefinite future\n -Xrs riduce l''uso di segnali del sistema operativo da Java/VM (vedere la documentazione)\n -Xcheck:jni esegue controlli aggiuntivi per le funzioni JNI\n -Xshare:off non tenta di utilizzare i dati della classe condivisi\n -Xshare:auto utilizza i dati di classe condivisi se possibile (impostazione predefinita)\n -Xshare:on richiede l''uso dei dati di classe condivisi, altrimenti l''esecuzione non riesce.\n -XshowSettings mostra tutte le impostazioni e continua\n -XshowSettings:all\n mostra tutte le impostazioni e continua\n -XshowSettings:vm mostra tutte le impostazioni correlate alla VM e continua\n -XshowSettings:properties\n mostra tutte le impostazioni delle propriet\u00E0 e continua\n -XshowSettings:locale\n mostra tutte le impostazioni correlate alle impostazioni nazionali e continua\n -XaddReads:<module>=<other-module>(,<other-module>)*\n <module> legge altri moduli,\n indipendentemente dalla dichiarazione del modulo\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n <module> esporta il <package> in altri moduli,\n indipendentemente dalla dichiarazione del modulo\n -Xpatch:<module>=<file>({0}<file>)*\n sostituisce o migliora un modulo con classi e risorse\n in file JAR o directory\n -Xdisable-@files disabilita l''ulteriore espansione del file di argomenti\n\nLe opzioni -X non sono opzioni standard e sono soggette a modifiche senza preavviso.\n
# Translators please note do not translate the options themselves
java.launcher.X.macosx.usage=\nLe opzioni riportate di seguito sono specifiche del sistema operativo Mac OS X:\n -XstartOnFirstThread\n Esegue il metodo main() sul primo thread (AppKit).\n -Xdock:name=<nome applicazione>"\n Sostituisce il nome applicazione predefinito visualizzato nel dock\n -Xdock:icon=<percorso file icona>\n Sostituisce l'icona predefinita visualizzata nel dock\n\n
@@ -52,3 +53,5 @@
java.launcher.jar.error3=nessun attributo manifest principale in {0}
java.launcher.init.error=errore di inizializzazione
java.launcher.javafx.error1=Errore: il metodo JavaFX launchApplication dispone di una firma errata, \nla firma deve essere dichiarata static e restituire un valore di tipo void
+java.launcher.module.error1=il modulo {0} non dispone di un attributo MainClass. Utilizzare -m <module>/<mail-class>
+java.launcher.module.error2=Errore: impossibile trovare o caricare la classe principale {0} nel modulo {1}
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_ja.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_ja.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
#
# Translators please note do not translate the options themselves
-java.launcher.opt.header = \u4F7F\u7528\u65B9\u6CD5: {0} [-options] class [args...]\n (\u30AF\u30E9\u30B9\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\n \u307E\u305F\u306F {0} [-options] -jar jarfile [args...]\n (jar\u30D5\u30A1\u30A4\u30EB\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\noptions\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002\n
+java.launcher.opt.header = \u4F7F\u7528\u65B9\u6CD5: {0} [options] class [args...]\n (\u30AF\u30E9\u30B9\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\n \u307E\u305F\u306F {0} [options] -jar jarfile [args...]\n (jar\u30D5\u30A1\u30A4\u30EB\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\n \u307E\u305F\u306F {0} [-options] -mp <modulepath> -m <modulename> | <modulename>/<mainclass>\n (\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\noptions\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002\n
java.launcher.opt.datamodel =\ -d{0}\t \u4F7F\u7528\u53EF\u80FD\u306A\u5834\u5408\u306F{0}\u30D3\u30C3\u30C8\u306E\u30C7\u30FC\u30BF\u30FB\u30E2\u30C7\u30EB\u3092\u4F7F\u7528\u3059\u308B\n
java.launcher.opt.vmselect =\ {0}\t "{1}" VM\u3092\u9078\u629E\u3059\u308B\u5834\u5408\n
@@ -34,11 +34,13 @@
java.launcher.ergo.message2 =\ \u3053\u308C\u306F\u30B5\u30FC\u30D0\u30FC\u30AF\u30E9\u30B9\u306E\u30DE\u30B7\u30F3\u3067\u5B9F\u884C\u3057\u3066\u3044\u308B\u305F\u3081\u3067\u3059\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB\u306E\u30AF\u30E9\u30B9\u691C\u7D22\u30D1\u30B9>\n -classpath <\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB\u306E\u30AF\u30E9\u30B9\u691C\u7D22\u30D1\u30B9>\n \u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001\n JAR\u30A2\u30FC\u30AB\u30A4\u30D6\u304A\u3088\u3073ZIP\u30A2\u30FC\u30AB\u30A4\u30D6\u306E{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30EA\u30B9\u30C8\u3067\u3059\u3002\n -D<name>=<value>\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8A2D\u5B9A\u3059\u308B\n -verbose:[class|gc|jni]\n \u8A73\u7D30\u306A\u51FA\u529B\u3092\u884C\u3046\n -version \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u3066\u7D42\u4E86\u3059\u308B\n -version:<value>\n \u6307\u5B9A\u3057\u305F\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u5B9F\u884C\u306B\u5FC5\u9808\u306B\u3059\u308B\n -showversion \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u3066\u7D9A\u884C\u3059\u308B\n -jre-restrict-search | -no-jre-restrict-search\n \u30E6\u30FC\u30B6\u30FC\u306E\u30D7\u30E9\u30A4\u30D9\u30FC\u30C8JRE\u3092\u30D0\u30FC\u30B8\u30E7\u30F3\u691C\u7D22\u306B\u542B\u3081\u308B/\u9664\u5916\u3059\u308B\n -? -help \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B\n -X \u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u95A2\u3059\u308B\u30D8\u30EB\u30D7\u3092\u51FA\u529B\u3059\u308B\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \u6307\u5B9A\u3057\u305F\u7C92\u5EA6\u3067\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \u6307\u5B9A\u3057\u305F\u7C92\u5EA6\u3067\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n -esa | -enablesystemassertions\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\n -dsa | -disablesystemassertions\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n -agentlib:<libname>[=<options>]\n \u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30E9\u30A4\u30D6\u30E9\u30EA<libname>\u3092\u30ED\u30FC\u30C9\u3059\u308B\u3002\u4F8B: -agentlib:hprof\n -agentlib:jdwp=help\u3068-agentlib:hprof=help\u3082\u53C2\u7167\n -agentpath:<pathname>[=<options>]\n \u30D5\u30EB\u30D1\u30B9\u540D\u3067\u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u30ED\u30FC\u30C9\u3059\u308B\n -javaagent:<jarpath>[=<options>]\n Java\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u3002java.lang.instrument\u3092\u53C2\u7167\n -splash:<imagepath>\n \u6307\u5B9A\u3057\u305F\u30A4\u30E1\u30FC\u30B8\u3067\u30B9\u30D7\u30E9\u30C3\u30B7\u30E5\u753B\u9762\u3092\u8868\u793A\u3059\u308B\n\u8A73\u7D30\u306Fhttp://www.oracle.com/technetwork/java/javase/documentation/index.html\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n -classpath <class search path of directories and zip/jar files>\n \u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001\n JAR\u30A2\u30FC\u30AB\u30A4\u30D6\u304A\u3088\u3073ZIP\u30A2\u30FC\u30AB\u30A4\u30D6\u306E{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30EA\u30B9\u30C8\u3002\n -mp <module path>\n -modulepath <module path>...\n \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30EA\u30B9\u30C8\u3002\u5404\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\n \u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u3059\u3002\n -upgrademodulepath <module path>...\n \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30EA\u30B9\u30C8\u3002\u5404\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\n \u30E9\u30F3\u30BF\u30A4\u30E0\u30FB\u30A4\u30E1\u30FC\u30B8\u3067\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u7F6E\u63DB\u3059\u308B\n \u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u3059\n -m <modulename> | <modulename>/<mainclass>\n \u89E3\u6C7A\u3059\u308B\u521D\u671F\u307E\u305F\u306F\u30E1\u30A4\u30F3\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\n -addmods <modulename>[,<modulename>...]\n \u521D\u671F\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u52A0\u3048\u3066\u89E3\u6C7A\u3059\u308B\u30EB\u30FC\u30C8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\n -limitmods <modulename>[,<modulename>...]\n \u76E3\u8996\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30E6\u30CB\u30D0\u30FC\u30B9\u3092\u5236\u9650\u3059\u308B\n -listmods[:<modulename>[,<modulename>...]]\n \u76E3\u8996\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u30EA\u30B9\u30C8\u3057\u3066\u7D42\u4E86\u3059\u308B\n -D<name>=<value>\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8A2D\u5B9A\u3059\u308B\n -verbose:[class|gc|jni]\n \u8A73\u7D30\u306A\u51FA\u529B\u3092\u884C\u3046\n -version \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u3066\u7D42\u4E86\u3059\u308B\n -showversion \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u3066\u7D9A\u884C\u3059\u308B\n -? -help \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B\n -X \u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u95A2\u3059\u308B\u30D8\u30EB\u30D7\u3092\u51FA\u529B\u3059\u308B\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \u6307\u5B9A\u3057\u305F\u7C92\u5EA6\u3067\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \u6307\u5B9A\u3057\u305F\u7C92\u5EA6\u3067\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n -esa | -enablesystemassertions\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\n -dsa | -disablesystemassertions\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n -agentlib:<libname>[=<options>]\n \u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30E9\u30A4\u30D6\u30E9\u30EA<libname>\u3092\u30ED\u30FC\u30C9\u3059\u308B\u3002\u4F8B: -agentlib:jdwp\n -agentlib:jdwp=help\u3082\u53C2\u7167\n -agentpath:<pathname>[=<options>]\n \
+\u30D5\u30EB\u30D1\u30B9\u540D\u3067\u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u30ED\u30FC\u30C9\u3059\u308B\n -javaagent:<jarpath>[=<options>]\n Java\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u3002java.lang.instrument\u3092\u53C2\u7167\n -splash:<imagepath>\n \u6307\u5B9A\u3057\u305F\u30A4\u30E1\u30FC\u30B8\u3067\u30B9\u30D7\u30E9\u30C3\u30B7\u30E5\u753B\u9762\u3092\u8868\u793A\u3059\u308B\n @<filepath> \u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u53D6\u308B\n
+See \u8A73\u7D30\u306F\u3001http://www.oracle.com/technetwork/java/javase/documentation/index.html\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
# Translators please note do not translate the options themselves
-java.launcher.X.usage=\ -Xmixed \u6DF7\u5408\u30E2\u30FC\u30C9\u306E\u5B9F\u884C(\u30C7\u30D5\u30A9\u30EB\u30C8)\n -Xint \u30A4\u30F3\u30BF\u30D7\u30EA\u30BF\u30FB\u30E2\u30FC\u30C9\u306E\u5B9F\u884C\u306E\u307F\n -Xbootclasspath:<{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB>\n \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u306E\u30AF\u30E9\u30B9\u3068\u30EA\u30BD\u30FC\u30B9\u306E\u691C\u7D22\u30D1\u30B9\u3092\u8A2D\u5B9A\u3059\u308B\n -Xbootclasspath/a:<{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB>\n \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u306E\u6700\u5F8C\u306B\u8FFD\u52A0\u3059\u308B\n -Xbootclasspath/p:<{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB>\n \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u306E\u524D\u306B\u4ED8\u52A0\u3059\u308B\n -Xdiag \u8FFD\u52A0\u306E\u8A3A\u65AD\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3059\u308B\n -Xnoclassgc \u30AF\u30E9\u30B9\u306E\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n -Xincgc \u5897\u5206\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\n -Xloggc:<file> \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u4ED8\u3044\u305F\u30D5\u30A1\u30A4\u30EB\u306BGC\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u30ED\u30B0\u3092\u8A18\u9332\u3059\u308B\n -Xbatch \u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u306E\u30B3\u30F3\u30D1\u30A4\u30EB\u3092\u7121\u52B9\u306B\u3059\u308B\n -Xms<size> Java\u306E\u521D\u671F\u30D2\u30FC\u30D7\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n -Xmx<size> Java\u306E\u6700\u5927\u30D2\u30FC\u30D7\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n -Xss<size> Java\u306E\u30B9\u30EC\u30C3\u30C9\u30FB\u30B9\u30BF\u30C3\u30AF\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n -Xprof CPU\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u30FB\u30C7\u30FC\u30BF\u3092\u51FA\u529B\u3059\u308B\n -Xfuture \u5C06\u6765\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u898B\u8D8A\u3057\u3066\u3001\u6700\u3082\u53B3\u5BC6\u306A\u30C1\u30A7\u30C3\u30AF\u3092\u6709\u52B9\u306B\u3059\u308B\n -Xrs Java/VM\u306B\u3088\u308BOS\u30B7\u30B0\u30CA\u30EB\u306E\u4F7F\u7528\u3092\u524A\u6E1B\u3059\u308B(\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167)\n -Xcheck:jni JNI\u95A2\u6570\u306B\u5BFE\u3059\u308B\u8FFD\u52A0\u306E\u30C1\u30A7\u30C3\u30AF\u3092\u5B9F\u884C\u3059\u308B\n -Xshare:off \u5171\u6709\u30AF\u30E9\u30B9\u306E\u30C7\u30FC\u30BF\u3092\u4F7F\u7528\u3057\u3088\u3046\u3068\u3057\u306A\u3044\n -Xshare:auto \u53EF\u80FD\u3067\u3042\u308C\u3070\u5171\u6709\u30AF\u30E9\u30B9\u306E\u30C7\u30FC\u30BF\u3092\u4F7F\u7528\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8)\n -Xshare:on \u5171\u6709\u30AF\u30E9\u30B9\u30FB\u30C7\u30FC\u30BF\u306E\u4F7F\u7528\u3092\u5FC5\u9808\u306B\u3057\u3001\u3067\u304D\u306A\u3051\u308C\u3070\u5931\u6557\u3059\u308B\u3002\n -XshowSettings \u3059\u3079\u3066\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n -XshowSettings:all\n \u3059\u3079\u3066\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n -XshowSettings:vm \u3059\u3079\u3066\u306EVM\u95A2\u9023\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n -XshowSettings:properties\n \
-\u3059\u3079\u3066\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n -XshowSettings:locale\n \u3059\u3079\u3066\u306E\u30ED\u30B1\u30FC\u30EB\u95A2\u9023\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n\n-X\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u975E\u6A19\u6E96\u306A\u306E\u3067\u3001\u4E88\u544A\u306A\u304F\u5909\u66F4\u3055\u308C\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002\n
+java.launcher.X.usage=\ -Xmixed \u6DF7\u5408\u30E2\u30FC\u30C9\u306E\u5B9F\u884C(\u30C7\u30D5\u30A9\u30EB\u30C8)\n -Xint \u30A4\u30F3\u30BF\u30D7\u30EA\u30BF\u30FB\u30E2\u30FC\u30C9\u306E\u5B9F\u884C\u306E\u307F\n -Xbootclasspath/a:<{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB>\n \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u306E\u6700\u5F8C\u306B\u8FFD\u52A0\u3059\u308B\n -Xdiag \u8FFD\u52A0\u306E\u8A3A\u65AD\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3059\u308B\n -Xdiag:resolver \u30EA\u30BE\u30EB\u30D0\u8A3A\u65AD\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3059\u308B\n -Xnoclassgc \u30AF\u30E9\u30B9\u306E\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n -Xincgc \u5897\u5206\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\n -Xloggc:<file> \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u4ED8\u3044\u305F\u30D5\u30A1\u30A4\u30EB\u306BGC\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u30ED\u30B0\u3092\u8A18\u9332\u3059\u308B\n -Xbatch \u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u306E\u30B3\u30F3\u30D1\u30A4\u30EB\u3092\u7121\u52B9\u306B\u3059\u308B\n -Xms<size> Java\u306E\u521D\u671F\u30D2\u30FC\u30D7\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n -Xmx<size> Java\u306E\u6700\u5927\u30D2\u30FC\u30D7\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n -Xss<size> Java\u306E\u30B9\u30EC\u30C3\u30C9\u30FB\u30B9\u30BF\u30C3\u30AF\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n -Xprof CPU\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u30FB\u30C7\u30FC\u30BF\u3092\u51FA\u529B\u3059\u308B\n -Xfuture \u5C06\u6765\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u898B\u8D8A\u3057\u3066\u3001\u6700\u3082\u53B3\u5BC6\u306A\u30C1\u30A7\u30C3\u30AF\u3092\u6709\u52B9\u306B\u3059\u308B\n -Xrs Java/VM\u306B\u3088\u308BOS\u30B7\u30B0\u30CA\u30EB\u306E\u4F7F\u7528\u3092\u524A\u6E1B\u3059\u308B(\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167)\n -Xcheck:jni JNI\u95A2\u6570\u306B\u5BFE\u3059\u308B\u8FFD\u52A0\u306E\u30C1\u30A7\u30C3\u30AF\u3092\u5B9F\u884C\u3059\u308B\n -Xshare:off \u5171\u6709\u30AF\u30E9\u30B9\u306E\u30C7\u30FC\u30BF\u3092\u4F7F\u7528\u3057\u3088\u3046\u3068\u3057\u306A\u3044\n -Xshare:auto \u53EF\u80FD\u3067\u3042\u308C\u3070\u5171\u6709\u30AF\u30E9\u30B9\u306E\u30C7\u30FC\u30BF\u3092\u4F7F\u7528\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8)\n -Xshare:on \u5171\u6709\u30AF\u30E9\u30B9\u30FB\u30C7\u30FC\u30BF\u306E\u4F7F\u7528\u3092\u5FC5\u9808\u306B\u3057\u3001\u3067\u304D\u306A\u3051\u308C\u3070\u5931\u6557\u3059\u308B\u3002\n -XshowSettings \u3059\u3079\u3066\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n -XshowSettings:all\n \u3059\u3079\u3066\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n -XshowSettings:vm \u3059\u3079\u3066\u306EVM\u95A2\u9023\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n -XshowSettings:properties\n \u3059\u3079\u3066\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n -XshowSettings:locale\n \u3059\u3079\u3066\u306E\u30ED\u30B1\u30FC\u30EB\u95A2\u9023\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n -XaddReads:<module>=<other-module>(,<other-module>)*\n \u30E2\u30B8\u30E5\u30FC\u30EB\u5BA3\u8A00\u306B\u95A2\u4FC2\u306A\u304F\u3001\n <module>\u306F\u4ED6\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u8AAD\u307F\u53D6\u308B\n \
+-XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n \u30E2\u30B8\u30E5\u30FC\u30EB\u5BA3\u8A00\u306B\u95A2\u4FC2\u306A\u304F\u3001\n <module>\u306F<package>\u3092\u4ED6\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B\n -Xpatch:<module>=<file>({0}<file>)*\n JAR\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30EA\u30BD\u30FC\u30B9\u3067\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\n \u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u307E\u305F\u306F\u62E1\u5F35\u3059\u308B\n -Xdisable-@files \u3055\u3089\u306A\u308B\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u3092\u7121\u52B9\u306B\u3059\u308B\n\n-X\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u975E\u6A19\u6E96\u306A\u306E\u3067\u3001\u4E88\u544A\u306A\u304F\u5909\u66F4\u3055\u308C\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002\n
# Translators please note do not translate the options themselves
java.launcher.X.macosx.usage=\n\u6B21\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306FMac OS X\u56FA\u6709\u3067\u3059\u3002\n -XstartOnFirstThread\n main()\u30E1\u30BD\u30C3\u30C9\u3092\u6700\u521D(AppKit)\u306E\u30B9\u30EC\u30C3\u30C9\u3067\u5B9F\u884C\u3059\u308B\n -Xdock:name=<application name>"\n Dock\u306B\u8868\u793A\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u540D\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n -Xdock:icon=<path to icon file>\n Dock\u306B\u8868\u793A\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30A2\u30A4\u30B3\u30F3\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n\n
@@ -53,3 +55,5 @@
java.launcher.jar.error3={0}\u306B\u30E1\u30A4\u30F3\u30FB\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u5C5E\u6027\u304C\u3042\u308A\u307E\u305B\u3093
java.launcher.init.error=\u521D\u671F\u5316\u30A8\u30E9\u30FC
java.launcher.javafx.error1=\u30A8\u30E9\u30FC: JavaFX launchApplication\u30E1\u30BD\u30C3\u30C9\u306B\u8AA4\u3063\u305F\u30B7\u30B0\u30CD\u30C1\u30E3\u304C\u3042\u308A\u3001\nstatic\u3092\u5BA3\u8A00\u3057\u3066void\u578B\u306E\u5024\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
+java.launcher.module.error1=\u30E2\u30B8\u30E5\u30FC\u30EB{0}\u306BMainClass\u5C5E\u6027\u304C\u3042\u308A\u307E\u305B\u3093\u3002-m <module>/<main-class>\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
+java.launcher.module.error2=\u30A8\u30E9\u30FC: \u30E2\u30B8\u30E5\u30FC\u30EB{1}\u306B\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u3089\u306A\u304B\u3063\u305F\u304B\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_ko.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_ko.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
#
# Translators please note do not translate the options themselves
-java.launcher.opt.header = \uC0AC\uC6A9\uBC95: {0} [-options] class [args...]\n (\uD074\uB798\uC2A4 \uC2E4\uD589)\n \uB610\uB294 {0} [-options] -jar jarfile [args...]\n (jar \uD30C\uC77C \uC2E4\uD589)\n\uC5EC\uAE30\uC11C options\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4.\n
+java.launcher.opt.header = \uC0AC\uC6A9\uBC95: {0} [options] class [args...]\n (\uD074\uB798\uC2A4 \uC2E4\uD589)\n \uB610\uB294 {0} [options] -jar jarfile [args...]\n (jar \uD30C\uC77C \uC2E4\uD589)\n \uB610\uB294 {0} [-options] -mp <modulepath> -m <modulename> | <modulename>/<mainclass>\n (\uBAA8\uB4C8\uC758 \uAE30\uBCF8 \uD074\uB798\uC2A4 \uC2E4\uD589)\n\uC5EC\uAE30\uC11C options\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4.\n
java.launcher.opt.datamodel =\ -d{0}\t \uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uACBD\uC6B0 {0}\uBE44\uD2B8 \uB370\uC774\uD130 \uBAA8\uB378\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.\n
java.launcher.opt.vmselect =\ {0}\t "{1}" VM\uC744 \uC120\uD0DD\uD569\uB2C8\uB2E4.\n
@@ -34,22 +34,26 @@
java.launcher.ergo.message2 =\ \uC11C\uBC84\uAE09 \uC2DC\uC2A4\uD15C\uC5D0\uC11C \uC2E4\uD589 \uC911\uC774\uAE30 \uB54C\uBB38\uC785\uB2C8\uB2E4.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <\uB514\uB809\uD1A0\uB9AC \uBC0F zip/jar \uD30C\uC77C\uC758 \uD074\uB798\uC2A4 \uAC80\uC0C9 \uACBD\uB85C>\n -classpath <\uB514\uB809\uD1A0\uB9AC \uBC0F zip/jar \uD30C\uC77C\uC758 \uD074\uB798\uC2A4 \uAC80\uC0C9 \uACBD\uB85C>\n \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uAC80\uC0C9\uD560 {0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC,\n JAR \uC544\uCE74\uC774\uBE0C \uBC0F ZIP \uC544\uCE74\uC774\uBE0C \uBAA9\uB85D\uC785\uB2C8\uB2E4.\n -D<name>=<value>\n \uC2DC\uC2A4\uD15C \uC18D\uC131\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.\n -verbose:[class|gc|jni]\n \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -version \uC81C\uD488 \uBC84\uC804\uC744 \uC778\uC1C4\uD55C \uD6C4 \uC885\uB8CC\uD569\uB2C8\uB2E4.\n -version:<value>\n \uC2E4\uD589\uD560 \uBC84\uC804\uC744 \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.\n -showversion \uC81C\uD488 \uBC84\uC804\uC744 \uC778\uC1C4\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -jre-restrict-search | -no-jre-restrict-search\n \uBC84\uC804 \uAC80\uC0C9\uC5D0\uC11C \uC0AC\uC6A9\uC790 \uC804\uC6A9 JRE\uB97C \uD3EC\uD568/\uC81C\uC678\uD569\uB2C8\uB2E4.\n -? -help \uC774 \uB3C4\uC6C0\uB9D0 \uBA54\uC2DC\uC9C0\uB97C \uC778\uC1C4\uD569\uB2C8\uB2E4.\n -X \uBE44\uD45C\uC900 \uC635\uC158\uC5D0 \uB300\uD55C \uB3C4\uC6C0\uB9D0\uC744 \uC778\uC1C4\uD569\uB2C8\uB2E4.\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \uC138\uBD84\uC131\uC774 \uC9C0\uC815\uB41C \uAC80\uC99D\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \uC138\uBD84\uC131\uC774 \uC9C0\uC815\uB41C \uAC80\uC99D\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -esa | -enablesystemassertions\n \uC2DC\uC2A4\uD15C \uAC80\uC99D\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -dsa | -disablesystemassertions\n \uC2DC\uC2A4\uD15C \uAC80\uC99D\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -agentlib:<libname>[=<options>]\n <libname> \uACE0\uC720 \uC5D0\uC774\uC804\uD2B8 \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB97C \uB85C\uB4DC\uD569\uB2C8\uB2E4(\uC608: -agentlib:hprof).\n -agentlib:jdwp=help \uBC0F -agentlib:hprof=help\uB3C4 \uCC38\uC870\uD558\uC2ED\uC2DC\uC624.\n -agentpath:<pathname>[=<options>]\n \uC804\uCCB4 \uACBD\uB85C\uBA85\uC744 \uC0AC\uC6A9\uD558\uC5EC \uACE0\uC720 \uC5D0\uC774\uC804\uD2B8 \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB97C \uB85C\uB4DC\uD569\uB2C8\uB2E4.\n -javaagent:<jarpath>[=<options>]\n Java \uD504\uB85C\uADF8\uB798\uBC0D \uC5B8\uC5B4 \uC5D0\uC774\uC804\uD2B8\uB97C \uB85C\uB4DC\uD569\uB2C8\uB2E4. java.lang.instrument\uB97C \uCC38\uC870\uD558\uC2ED\uC2DC\uC624.\n -splash:<imagepath>\n \uC774\uBBF8\uC9C0\uAC00 \uC9C0\uC815\uB41C \uC2A4\uD50C\uB798\uC2DC \uD654\uBA74\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n\uC790\uC138\uD55C \uB0B4\uC6A9\uC740 http://www.oracle.com/technetwork/java/javase/documentation/index.html\uC744 \uCC38\uC870\uD558\uC2ED\uC2DC\uC624.
+java.launcher.opt.footer =\ -cp <\uB514\uB809\uD1A0\uB9AC \uBC0F zip/jar \uD30C\uC77C\uC758 \uD074\uB798\uC2A4 \uAC80\uC0C9 \uACBD\uB85C>\n -classpath <\uB514\uB809\uD1A0\uB9AC \uBC0F zip/jar \uD30C\uC77C\uC758 \uD074\uB798\uC2A4 \uAC80\uC0C9 \uACBD\uB85C>\n \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uAC80\uC0C9\uD560 {0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC,\n JAR \uC544\uCE74\uC774\uBE0C \uBC0F ZIP \uC544\uCE74\uC774\uBE0C \uBAA9\uB85D\uC785\uB2C8\uB2E4.\n -mp <\uBAA8\uB4C8 \uACBD\uB85C>\n -modulepath <\uBAA8\uB4C8 \uACBD\uB85C>...\n {0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D\uC785\uB2C8\uB2E4. \uAC01 \uB514\uB809\uD1A0\uB9AC\uB294\n \uBAA8\uB4C8\uC758 \uB514\uB809\uD1A0\uB9AC\uC785\uB2C8\uB2E4.\n -upgrademodulepath <\uBAA8\uB4C8 \uACBD\uB85C>...\n {0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D\uC785\uB2C8\uB2E4. \uAC01 \uB514\uB809\uD1A0\uB9AC\uB294\n \uBAA8\uB4C8\uC758 \uB514\uB809\uD1A0\uB9AC\uB85C, \uB7F0\uD0C0\uC784 \uC774\uBBF8\uC9C0\uC5D0\uC11C \uC5C5\uADF8\uB808\uC774\uB4DC\n \uAC00\uB2A5\uD55C \uBAA8\uB4C8\uC744 \uB300\uCCB4\uD569\uB2C8\uB2E4.\n -m <modulename> | <modulename>/<mainclass>\n \uBD84\uC11D\uD560 \uCD08\uAE30 \uB610\uB294 \uAE30\uBCF8 \uBAA8\uB4C8\uC785\uB2C8\uB2E4.\n -addmods <modulename>[,<modulename>...]\n \uCD08\uAE30 \uBAA8\uB4C8 \uC678\uC5D0 \uBD84\uC11D\uD560 \uB8E8\uD2B8 \uBAA8\uB4C8\uC785\uB2C8\uB2E4.\n -limitmods <modulename>[,<modulename>...]\n \uAD00\uCC30 \uAC00\uB2A5\uD55C \uBAA8\uB4C8\uC758 \uBC94\uC704\uB97C \uC81C\uD55C\uD569\uB2C8\uB2E4.\n -listmods[:<modulename>[,<modulename>...]]\n \uAD00\uCC30 \uAC00\uB2A5\uD55C \uBAA8\uB4C8\uC744 \uB098\uC5F4\uD55C \uD6C4 \uC885\uB8CC\uD569\uB2C8\uB2E4.\n -D<name>=<value>\n \uC2DC\uC2A4\uD15C \uC18D\uC131\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.\n -verbose:[class|gc|jni]\n \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -version \uC81C\uD488 \uBC84\uC804\uC744 \uC778\uC1C4\uD55C \uD6C4 \uC885\uB8CC\uD569\uB2C8\uB2E4.\n -showversion \uC81C\uD488 \uBC84\uC804\uC744 \uC778\uC1C4\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -? -help \uC774 \uB3C4\uC6C0\uB9D0 \uBA54\uC2DC\uC9C0\uB97C \uC778\uC1C4\uD569\uB2C8\uB2E4.\n -X \uBE44\uD45C\uC900 \uC635\uC158\uC5D0 \uB300\uD55C \uB3C4\uC6C0\uB9D0\uC744 \uC778\uC1C4\uD569\uB2C8\uB2E4.\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \uC138\uBD84\uC131\uC774 \uC9C0\uC815\uB41C \uAC80\uC99D\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \uC138\uBD84\uC131\uC774 \uC9C0\uC815\uB41C \uAC80\uC99D\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -esa | -enablesystemassertions\n \uC2DC\uC2A4\uD15C \uAC80\uC99D\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -dsa | -disablesystemassertions\n \uC2DC\uC2A4\uD15C \uAC80\uC99D\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -agentlib:<libname>[=<options>]\n \uACE0\uC720 \uC5D0\uC774\uC804\uD2B8 \uB77C\uC774\uBE0C\uB7EC\uB9AC <libname>\uC744 \uB85C\uB4DC\uD569\uB2C8\uB2E4(\uC608: -agentlib:jdwp).\n -agentlib:jdwp=help\uB3C4 \uCC38\uC870\uD558\uC2ED\uC2DC\uC624.\n -agentpath:<pathname>[=<options>]\n \uC804\uCCB4 \uACBD\uB85C\uBA85\uC744 \uC0AC\uC6A9\uD558\uC5EC \uACE0\uC720 \uC5D0\uC774\uC804\uD2B8 \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB97C \uB85C\uB4DC\uD569\uB2C8\uB2E4.\n \
+-javaagent:<jarpath>[=<options>]\n Java \uD504\uB85C\uADF8\uB798\uBC0D \uC5B8\uC5B4 \uC5D0\uC774\uC804\uD2B8\uB97C \uB85C\uB4DC\uD569\uB2C8\uB2E4. java.lang.instrument\uB97C \uCC38\uC870\uD558\uC2ED\uC2DC\uC624.\n -splash:<imagepath>\n \uC774\uBBF8\uC9C0\uAC00 \uC9C0\uC815\uB41C \uC2A4\uD50C\uB798\uC2DC \uD654\uBA74\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n @<filepath> \uC9C0\uC815\uB41C \uD30C\uC77C\uC5D0\uC11C \uC635\uC158\uC744 \uC77D\uC2B5\uB2C8\uB2E4.\n
+See \uC790\uC138\uD55C \uB0B4\uC6A9\uC740 http://www.oracle.com/technetwork/java/javase/documentation/index.html\uC744 \uCC38\uC870\uD558\uC2ED\uC2DC\uC624.
# Translators please note do not translate the options themselves
-java.launcher.X.usage=\ -Xmixed \uD63C\uD569 \uBAA8\uB4DC\uB97C \uC2E4\uD589\uD569\uB2C8\uB2E4(\uAE30\uBCF8\uAC12).\n -Xint \uD574\uC11D\uB41C \uBAA8\uB4DC\uB9CC \uC2E4\uD589\uD569\uB2C8\uB2E4.\n -Xbootclasspath:<{0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC \uBC0F zip/jar \uD30C\uC77C>\n \uBD80\uD2B8\uC2A4\uD2B8\uB7A9 \uD074\uB798\uC2A4 \uBC0F \uB9AC\uC18C\uC2A4\uC5D0 \uB300\uD55C \uAC80\uC0C9 \uACBD\uB85C\uB97C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xbootclasspath/a:<{0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC \uBC0F zip/jar \uD30C\uC77C>\n \uBD80\uD2B8\uC2A4\uD2B8\uB7A9 \uD074\uB798\uC2A4 \uACBD\uB85C \uB05D\uC5D0 \uCD94\uAC00\uD569\uB2C8\uB2E4.\n -Xbootclasspath/p:<{0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC \uBC0F zip/jar \uD30C\uC77C>\n \uBD80\uD2B8\uC2A4\uD2B8\uB7A9 \uD074\uB798\uC2A4 \uACBD\uB85C \uC55E\uC5D0 \uCD94\uAC00\uD569\uB2C8\uB2E4.\n -Xdiag \uCD94\uAC00 \uC9C4\uB2E8 \uBA54\uC2DC\uC9C0\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n -Xnoclassgc \uD074\uB798\uC2A4\uC758 \uBD88\uD544\uC694\uD55C \uC815\uBCF4 \uBAA8\uC74C\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xincgc \uC99D\uBD84\uC801\uC778 \uBD88\uD544\uC694\uD55C \uC815\uBCF4 \uBAA8\uC74C\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xloggc:<file> \uC2DC\uAC04 \uAE30\uB85D\uACFC \uD568\uAED8 \uD30C\uC77C\uC5D0 GC \uC0C1\uD0DC\uB97C \uAE30\uB85D\uD569\uB2C8\uB2E4.\n -Xbatch \uBC31\uADF8\uB77C\uC6B4\uB4DC \uCEF4\uD30C\uC77C\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xms<size> \uCD08\uAE30 Java \uD799 \uD06C\uAE30\uB97C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xmx<size> \uCD5C\uB300 Java \uD799 \uD06C\uAE30\uB97C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xss<size> Java \uC2A4\uB808\uB4DC \uC2A4\uD0DD \uD06C\uAE30\uB97C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xprof CPU \uD504\uB85C\uD30C\uC77C \uC791\uC131 \uB370\uC774\uD130\uB97C \uCD9C\uB825\uD569\uB2C8\uB2E4.\n -Xfuture \uBBF8\uB798 \uAE30\uBCF8\uAC12\uC744 \uC608\uCE21\uD558\uC5EC \uAC00\uC7A5 \uC5C4\uACA9\uD55C \uAC80\uC0AC\uB97C \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xrs Java/VM\uC5D0 \uC758\uD55C OS \uC2E0\uD638 \uC0AC\uC6A9\uC744 \uC904\uC785\uB2C8\uB2E4(\uC124\uBA85\uC11C \uCC38\uC870).\n -Xcheck:jni JNI \uD568\uC218\uC5D0 \uB300\uD55C \uCD94\uAC00 \uAC80\uC0AC\uB97C \uC218\uD589\uD569\uB2C8\uB2E4.\n -Xshare:off \uACF5\uC720 \uD074\uB798\uC2A4 \uB370\uC774\uD130 \uC0AC\uC6A9\uC744 \uC2DC\uB3C4\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -Xshare:auto \uAC00\uB2A5\uD55C \uACBD\uC6B0 \uACF5\uC720 \uD074\uB798\uC2A4 \uB370\uC774\uD130\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4(\uAE30\uBCF8\uAC12).\n -Xshare:on \uACF5\uC720 \uD074\uB798\uC2A4 \uB370\uC774\uD130\uB97C \uC0AC\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4. \uADF8\uB807\uC9C0 \uC54A\uC744 \uACBD\uC6B0 \uC2E4\uD328\uD569\uB2C8\uB2E4.\n -XshowSettings \uBAA8\uB4E0 \uC124\uC815\uC744 \uD45C\uC2DC\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -XshowSettings:all\n \uBAA8\uB4E0 \uC124\uC815\uC744 \uD45C\uC2DC\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -XshowSettings:vm \uBAA8\uB4E0 VM \uAD00\uB828 \uC124\uC815\uC744 \uD45C\uC2DC\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -XshowSettings:properties\n \uBAA8\uB4E0 \uC18D\uC131 \uC124\uC815\uC744 \uD45C\uC2DC\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -XshowSettings:locale\n \uBAA8\uB4E0 \uB85C\uCF00\uC77C \uAD00\uB828 \uC124\uC815\uC744 \uD45C\uC2DC\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n\n-X \uC635\uC158\uC740 \uBE44\uD45C\uC900 \uC635\uC158\uC774\uBBC0\uB85C \uD1B5\uC9C0 \uC5C6\uC774 \uBCC0\uACBD\uB420 \uC218 \
-\uC788\uC2B5\uB2C8\uB2E4.\n
+java.launcher.X.usage=\ -Xmixed \uD63C\uD569 \uBAA8\uB4DC\uB97C \uC2E4\uD589\uD569\uB2C8\uB2E4(\uAE30\uBCF8\uAC12).\n -Xint \uD574\uC11D\uB41C \uBAA8\uB4DC\uB9CC \uC2E4\uD589\uD569\uB2C8\uB2E4.\n -Xbootclasspath/a:<{0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC \uBC0F zip/jar \uD30C\uC77C>\n \uBD80\uD2B8\uC2A4\uD2B8\uB7A9 \uD074\uB798\uC2A4 \uACBD\uB85C \uB05D\uC5D0 \uCD94\uAC00\uD569\uB2C8\uB2E4.\n -Xdiag \uCD94\uAC00 \uC9C4\uB2E8 \uBA54\uC2DC\uC9C0\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n -Xdiag:resolver \uBD84\uC11D\uAE30 \uC9C4\uB2E8 \uBA54\uC2DC\uC9C0\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n -Xnoclassgc \uD074\uB798\uC2A4\uC758 \uBD88\uD544\uC694\uD55C \uC815\uBCF4 \uBAA8\uC74C\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xincgc \uC99D\uBD84\uC801\uC778 \uBD88\uD544\uC694\uD55C \uC815\uBCF4 \uBAA8\uC74C\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xloggc:<file> \uC2DC\uAC04 \uAE30\uB85D\uACFC \uD568\uAED8 \uD30C\uC77C\uC5D0 GC \uC0C1\uD0DC\uB97C \uAE30\uB85D\uD569\uB2C8\uB2E4.\n -Xbatch \uBC31\uADF8\uB77C\uC6B4\uB4DC \uCEF4\uD30C\uC77C\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xms<size> \uCD08\uAE30 Java \uD799 \uD06C\uAE30\uB97C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xmx<size> \uCD5C\uB300 Java \uD799 \uD06C\uAE30\uB97C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xss<size> Java \uC2A4\uB808\uB4DC \uC2A4\uD0DD \uD06C\uAE30\uB97C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xprof CPU \uD504\uB85C\uD30C\uC77C \uC791\uC131 \uB370\uC774\uD130\uB97C \uCD9C\uB825\uD569\uB2C8\uB2E4.\n -Xfuture \uBBF8\uB798 \uAE30\uBCF8\uAC12\uC744 \uC608\uCE21\uD558\uC5EC \uAC00\uC7A5 \uC5C4\uACA9\uD55C \uAC80\uC0AC\uB97C \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -Xrs Java/VM\uC5D0 \uC758\uD55C OS \uC2E0\uD638 \uC0AC\uC6A9\uC744 \uC904\uC785\uB2C8\uB2E4(\uC124\uBA85\uC11C \uCC38\uC870).\n -Xcheck:jni JNI \uD568\uC218\uC5D0 \uB300\uD55C \uCD94\uAC00 \uAC80\uC0AC\uB97C \uC218\uD589\uD569\uB2C8\uB2E4.\n -Xshare:off \uACF5\uC720 \uD074\uB798\uC2A4 \uB370\uC774\uD130 \uC0AC\uC6A9\uC744 \uC2DC\uB3C4\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -Xshare:auto \uAC00\uB2A5\uD55C \uACBD\uC6B0 \uACF5\uC720 \uD074\uB798\uC2A4 \uB370\uC774\uD130\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4(\uAE30\uBCF8\uAC12).\n -Xshare:on \uACF5\uC720 \uD074\uB798\uC2A4 \uB370\uC774\uD130\uB97C \uC0AC\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4. \uADF8\uB807\uC9C0 \uC54A\uC744 \uACBD\uC6B0 \uC2E4\uD328\uD569\uB2C8\uB2E4.\n -XshowSettings \uBAA8\uB4E0 \uC124\uC815\uC744 \uD45C\uC2DC\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -XshowSettings:all\n \uBAA8\uB4E0 \uC124\uC815\uC744 \uD45C\uC2DC\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -XshowSettings:vm\n \uBAA8\uB4E0 VM \uAD00\uB828 \uC124\uC815\uC744 \uD45C\uC2DC\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -XshowSettings:properties\n \uBAA8\uB4E0 \uC18D\uC131 \uC124\uC815\uC744 \uD45C\uC2DC\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -XshowSettings:locale\n \uBAA8\uB4E0 \uB85C\uCF00\uC77C \uAD00\uB828 \uC124\uC815\uC744 \uD45C\uC2DC\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -XaddReads:<module>=<other-module>(,<other-module>)*\n <module>\uC740 \uBAA8\uB4C8 \uC120\uC5B8\uC5D0 \uAD00\uACC4\uC5C6\uC774\n \uB2E4\uB978 \uBAA8\uB4C8\uC744 \uC77D\uC2B5\uB2C8\uB2E4.\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n <module>\uC740 \uBAA8\uB4C8 \uC120\uC5B8\uC5D0 \uAD00\uACC4\uC5C6\uC774\n <package>\uB97C \uB2E4\uB978 \uBAA8\uB4C8\uB85C \uC775\uC2A4\uD3EC\uD2B8\uD569\uB2C8\uB2E4.\n \
+-Xpatch:<module>=<file>({0}<file>)*\n JAR \uD30C\uC77C/\uB514\uB809\uD1A0\uB9AC\uC758 \uD074\uB798\uC2A4\uC640 \uB9AC\uC18C\uC2A4\uB85C\n \uBAA8\uB4C8\uC744 \uBB34\uD6A8\uD654\uD558\uAC70\uB098 \uC778\uC218\uD654\uD569\uB2C8\uB2E4.\n -Xdisable-@files \uCD94\uAC00 \uC778\uC218 \uD30C\uC77C \uD655\uC7A5\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n\n-X \uC635\uC158\uC740 \uBE44\uD45C\uC900 \uC635\uC158\uC774\uBBC0\uB85C \uD1B5\uC9C0 \uC5C6\uC774 \uBCC0\uACBD\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4.\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\n\uB2E4\uC74C\uC740 Mac OS X\uC5D0 \uD2B9\uC815\uB41C \uC635\uC158\uC785\uB2C8\uB2E4.\n -XstartOnFirstThread\n \uCCAB\uBC88\uC9F8 (AppKit) \uC2A4\uB808\uB4DC\uC5D0 main() \uBA54\uC18C\uB4DC\uB97C \uC2E4\uD589\uD569\uB2C8\uB2E4.\n -Xdock:name=<application name>"\n \uACE0\uC815\uC73C\uB85C \uD45C\uC2DC\uB41C \uAE30\uBCF8 \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8 \uC774\uB984\uC744 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n -Xdock:icon=<path to icon file>\n \uACE0\uC815\uC73C\uB85C \uD45C\uC2DC\uB41C \uAE30\uBCF8 \uC544\uC774\uCF58\uC744 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n\n
+java.launcher.X.macosx.usage=\n\uB2E4\uC74C\uC740 Mac OS X\uC5D0 \uD2B9\uC815\uB41C \uC635\uC158\uC785\uB2C8\uB2E4.\n -XstartOnFirstThread\n \uCCAB\uBC88\uC9F8 (AppKit) \uC2A4\uB808\uB4DC\uC5D0 main() \uBA54\uC18C\uB4DC\uB97C \uC2E4\uD589\uD569\uB2C8\uB2E4.\n -Xdock:name=<application name>"\n \uACE0\uC815\uC73C\uB85C \uD45C\uC2DC\uB41C \uAE30\uBCF8 \uC560\uD50C\uB9AC\uCF00\uC774\uC158 \uC774\uB984\uC744 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n -Xdock:icon=<path to icon file>\n \uACE0\uC815\uC73C\uB85C \uD45C\uC2DC\uB41C \uAE30\uBCF8 \uC544\uC774\uCF58\uC744 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n\n
java.launcher.cls.error1=\uC624\uB958: \uAE30\uBCF8 \uD074\uB798\uC2A4 {0}\uC744(\uB97C) \uCC3E\uAC70\uB098 \uB85C\uB4DC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
java.launcher.cls.error2=\uC624\uB958: {1} \uD074\uB798\uC2A4\uC5D0\uC11C \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uAC00 {0}\uC774(\uAC00) \uC544\uB2D9\uB2C8\uB2E4. \uB2E4\uC74C \uD615\uC2DD\uC73C\uB85C \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uB97C \uC815\uC758\uD558\uC2ED\uC2DC\uC624.\n public static void main(String[] args)
java.launcher.cls.error3=\uC624\uB958: \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uB294 {0} \uD074\uB798\uC2A4\uC5D0\uC11C void \uC720\uD615\uC758 \uAC12\uC744 \uBC18\uD658\uD574\uC57C \uD569\uB2C8\uB2E4. \n\uB2E4\uC74C \uD615\uC2DD\uC73C\uB85C \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uB97C \uC815\uC758\uD558\uC2ED\uC2DC\uC624.\n public static void main(String[] args)
-java.launcher.cls.error4=\uC624\uB958: {0} \uD074\uB798\uC2A4\uC5D0\uC11C \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E4\uC74C \uD615\uC2DD\uC73C\uB85C \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uB97C \uC815\uC758\uD558\uC2ED\uC2DC\uC624.\r\n public static void main(String[] args)\r\n\uB610\uB294 JavaFX \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8 \uD074\uB798\uC2A4\uB294 {1}\uC744(\uB97C) \uD655\uC7A5\uD574\uC57C \uD569\uB2C8\uB2E4.
-java.launcher.cls.error5=\uC624\uB958: \uC774 \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8\uC744 \uC2E4\uD589\uD558\uB294 \uB370 \uD544\uC694\uD55C JavaFX \uB7F0\uD0C0\uC784 \uAD6C\uC131 \uC694\uC18C\uAC00 \uB204\uB77D\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+java.launcher.cls.error4=\uC624\uB958: {0} \uD074\uB798\uC2A4\uC5D0\uC11C \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E4\uC74C \uD615\uC2DD\uC73C\uB85C \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uB97C \uC815\uC758\uD558\uC2ED\uC2DC\uC624.\r\n public static void main(String[] args)\r\n\uB610\uB294 JavaFX \uC560\uD50C\uB9AC\uCF00\uC774\uC158 \uD074\uB798\uC2A4\uB294 {1}\uC744(\uB97C) \uD655\uC7A5\uD574\uC57C \uD569\uB2C8\uB2E4.
+java.launcher.cls.error5=\uC624\uB958: \uC774 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC744 \uC2E4\uD589\uD558\uB294 \uB370 \uD544\uC694\uD55C JavaFX \uB7F0\uD0C0\uC784 \uAD6C\uC131 \uC694\uC18C\uAC00 \uB204\uB77D\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
java.launcher.jar.error1=\uC624\uB958: {0} \uD30C\uC77C\uC744 \uC5F4\uB824\uACE0 \uC2DC\uB3C4\uD558\uB294 \uC911 \uC608\uC0C1\uCE58 \uC54A\uC740 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.
java.launcher.jar.error2={0}\uC5D0\uC11C Manifest\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
java.launcher.jar.error3={0}\uC5D0 \uAE30\uBCF8 Manifest \uC18D\uC131\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.
java.launcher.init.error=\uCD08\uAE30\uD654 \uC624\uB958
java.launcher.javafx.error1=\uC624\uB958: JavaFX launchApplication \uBA54\uC18C\uB4DC\uC5D0 \uC798\uBABB\uB41C \uC11C\uBA85\uC774 \uC788\uC2B5\uB2C8\uB2E4.\\n\uB530\uB77C\uC11C static\uC73C\uB85C \uC120\uC5B8\uD558\uACE0 void \uC720\uD615\uC758 \uAC12\uC744 \uBC18\uD658\uD574\uC57C \uD569\uB2C8\uB2E4.
+java.launcher.module.error1={0} \uBAA8\uB4C8\uC5D0 MainClass \uC18D\uC131\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. -m <module>/<main-class>\uB97C \uC0AC\uC6A9\uD558\uC2ED\uC2DC\uC624.
+java.launcher.module.error2=\uC624\uB958: {1} \uBAA8\uB4C8\uC758 \uAE30\uBCF8 \uD074\uB798\uC2A4 {0}\uC744(\uB97C) \uCC3E\uAC70\uB098 \uB85C\uB4DC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_pt_BR.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_pt_BR.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,31 +24,34 @@
#
# Translators please note do not translate the options themselves
-java.launcher.opt.header = Uso: {0} [-options] class [args...]\n (para executar uma classe)\n ou {0} [-options] -jar jarfile [args...]\n (para executar um arquivo jar)\nem que as op\u00E7\u00F5es incluem:\n
+java.launcher.opt.header = Uso: {0} [options] class [args...]\n (para executar uma classe)\n ou {0} [options] -jar jarfile [args...]\n (para executar um arquivo jar)\n ou {0} [-options] -mp <modulepath> -m <modulename> | <modulename>/<mainclass>\n (para executar a classe principal em um m\u00F3dulo class in a module)\nem que as op\u00E7\u00F5es incluem:\n
java.launcher.opt.datamodel =\ -d{0}\t usar um modelo de dados de {0} bits, se estiver dispon\u00EDvel\n
java.launcher.opt.vmselect =\ {0}\t para selecionar a VM "{1}"\n
java.launcher.opt.hotspot =\ {0}\t \u00E9 um sin\u00F4nimo da VM "{1}" [obsoleto]\n
-java.launcher.ergo.message1 =\ A VM default \u00E9 {0}
+java.launcher.ergo.message1 =\ A VM padr\u00E3o \u00E9 {0}
java.launcher.ergo.message2 =\ porque a execu\u00E7\u00E3o est\u00E1 sendo feita em uma m\u00E1quina de classe de servidor.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <caminho de pesquisa da classe dos diret\u00F3rios e arquivos zip/jar>\n -classpath <caminho de pesquisa da classe dos diret\u00F3rios e arquivos zip/jar>\n Uma lista separada por {0} de diret\u00F3rios, archives JAR\n e archives ZIP nos quais ser\u00E3o procurados os arquivos de classe.\n -D<nome>=<valor>\n define uma propriedade do sistema\n -verbose:[class|gc|jni]\n ativa a sa\u00EDda detalhada\n -version imprime a vers\u00E3o do produto e sai do programa\n -version:<valor>\n requer a execu\u00E7\u00E3o da vers\u00E3o especificada\n -showversion imprime a vers\u00E3o do produto e continua\n -jre-restrict-search | -no-jre-restrict-search\n inclui/exclui JREs privados do usu\u00E1rio na pesquisa de vers\u00E3o\n -? -help imprime esta mensagem de ajuda\n -X imprime a ajuda sobre op\u00E7\u00F5es n\u00E3o padronizadas\n -ea[:<nome do pacote>...|:<nome da classe>]\n -enableassertions[:<nome do pacote>...|:<nome da classe>]\n ativa asser\u00E7\u00F5es com granularidade especificada\n -da[:<nome do pacote>...|:<nome da classe>]\n -disableassertions[:<nome do pacote>...|:<nome da classe>]\n desativa asser\u00E7\u00F5es com granularidade especificada\n -esa | -enablesystemassertions\n ativa asser\u00E7\u00F5es do sistema\n -dsa | -disablesystemassertions\n desativa asser\u00E7\u00F5es do sistema\n -agentlib:<nome da biblioteca>[=<op\u00E7\u00F5es>]\n carrega a biblioteca de agentes nativa <nome da biblioteca>, por exemplo: -agentlib:hprof\n consulte tamb\u00E9m: -agentlib:jdwp=help e -agentlib:hprof=help\n -agentpath:<nome do caminho>[=<op\u00E7\u00F5es>]\n carrega a biblioteca de agentes nativa com base no nome do caminho completo\n -javaagent:<caminho do arquivo jar>[=<op\u00E7\u00F5es>]\n carrega o agente da linguagem de programa\u00E7\u00E3o Java; consulte java.lang.instrument\n -splash:<caminho da imagem>\n mostra a tela de abertura com a imagem especificada\nConsulte http://www.oracle.com/technetwork/java/javase/documentation/index.html para obter mais detalhes.
+java.launcher.opt.footer =\ -cp <caminho de pesquisa de classe de diret\u00F3rios e arquivos zip/jar>\n -classpath <caminho de pesquisa de classe de diret\u00F3rios e arquivos zip/jar>\n Uma lista separada por {0} de diret\u00F3rios, arquivos compactados JAR,\n e arquivos compactados ZIP para procurar arquivos de classe.\n -mp <caminho do m\u00F3dulo>\n -modulepath <caminho do m\u00F3dulo>...\n Uma lista separada por {0} de diret\u00F3rios, cada um\n sendo um diret\u00F3rio de m\u00F3dulos.\n -upgrademodulepath <caminho do m\u00F3dulo>...\n Uma lista separada por {0} de diret\u00F3rios, cada um\n sendo um diret\u00F3rio de m\u00F3dulos que substituem m\u00F3dulos\n pass\u00EDveis de upgrade na imagem de runtime\n -m <modulename> | <modulename>/<mainclass>\n o m\u00F3dulo inicial ou principal a ser resolvido\n -addmods <modulename>[,<modulename>...]\n m\u00F3dulos raiz a serem resolvidos al\u00E9m do m\u00F3dulo inicial\n -limitmods <modulename>[,<modulename>...]\n limita o universo de m\u00F3dulos observ\u00E1veis\n -listmods[:<modulename>[,<modulename>...]]\n lista os m\u00F3dulos observ\u00E1veis e sai\n -D<name>=<value>\n define uma propriedade de sistema\n -verbose:[class|gc|jni]\n ativa sa\u00EDda detalhada\n -version imprime a vers\u00E3o do produto e sai\n -showversion imprime a vers\u00E3o do produto e continua\n -? -help imprime esta mensagem de ajuda\n -X imprime a ajuda em op\u00E7\u00F5es n\u00E3o padronizadas\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n ativa asser\u00E7\u00F5es com granularidade especificada\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n desativa asser\u00E7\u00F5es com granularidade especificada\n -esa | -enablesystemassertions\n ativa asser\u00E7\u00F5es do sistema\n -dsa | -disablesystemassertions\n desativa asser\u00E7\u00F5es do sistema\n -agentlib:<libname>[=<options>]\n carrega a biblioteca de agente nativo <libname>, por exemplo, -agentlib:jdwp\n consulte tamb\u00E9m -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n carrega a biblioteca de agente nativo por nome do caminho completo\n -javaagent:<jarpath>[=<options>]\n carrega o agente de linguagem de programa\u00E7\u00E3o Java; consulte java.lang.instrument\n -splash:<imagepath>\n mostra a tela inicial com a imagem especificada\n @<filepath> op\u00E7\u00F5es de leitura do arquivo especificado\n
+See http://www.oracle.com/technetwork/java/javase/documentation/index.html para obter mais detalhes.
# Translators please note do not translate the options themselves
-java.launcher.X.usage=\ -Xmixed execu\u00E7\u00E3o no modo misto (default)\n -Xint execu\u00E7\u00E3o somente no modo interpretado\n -Xbootclasspath:<diret\u00F3rios e arquivos zip/jar separados por {0}>\n define o caminho de pesquisa para classes e recursos de inicializa\u00E7\u00E3o\n -Xbootclasspath/a:<diret\u00F3rios e arquivos zip/jar separados por {0}>\n anexa no final do caminho da classe de inicializa\u00E7\u00E3o\n -Xbootclasspath/p:<diret\u00F3rios e arquivos zip/jar separados por {0}>\n anexa no in\u00EDcio do caminho da classe de inicializa\u00E7\u00E3o\n -Xdiag mostra mensagens de diagn\u00F3stico adicionais\n -Xnoclassgc desativa a coleta de lixo da classe\n -Xincgc ativa a coleta de lixo incremental\n -Xloggc:<arquivo> registra o status do GC status em um arquivo com marca\u00E7\u00F5es de data e hor\u00E1rio\n -Xbatch desativa a compila\u00E7\u00E3o em segundo plano\n -Xms<tamanho> define o tamanho inicial do heap Java\n -Xmx<tamanho> define o tamanho m\u00E1ximo do heap Java\n -Xss<tamanho> define o tamanho da pilha de threads java\n -Xprof produz dados de perfil da cpu\n -Xfuture ativa verifica\u00E7\u00F5es de n\u00EDvel m\u00E1ximo de exig\u00EAncia, prevendo o valor default futuro\n -Xrs reduz o uso de sinais do SO pelo(a) Java/VM (consulte a documenta\u00E7\u00E3o)\n -Xcheck:jni executa verifica\u00E7\u00F5es adicionais de fun\u00E7\u00F5es da JNI\n -Xshare:off n\u00E3o tenta usar dados da classe compartilhada\n -Xshare:auto se poss\u00EDvel, usa dados da classe compartilhada (default)\n -Xshare:on requer o uso de dados da classe compartilhada, caso contr\u00E1rio haver\u00E1 falha.\n -XshowSettings mostra todas as defini\u00E7\u00F5es e continua\n -XshowSettings:all\n mostra todas as defini\u00E7\u00F5es e continua\n -XshowSettings:vm mostra todas as defini\u00E7\u00F5es relacionadas \u00E0 vm e continua\n -XshowSettings:properties\n mostra todas as defini\u00E7\u00F5es da propriedade e continua\n -XshowSettings:locale\n mostra todas as defini\u00E7\u00F5es relativas \u00E0s configura\u00E7\u00F5es regionais e continua\n\nAs -X options n\u00E3o s\u00E3o padronizadas e est\u00E3o sujeitas a altera\u00E7\u00F5es sem aviso.\n
+java.launcher.X.usage=\ -Xmixed execu\u00E7\u00E3o no modo misto (padr\u00E3o)\n -Xint execu\u00E7\u00E3o somente no modo interpretado\n -Xbootclasspath:<diret\u00F3rios e arquivos zip/jar separados por {0}>\n anexos ao final do caminho de classe de inicializa\u00E7\u00E3o\n -Xdiag mostra mensagens de diagn\u00F3stico adicionais\n -Xdiag:resolver mostra mensagens de diagn\u00F3stico do resolvedor\n -Xnoclassgc desativa a coleta de lixo da classe\n -Xincgc ativa a coleta de lixo incremental\n -Xloggc:<arquivo> registra o status do GC status em um arquivo com marca\u00E7\u00F5es de data e hor\u00E1rio\n -Xbatch desativa a compila\u00E7\u00E3o em segundo plano\n -Xms<tamanho> define o tamanho inicial do heap Java\n -Xmx<tamanho> define o tamanho m\u00E1ximo do heap Java\n -Xss<tamanho> define o tamanho da pilha de threads java\n -Xprof produz dados de perfil da cpu\n -Xfuture ativa verifica\u00E7\u00F5es de n\u00EDvel m\u00E1ximo de exig\u00EAncia, prevendo o valor padr\u00E3o futuro\n -Xrs reduz o uso de sinais do SO pelo(a) Java/VM (consulte a documenta\u00E7\u00E3o)\n -Xcheck:jni executa verifica\u00E7\u00F5es adicionais de fun\u00E7\u00F5es da JNI\n -Xshare:off n\u00E3o tenta usar dados da classe compartilhada\n -Xshare:auto se poss\u00EDvel, usa dados da classe compartilhada (padr\u00E3o)\n -Xshare:on requer o uso de dados da classe compartilhada, caso contr\u00E1rio haver\u00E1 falha.\n -XshowSettings mostra todas as defini\u00E7\u00F5es e continua\n -XshowSettings:all\n mostra todas as defini\u00E7\u00F5es e continua\n -XshowSettings:vm mostra todas as defini\u00E7\u00F5es relacionadas \u00E0 vm e continua\n -XshowSettings:properties\n mostra todas as defini\u00E7\u00F5es da propriedade e continua\n -XshowSettings:locale\n mostra todas as defini\u00E7\u00F5es relativas \u00E0s configura\u00E7\u00F5es regionais e continua\n -XaddReads:<module>=<other-module>(,<other-module>)*\n <module> l\u00EA outros m\u00F3dulos,\n n\u00E3o importando a declara\u00E7\u00E3o do m\u00F3dulo\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n <module> exports <package> para outros m\u00F3dulos,\n n\u00E3o importando a declara\u00E7\u00E3o do m\u00F3dulo\n -Xpatch:<module>=<file>({0}<file>)*\n Substitui ou aumenta um m\u00F3dulo com classes e recursos\n em arquivos JAR ou diret\u00F3rios\n -Xdisable-@files desativa uma expans\u00E3o adicional de arquivo de argumentos\n\nAs op\u00E7\u00F5es -X n\u00E3o s\u00E3o padronizadas e est\u00E3o sujeitas a altera\u00E7\u00F5es sem aviso.\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\nAs op\u00E7\u00F5es a seguir s\u00E3o espec\u00EDficas para o Mac OS X:\n -XstartOnFirstThread\n executa o m\u00E9todo main() no primeiro thread (AppKit)\n -Xdock:name=<nome da aplica\u00E7\u00E3o>"\n substitui o nome da aplica\u00E7\u00E3o default exibido no encaixe\n -Xdock:icon=<caminho para o arquivo do \u00EDcone>\n substitui o \u00EDcone exibido no encaixe\n\n
+java.launcher.X.macosx.usage=\nAs op\u00E7\u00F5es a seguir s\u00E3o espec\u00EDficas para o Mac OS X:\n -XstartOnFirstThread\n executa o m\u00E9todo main() no primeiro thread (AppKit)\n -Xdock:name=<nome do aplicativo>"\n substitui o nome do aplicativo padr\u00E3o exibido no encaixe\n -Xdock:icon=<caminho para o arquivo do \u00EDcone>\n substitui o \u00EDcone exibido no encaixe\n\n
java.launcher.cls.error1=Erro: N\u00E3o foi poss\u00EDvel localizar nem carregar a classe principal {0}
java.launcher.cls.error2=Erro: o m\u00E9todo main n\u00E3o \u00E9 {0} na classe {1}; defina o m\u00E9todo main como:\n public static void main(String[] args)
java.launcher.cls.error3=Erro: o m\u00E9todo main deve retornar um valor do tipo void na classe {0}; \ndefina o m\u00E9todo main como:\n public static void main(String[] args)
-java.launcher.cls.error4=Erro: o m\u00E9todo main n\u00E3o foi encontrado na classe {0}; defina o m\u00E9todo main como:\\n public static void main(String[] args)\\nou uma classe da aplica\u00E7\u00E3o JavaFX deve expandir {1}
-java.launcher.cls.error5=Erro: os componentes de runtime do JavaFX n\u00E3o foram encontrados. Eles s\u00E3o obrigat\u00F3rios para executar esta aplica\u00E7\u00E3o
+java.launcher.cls.error4=Erro: o m\u00E9todo main n\u00E3o foi encontrado na classe {0}; defina o m\u00E9todo main como:\n public static void main(String[] args)\nou uma classe de aplicativo JavaFX deve expandir {1}
+java.launcher.cls.error5=Erro: os componentes de runtime do JavaFX n\u00E3o foram encontrados. Eles s\u00E3o obrigat\u00F3rios para executar este aplicativo
java.launcher.jar.error1=Erro: ocorreu um erro inesperado ao tentar abrir o arquivo {0}
java.launcher.jar.error2=manifesto n\u00E3o encontrado em {0}
java.launcher.jar.error3=nenhum atributo de manifesto principal em {0}
java.launcher.init.error=erro de inicializa\u00E7\u00E3o
java.launcher.javafx.error1=Erro: O m\u00E9todo launchApplication do JavaFX tem a assinatura errada. Ele\\ndeve ser declarado como est\u00E1tico e retornar um valor do tipo void
+java.launcher.module.error1=o m\u00F3dulo {0} n\u00E3o tem um atributo MainClass, use -m <module>/<main-class>
+java.launcher.module.error2=Erro: N\u00E3o foi poss\u00EDvel localizar nem carregar a classe principal {0} no m\u00F3dulo {1}
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
#
# Translators please note do not translate the options themselves
-java.launcher.opt.header = Syntax: {0} [-alternativ] class [argument...]\n (f\u00F6r att k\u00F6ra en klass)\n eller {0} [-alternativ] -jar jarfile [argument...]\n (f\u00F6r att k\u00F6ra en jar-fil)\nd\u00E4r alternativen omfattar:\n
+java.launcher.opt.header = Syntax: {0} [options] class [args...]\n (f\u00F6r att k\u00F6ra en klass)\n eller {0} [options] -jar jarfile [args...]\n (f\u00F6r att k\u00F6ra en jar-fil)\n eller {0} [-options] -mp <modulepath> -m <modulename> | <modulename>/<mainclass>\n (f\u00F6r att k\u00F6ra huvudklassen i en modul)\nmed alternativen:\n
java.launcher.opt.datamodel =\ -d{0}\t anv\u00E4nd en {0}-bitsdatamodell om det finns\n
java.launcher.opt.vmselect =\ {0}\t f\u00F6r att v\u00E4lja "{1}" VM\n
@@ -34,21 +34,24 @@
java.launcher.ergo.message2 =\ eftersom du k\u00F6r en serverklassmaskin.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <klass\u00F6kv\u00E4g f\u00F6r kataloger och zip-/jar-filer>\n -classpath <klass\u00F6kv\u00E4g f\u00F6r kataloger och zip-/jar-filer>\n En {0}-separerad lista med kataloger, JAR-arkiv,\n och ZIP-arkiv f\u00F6r s\u00F6kning efter klassfiler.\n -D<name>=<value>\n ange en systemegenskap\n -verbose:[class|gc|jni]\n aktivera utf\u00F6rliga utdata\n -version skriv ut produktversionen och avsluta\n -version:<value>\n beg\u00E4r den specifika versionen som ska k\u00F6ras\n -showversion skriv ut produktversionen och forts\u00E4tt\n -jre-restrict-search | -no-jre-restrict-search\n inkludera/exkludera anv\u00E4ndarprivata JRE:er i versions\u00F6kningen\n -? -help skriv ut det h\u00E4r hj\u00E4lpmeddelandet\n -X skriv ut hj\u00E4lp f\u00F6r icke-standardalternativ\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n aktivera verifiering med angiven detaljgrad\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n avaktivera verifiering med angiven detaljgrad\n -esa | -enablesystemassertions\n aktivera systemverifieringar\n -dsa | -disablesystemassertions\n avaktivera systemverifieringar\n -agentlib:<libname>[=<options>]\n ladda ursprungligt agentbibliotek <libname>, e.g. -agentlib:hprof\n se \u00E4ven -agentlib:jdwp=help och -agentlib:hprof=help\n -agentpath:<pathname>[=<options>]\n ladda ursprungligt agentbibliotek med helt s\u00F6kv\u00E4gsnamn\n -javaagent:<jarpath>[=<options>]\n ladda Java-programspr\u00E5ksagent, se java.lang.instrument\n -splash:<imagepath>\n visa v\u00E4lkomstsk\u00E4rm med angiven bild\nMer information finns p\u00E5 http://www.oracle.com/technetwork/java/javase/documentation/index.html.
+java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n -classpath <class search path of directories and zip/jar files>\n En {0}-avgr\u00E4nsad lista \u00F6ver kataloger, JAR-arkiv\n och ZIP-arkiv att s\u00F6ka efter klassfiler i.\n -mp <module path>\n -modulepath <module path>...\n En {0}-avgr\u00E4nsad lista \u00F6ver kataloger, d\u00E4r varje\n katalog \u00E4r en katalog med moduler.\n -upgrademodulepath <module path>...\n En {0}-avgr\u00E4nsad lista \u00F6ver kataloger, d\u00E4r varje\n katalog \u00E4r en katalog med moduler som ers\u00E4tter\n uppgraderingsbara moduler i exekveringsavbilden\n -m <modulename> | <modulename>/<mainclass>\n den ursprungliga modulen eller huvudmodulen att l\u00F6sa\n -addmods <modulename>[,<modulename>...]\n rotmoduler att l\u00F6sa f\u00F6rutom den ursprungliga modulen\n -limitmods <modulename>[,<modulename>...]\n begr\u00E4nsar universumet med observerbara moduler\n -listmods[:<modulename>[,<modulename>...]]\n lista observerbara moduler och avsluta\n -D<name>=<value>\n ange en systemegenskap\n -verbose:[class|gc|jni]\n aktivera utf\u00F6rliga utdata\n -version skriv ut produktversion och avsluta\n -showversion skriv ut produktversion och forts\u00E4tt\n -? -help skriv ut det h\u00E4r hj\u00E4lpmeddelandet\n -X skriv ut f\u00F6r icke-standardalternativ\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n aktivera verifieringar med den angivna detaljgraden\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n avaktivera verifieringar med den angivna detaljgraden\n -esa | -enablesystemassertions\n aktivera systemverifieringar\n -dsa | -disablesystemassertions\n avaktivera systemverifieringar\n -agentlib:<libname>[=<options>]\n ladda det ursprungliga agentbiblioteket <libname>, exempel: -agentlib:jdwp\n se \u00E4ven -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n ladda det ursprungliga agentbiblioteket med fullst\u00E4ndigt s\u00F6kv\u00E4gsnamn\n -javaagent:<jarpath>[=<options>]\n ladda agenten f\u00F6r programmeringsspr\u00E5ket Java, se java.lang.instrument\n -splash:<imagepath>\n visa v\u00E4lkomstsk\u00E4rmen med den angivna bilden\n @<filepath> l\u00E4s alternativ fr\u00E5n den angivna filen\n
+See Se http://www.oracle.com/technetwork/java/javase/documentation/index.html f\u00F6r mer information.
# Translators please note do not translate the options themselves
-java.launcher.X.usage=\ -Xmixed k\u00F6rning i blandat l\u00E4ge (standard)\n -Xint endast k\u00F6rning i tolkat l\u00E4ge\n -Xbootclasspath:<kataloger och zip-/jar-filer avgr\u00E4nsas med {0}>\n ange s\u00F6kv\u00E4g f\u00F6r programladdningsklasser och -resurser\n -Xbootclasspath/a:<kataloger och zip-/jar-filer avgr\u00E4nsas med {0}>\n l\u00E4gg till i slutet av programladdningsklassens s\u00F6kv\u00E4g\n -Xbootclasspath/p:<kataloger och zip-/jar-filer avgr\u00E4nsas med {0}>\n l\u00E4gg till i b\u00F6rjan av programladdningsklassens s\u00F6kv\u00E4g\n -Xdiag visa ytterligare diagnostiska meddelanden\n -Xnoclassgc avaktivera klassens skr\u00E4pinsamling\n -Xincgc aktivera inkrementell skr\u00E4pinsamling\n -Xloggc:<fil> logga GC-status till en fil med tidsst\u00E4mplar\n -Xbatch avaktivera bakgrundskompilering\n -Xms<storlek> ange ursprunglig storlek f\u00F6r Java-heap\n -Xmx<storlek> ange maximal storlek f\u00F6r Java-heap\n -Xss<storlek> ange storlek f\u00F6r java-tr\u00E5dsstack\n -Xprof utdata f\u00F6r processorprofilering\n -Xfuture aktivera str\u00E4ngaste kontroller, f\u00F6rv\u00E4ntad framtida standard\n -Xrs minska OS-signalanv\u00E4ndning av Java/VM (se dokumentation)\n -Xcheck:jni utf\u00F6r ytterligare kontroller f\u00F6r JNI-funktioner\n -Xshare:off anv\u00E4nd inte delade klassdata\n -Xshare:auto anv\u00E4nd delade klassdata om det g\u00E5r (standard)\n -Xshare:on kr\u00E4v att delade klassdata anv\u00E4nds, annars slutf\u00F6r inte.\n -XshowSettings visa alla inst\u00E4llningar och forts\u00E4tt\n -XshowSettings:all\n visa alla inst\u00E4llningar och forts\u00E4tt\n -XshowSettings:vm visa alla vm-relaterade inst\u00E4llningar och forts\u00E4tt\n -XshowSettings:properties\n visa alla egenskapsinst\u00E4llningar och forts\u00E4tt\n -XshowSettings:locale\n visa alla spr\u00E5krelaterade inst\u00E4llningar och forts\u00E4tt\n\n-X-alternativen \u00E4r inte standard och kan \u00E4ndras utan f\u00F6reg\u00E5ende meddelande.\n
+java.launcher.X.usage=\ -Xmixed exekvering i blandat l\u00E4ge (standard)\n -Xint endast exekvering i tolkat l\u00E4ge\n -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n l\u00E4gg till sist i klass\u00F6kv\u00E4gen f\u00F6r programladdning\n -Xdiag visa fler diagnostiska meddelanden\n -Xdiag:resolver visa diagnostiska meddelanden f\u00F6r matchning\n -Xnoclassgc avaktivera klasskr\u00E4pinsamling\n -Xincgc aktivera inkrementell skr\u00E4pinsamling\n -Xloggc:<file> logga GC-status till en fil med tidsst\u00E4mplar\n -Xbatch avaktivera bakgrundskompilering\n -Xms<size> ange ursprunglig storlek f\u00F6r Java-heap-utrymmet\n -Xmx<size> ange st\u00F6rsta storlek f\u00F6r Java-heap-utrymmet\n -Xss<size> ange storlek f\u00F6r java-tr\u00E5dsstacken\n -Xprof utdata f\u00F6r processorprofilering\n -Xfuture aktivera str\u00E4ngaste kontroller, f\u00F6rv\u00E4ntad framtida standard\n -Xrs minska operativsystemssignalanv\u00E4ndning f\u00F6r Java/VM (se dokumentationen)\n -Xcheck:jni utf\u00F6r fler kontroller f\u00F6r JNI-funktioner\n -Xshare:off f\u00F6rs\u00F6k inte anv\u00E4nda delade klassdata\n -Xshare:auto anv\u00E4nd delade klassdata om m\u00F6jligt (standard)\n -Xshare:on kr\u00E4v anv\u00E4ndning av delade klassdata, utf\u00F6r inte i annat fall.\n -XshowSettings visa alla inst\u00E4llningar och forts\u00E4tt\n -XshowSettings:all\n visa alla inst\u00E4llningar och forts\u00E4tt\n -XshowSettings:vm visa alla vm-relaterade inst\u00E4llningar och forts\u00E4tt\n -XshowSettings:properties\n visa alla vm-relaterade inst\u00E4llningar och forts\u00E4tt\n -XshowSettings:locale\n visa alla spr\u00E5kkonventionsrelaterade inst\u00E4llningar och forts\u00E4tt\n -XaddReads:<module>=<other-module>(,<other-module>)*\n <module> l\u00E4ser andra moduler,\n oavsett moduldeklarationen\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n <module> exporterar <package> till andra moduler,\n oavsett moduldeklarationen\n -Xpatch:<module>=<file>({0}<file>)*\n \u00C5sidos\u00E4tt eller ut\u00F6ka en modul med klasser och resurser\n i JAR-filer eller kataloger\n -Xdisable-@files avaktivera framtida argumentfilsut\u00F6kning\n\n-X-alternativen \u00E4r inte standard och kan \u00E4ndras utan f\u00F6reg\u00E5ende meddelande.\n
# Translators please note do not translate the options themselves
java.launcher.X.macosx.usage=\nF\u00F6ljande alternativ \u00E4r specifika f\u00F6r Mac OS X:\n -XstartOnFirstThread\n k\u00F6r huvudmetoden() p\u00E5 den f\u00F6rsta (AppKit) tr\u00E5den\n -Xdock:name=<application name>"\n \u00E5sidosatt standardapplikationsnamn visas i docka\n -Xdock:icon=<path to icon file>\n \u00E5sidosatt standardikon visas i docka\n\n
-java.launcher.cls.error1=Fel: Hittar inte eller kan inte ladda huvudklassen {0}
+java.launcher.cls.error1=Fel: Kan inte hitta eller kan inte ladda huvudklassen {0}
java.launcher.cls.error2=Fel: Huvudmetoden \u00E4r inte {0} i klassen {1}, definiera huvudmetoden som:\n public static void main(String[] args)
java.launcher.cls.error3=Fel: Huvudmetoden m\u00E5ste returnera ett v\u00E4rde av typen void i klassen {0}, \ndefiniera huvudmetoden som:\n public static void main(String[] args)
java.launcher.cls.error4=Fel: Huvudmetoden finns inte i klassen {0}, definiera huvudmetoden som:\n public static void main(String[] args)\neller s\u00E5 m\u00E5ste en JavaFX-applikationsklass ut\u00F6ka {1}
-java.launcher.cls.error5=Fel: JavaFX-k\u00F6rningskomponenter saknas, och de kr\u00E4vs f\u00F6r att kunna k\u00F6ra den h\u00E4r applikationen
+java.launcher.cls.error5=Fel: JavaFX-exekveringskomponenter saknas, och de kr\u00E4vs f\u00F6r att kunna k\u00F6ra den h\u00E4r applikationen
java.launcher.jar.error1=Fel: Ett ov\u00E4ntat fel intr\u00E4ffade n\u00E4r filen {0} skulle \u00F6ppnas
java.launcher.jar.error2=manifest finns inte i {0}
java.launcher.jar.error3=inget huvudmanifestattribut i {0}
java.launcher.init.error=initieringsfel
java.launcher.javafx.error1=Fel: JavaFX launchApplication-metoden har fel signatur, den \nm\u00E5ste ha deklarerats som statisk och returnera ett v\u00E4rde av typen void
+java.launcher.module.error1=modulen {0} har inget MainClass-attribut, anv\u00E4nd -m <module>/<main-class>
+java.launcher.module.error2=Fel: kunde inte hitta eller ladda huvudklassen {0} i modulen {1}
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_zh_CN.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_zh_CN.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
#
# Translators please note do not translate the options themselves
-java.launcher.opt.header = \u7528\u6CD5: {0} [-options] class [args...]\n (\u6267\u884C\u7C7B)\n \u6216 {0} [-options] -jar jarfile [args...]\n (\u6267\u884C jar \u6587\u4EF6)\n\u5176\u4E2D\u9009\u9879\u5305\u62EC:\n
+java.launcher.opt.header = \u7528\u6CD5: {0} [options] class [args...]\n (\u6267\u884C\u7C7B)\n or {0} [options] -jar jarfile [args...]\n (\u6267\u884C jar \u6587\u4EF6)\n or {0} [-options] -mp <modulepath> -m <modulename> | <modulename>/<mainclass>\n (\u6267\u884C\u6A21\u5757\u4E2D\u7684\u4E3B\u7C7B)\n\u5176\u4E2D options \u5305\u62EC:\n
java.launcher.opt.datamodel =\ -d{0}\t \u4F7F\u7528 {0} \u4F4D\u6570\u636E\u6A21\u578B (\u5982\u679C\u53EF\u7528)\n
java.launcher.opt.vmselect =\ {0}\t \u9009\u62E9 "{1}" VM\n
@@ -34,10 +34,11 @@
java.launcher.ergo.message2 =\ \u56E0\u4E3A\u60A8\u662F\u5728\u670D\u52A1\u5668\u7C7B\u8BA1\u7B97\u673A\u4E0A\u8FD0\u884C\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <\u76EE\u5F55\u548C zip/jar \u6587\u4EF6\u7684\u7C7B\u641C\u7D22\u8DEF\u5F84>\n -classpath <\u76EE\u5F55\u548C zip/jar \u6587\u4EF6\u7684\u7C7B\u641C\u7D22\u8DEF\u5F84>\n \u7528 {0} \u5206\u9694\u7684\u76EE\u5F55, JAR \u6863\u6848\n \u548C ZIP \u6863\u6848\u5217\u8868, \u7528\u4E8E\u641C\u7D22\u7C7B\u6587\u4EF6\u3002\n -D<\u540D\u79F0>=<\u503C>\n \u8BBE\u7F6E\u7CFB\u7EDF\u5C5E\u6027\n -verbose:[class|gc|jni]\n \u542F\u7528\u8BE6\u7EC6\u8F93\u51FA\n -version \u8F93\u51FA\u4EA7\u54C1\u7248\u672C\u5E76\u9000\u51FA\n -version:<\u503C>\n \u9700\u8981\u6307\u5B9A\u7684\u7248\u672C\u624D\u80FD\u8FD0\u884C\n -showversion \u8F93\u51FA\u4EA7\u54C1\u7248\u672C\u5E76\u7EE7\u7EED\n -jre-restrict-search | -no-jre-restrict-search\n \u5728\u7248\u672C\u641C\u7D22\u4E2D\u5305\u62EC/\u6392\u9664\u7528\u6237\u4E13\u7528 JRE\n -? -help \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F\n -X \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u5E2E\u52A9\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \u6309\u6307\u5B9A\u7684\u7C92\u5EA6\u542F\u7528\u65AD\u8A00\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \u7981\u7528\u5177\u6709\u6307\u5B9A\u7C92\u5EA6\u7684\u65AD\u8A00\n -esa | -enablesystemassertions\n \u542F\u7528\u7CFB\u7EDF\u65AD\u8A00\n -dsa | -disablesystemassertions\n \u7981\u7528\u7CFB\u7EDF\u65AD\u8A00\n -agentlib:<libname>[=<\u9009\u9879>]\n \u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93 <libname>, \u4F8B\u5982 -agentlib:hprof\n \u53E6\u8BF7\u53C2\u9605 -agentlib:jdwp=help \u548C -agentlib:hprof=help\n -agentpath:<pathname>[=<\u9009\u9879>]\n \u6309\u5B8C\u6574\u8DEF\u5F84\u540D\u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93\n -javaagent:<jarpath>[=<\u9009\u9879>]\n \u52A0\u8F7D Java \u7F16\u7A0B\u8BED\u8A00\u4EE3\u7406, \u8BF7\u53C2\u9605 java.lang.instrument\n -splash:<imagepath>\n \u4F7F\u7528\u6307\u5B9A\u7684\u56FE\u50CF\u663E\u793A\u542F\u52A8\u5C4F\u5E55\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605 http://www.oracle.com/technetwork/java/javase/documentation/index.html\u3002
+java.launcher.opt.footer =\ -cp <\u76EE\u5F55\u548C zip/jar \u6587\u4EF6\u7684\u7C7B\u641C\u7D22\u8DEF\u5F84>\n -classpath <\u76EE\u5F55\u548C zip/jar \u6587\u4EF6\u7684\u7C7B\u641C\u7D22\u8DEF\u5F84>\n \u7528\u4E8E\u641C\u7D22\u7C7B\u6587\u4EF6\u7684\u76EE\u5F55, JAR \u6863\u6848\n \u548C ZIP \u6863\u6848\u7684\u5217\u8868, \u4F7F\u7528 {0} \u5206\u9694\u3002\n -mp <\u6A21\u5757\u8DEF\u5F84>\n -modulepath <\u6A21\u5757\u8DEF\u5F84>...\n \u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u5217\u8868, \u6BCF\u4E2A\u76EE\u5F55\n \u90FD\u662F\u4E00\u4E2A\u5305\u542B\u6A21\u5757\u7684\u76EE\u5F55\u3002\n -upgrademodulepath <module path>...\n \u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u5217\u8868, \u6BCF\u4E2A\u76EE\u5F55\n \u90FD\u662F\u4E00\u4E2A\u5305\u542B\u6A21\u5757\u7684\u76EE\u5F55, \u8FD9\u4E9B\u6A21\u5757\n \u7528\u4E8E\u66FF\u6362\u8FD0\u884C\u65F6\u6620\u50CF\u4E2D\u7684\u53EF\u5347\u7EA7\u6A21\u5757\n -m <modulename> | <modulename>/<mainclass>\n \u8981\u89E3\u6790\u7684\u521D\u59CB\u6A21\u5757\u6216\u4E3B\u6A21\u5757\n -addmods <modulename>[,<modulename>...]\n \u9664\u4E86\u521D\u59CB\u6A21\u5757\u4E4B\u5916\u8981\u89E3\u6790\u7684\u6839\u6A21\u5757\n -limitmods <modulename>[,<modulename>...]\n \u9650\u5236\u53EF\u89C2\u5BDF\u6A21\u5757\u7684\u9886\u57DF\n -listmods[:<modulename>[,<modulename>...]]\n \u5217\u51FA\u53EF\u89C2\u5BDF\u6A21\u5757\u5E76\u9000\u51FA\n -D<name>=<value>\n \u8BBE\u7F6E\u7CFB\u7EDF\u5C5E\u6027\n -verbose:[class|gc|jni]\n \u542F\u7528\u8BE6\u7EC6\u8F93\u51FA\n -version \u8F93\u51FA\u4EA7\u54C1\u7248\u672C\u5E76\u9000\u51FA\n -showversion \u8F93\u51FA\u4EA7\u54C1\u7248\u672C\u5E76\u7EE7\u7EED\n -? -help \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F\n -X \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u5E2E\u52A9\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \u6309\u6307\u5B9A\u7684\u7C92\u5EA6\u542F\u7528\u65AD\u8A00\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \u7981\u7528\u5177\u6709\u6307\u5B9A\u7C92\u5EA6\u7684\u65AD\u8A00\n -esa | -enablesystemassertions\n \u542F\u7528\u7CFB\u7EDF\u65AD\u8A00\n -dsa | -disablesystemassertions\n \u7981\u7528\u7CFB\u7EDF\u65AD\u8A00\n -agentlib:<libname>[=<options>]\n \u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93 <libname>, \u4F8B\u5982 -agentlib:jdwp\n \u53E6\u8BF7\u53C2\u9605 -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n \u6309\u5B8C\u6574\u8DEF\u5F84\u540D\u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93\n -javaagent:<jarpath>[=<options>]\n \u52A0\u8F7D Java \u7F16\u7A0B\u8BED\u8A00\u4EE3\u7406, \u8BF7\u53C2\u9605 java.lang.instrument\n -splash:<imagepath>\n \u4F7F\u7528\u6307\u5B9A\u7684\u56FE\u50CF\u663E\u793A\u542F\u52A8\u5C4F\u5E55\n @<filepath> \u4ECE\u6307\u5B9A\u6587\u4EF6\u4E2D\u8BFB\u53D6\u9009\u9879\n
+See \u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605 http://www.oracle.com/technetwork/java/javase/documentation/index.html\u3002
# Translators please note do not translate the options themselves
-java.launcher.X.usage=\ -Xmixed \u6DF7\u5408\u6A21\u5F0F\u6267\u884C (\u9ED8\u8BA4)\n -Xint \u4EC5\u89E3\u91CA\u6A21\u5F0F\u6267\u884C\n -Xbootclasspath:<\u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u548C zip/jar \u6587\u4EF6>\n \u8BBE\u7F6E\u641C\u7D22\u8DEF\u5F84\u4EE5\u5F15\u5BFC\u7C7B\u548C\u8D44\u6E90\n -Xbootclasspath/a:<\u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u548C zip/jar \u6587\u4EF6>\n \u9644\u52A0\u5728\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u672B\u5C3E\n -Xbootclasspath/p:<\u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u548C zip/jar \u6587\u4EF6>\n \u7F6E\u4E8E\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u4E4B\u524D\n -Xdiag \u663E\u793A\u9644\u52A0\u8BCA\u65AD\u6D88\u606F\n -Xnoclassgc \u7981\u7528\u7C7B\u5783\u573E\u6536\u96C6\n -Xincgc \u542F\u7528\u589E\u91CF\u5783\u573E\u6536\u96C6\n -Xloggc:<file> \u5C06 GC \u72B6\u6001\u8BB0\u5F55\u5728\u6587\u4EF6\u4E2D (\u5E26\u65F6\u95F4\u6233)\n -Xbatch \u7981\u7528\u540E\u53F0\u7F16\u8BD1\n -Xms<size> \u8BBE\u7F6E\u521D\u59CB Java \u5806\u5927\u5C0F\n -Xmx<size> \u8BBE\u7F6E\u6700\u5927 Java \u5806\u5927\u5C0F\n -Xss<size> \u8BBE\u7F6E Java \u7EBF\u7A0B\u5806\u6808\u5927\u5C0F\n -Xprof \u8F93\u51FA cpu \u914D\u7F6E\u6587\u4EF6\u6570\u636E\n -Xfuture \u542F\u7528\u6700\u4E25\u683C\u7684\u68C0\u67E5, \u9884\u671F\u5C06\u6765\u7684\u9ED8\u8BA4\u503C\n -Xrs \u51CF\u5C11 Java/VM \u5BF9\u64CD\u4F5C\u7CFB\u7EDF\u4FE1\u53F7\u7684\u4F7F\u7528 (\u8BF7\u53C2\u9605\u6587\u6863)\n -Xcheck:jni \u5BF9 JNI \u51FD\u6570\u6267\u884C\u5176\u4ED6\u68C0\u67E5\n -Xshare:off \u4E0D\u5C1D\u8BD5\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E\n -Xshare:auto \u5728\u53EF\u80FD\u7684\u60C5\u51B5\u4E0B\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E (\u9ED8\u8BA4)\n -Xshare:on \u8981\u6C42\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E, \u5426\u5219\u5C06\u5931\u8D25\u3002\n -XshowSettings \u663E\u793A\u6240\u6709\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:all\n \u663E\u793A\u6240\u6709\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:vm \u663E\u793A\u6240\u6709\u4E0E vm \u76F8\u5173\u7684\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:properties\n \u663E\u793A\u6240\u6709\u5C5E\u6027\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:locale\n \u663E\u793A\u6240\u6709\u4E0E\u533A\u57DF\u8BBE\u7F6E\u76F8\u5173\u7684\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n\n-X \u9009\u9879\u662F\u975E\u6807\u51C6\u9009\u9879, \u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
+java.launcher.X.usage=\ -Xmixed \u6DF7\u5408\u6A21\u5F0F\u6267\u884C (\u9ED8\u8BA4\u503C)\n -Xint \u4EC5\u89E3\u91CA\u6A21\u5F0F\u6267\u884C\n -Xbootclasspath/a:<\u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u548C zip/jar \u6587\u4EF6>\n \u9644\u52A0\u5728\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u672B\u5C3E\n -Xdiag \u663E\u793A\u9644\u52A0\u8BCA\u65AD\u6D88\u606F\n -Xdiag:resolver \u663E\u793A\u89E3\u6790\u5668\u8BCA\u65AD\u6D88\u606F\n -Xnoclassgc \u7981\u7528\u7C7B\u5783\u573E\u6536\u96C6\n -Xincgc \u542F\u7528\u589E\u91CF\u5783\u573E\u6536\u96C6\n -Xloggc:<file> \u5C06 GC \u72B6\u6001\u8BB0\u5F55\u5728\u6587\u4EF6\u4E2D (\u5E26\u65F6\u95F4\u6233)\n -Xbatch \u7981\u7528\u540E\u53F0\u7F16\u8BD1\n -Xms<size> \u8BBE\u7F6E\u521D\u59CB Java \u5806\u5927\u5C0F\n -Xmx<size> \u8BBE\u7F6E\u6700\u5927 Java \u5806\u5927\u5C0F\n -Xss<size> \u8BBE\u7F6E Java \u7EBF\u7A0B\u5806\u6808\u5927\u5C0F\n -Xprof \u8F93\u51FA cpu \u5206\u6790\u6570\u636E\n -Xfuture \u542F\u7528\u6700\u4E25\u683C\u7684\u68C0\u67E5, \u9884\u671F\u5C06\u6765\u7684\u9ED8\u8BA4\u503C\n -Xrs \u51CF\u5C11 Java/VM \u5BF9\u64CD\u4F5C\u7CFB\u7EDF\u4FE1\u53F7\u7684\u4F7F\u7528 (\u8BF7\u53C2\u9605\u6587\u6863)\n -Xcheck:jni \u5BF9 JNI \u51FD\u6570\u6267\u884C\u5176\u4ED6\u68C0\u67E5\n -Xshare:off \u4E0D\u5C1D\u8BD5\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E\n -Xshare:auto \u5728\u53EF\u80FD\u7684\u60C5\u51B5\u4E0B\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E (\u9ED8\u8BA4\u503C)\n -Xshare:on \u8981\u6C42\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E, \u5426\u5219\u5C06\u5931\u8D25\u3002\n -XshowSettings \u663E\u793A\u6240\u6709\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:all\n \u663E\u793A\u6240\u6709\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:vm \u663E\u793A\u6240\u6709\u4E0E vm \u76F8\u5173\u7684\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:properties\n \u663E\u793A\u6240\u6709\u5C5E\u6027\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:locale\n \u663E\u793A\u6240\u6709\u4E0E\u533A\u57DF\u8BBE\u7F6E\u76F8\u5173\u7684\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XaddReads:<module>=<other-module>(,<other-module>)*\n <module> \u8BFB\u53D6\u5176\u4ED6\u6A21\u5757,\n \u800C\u65E0\u8BBA\u6A21\u5757\u58F0\u660E\u5982\u4F55\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n <module> \u5C06 <package> \u5BFC\u51FA\u5230\u5176\u4ED6\u6A21\u5757,\n \u800C\u65E0\u8BBA\u6A21\u5757\u58F0\u660E\u5982\u4F55\n -Xpatch:<module>=<file>({0}<file>)*\n \u4F7F\u7528 JAR \u6587\u4EF6\u6216\u76EE\u5F55\u4E2D\u7684\u7C7B\u548C\u8D44\u6E90\n \u8986\u76D6\u6216\u589E\u5F3A\u6A21\u5757\n -Xdisable-@files \u7981\u6B62\u8FDB\u4E00\u6B65\u6269\u5C55\u53C2\u6570\u6587\u4EF6\n\n-X \u9009\u9879\u662F\u975E\u6807\u51C6\u9009\u9879, \u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
# Translators please note do not translate the options themselves
java.launcher.X.macosx.usage=\n\u4EE5\u4E0B\u9009\u9879\u4E3A Mac OS X \u7279\u5B9A\u7684\u9009\u9879:\n -XstartOnFirstThread\n \u5728\u7B2C\u4E00\u4E2A (AppKit) \u7EBF\u7A0B\u4E0A\u8FD0\u884C main() \u65B9\u6CD5\n -Xdock:name=<\u5E94\u7528\u7A0B\u5E8F\u540D\u79F0>"\n \u8986\u76D6\u505C\u9760\u680F\u4E2D\u663E\u793A\u7684\u9ED8\u8BA4\u5E94\u7528\u7A0B\u5E8F\u540D\u79F0\n -Xdock:icon=<\u56FE\u6807\u6587\u4EF6\u7684\u8DEF\u5F84>\n \u8986\u76D6\u505C\u9760\u680F\u4E2D\u663E\u793A\u7684\u9ED8\u8BA4\u56FE\u6807\n\n
@@ -52,3 +53,5 @@
java.launcher.jar.error3={0}\u4E2D\u6CA1\u6709\u4E3B\u6E05\u5355\u5C5E\u6027
java.launcher.init.error=\u521D\u59CB\u5316\u9519\u8BEF
java.launcher.javafx.error1=\u9519\u8BEF: JavaFX launchApplication \u65B9\u6CD5\u5177\u6709\u9519\u8BEF\u7684\u7B7E\u540D, \u5FC5\u987B\n\u5C06\u65B9\u6CD5\u58F0\u660E\u4E3A\u9759\u6001\u65B9\u6CD5\u5E76\u8FD4\u56DE\u7A7A\u7C7B\u578B\u7684\u503C
+java.launcher.module.error1=\u6A21\u5757 {0} \u4E0D\u5177\u6709 MainClass \u5C5E\u6027, \u8BF7\u4F7F\u7528 -m <module>/<main-class>
+java.launcher.module.error2=\u9519\u8BEF: \u5728\u6A21\u5757 {1} \u4E2D\u627E\u4E0D\u5230\u6216\u65E0\u6CD5\u52A0\u8F7D\u4E3B\u7C7B {0}
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_zh_TW.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_zh_TW.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
#
# Translators please note do not translate the options themselves
-java.launcher.opt.header = \u7528\u6CD5: {0} [-options] class [args...]\n (\u57F7\u884C\u985E\u5225)\n \u6216 {0} [-options] -jar jarfile [args...]\n (\u57F7\u884C jar \u6A94\u6848)\n\u9078\u9805\u5305\u62EC:\n
+java.launcher.opt.header = \u7528\u6CD5: {0} [options] class [args...]\n (\u7528\u65BC\u57F7\u884C\u985E\u5225)\n \u6216 {0} [options] -jar jarfile [args...]\n (\u7528\u65BC\u57F7\u884C jar \u6A94\u6848)\n \u6216 {0} [-options] -mp <modulepath> -m <modulename> | <modulename>/<mainclass>\n (\u7528\u65BC\u57F7\u884C\u6A21\u7D44\u4E2D\u7684\u4E3B\u8981\u985E\u5225)\n\u5176\u4E2D\u7684\u9078\u9805\u5305\u62EC:\n
java.launcher.opt.datamodel =\ -d{0}\t \u4F7F\u7528 {0} \u4F4D\u5143\u8CC7\u6599\u6A21\u578B (\u5982\u679C\u6709\u7684\u8A71)\n
java.launcher.opt.vmselect =\ {0}\t \u9078\u53D6 "{1}" VM\n
@@ -34,17 +34,18 @@
java.launcher.ergo.message2 =\ \u56E0\u70BA\u60A8\u6B63\u5728\u4F3A\u670D\u5668\u985E\u5225\u6A5F\u5668\u4E0A\u57F7\u884C\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n -classpath <class search path of directories and zip/jar files>\n \u4F7F\u7528 {0} \u5340\u9694\u7684\u76EE\u9304\u3001JAR \u5B58\u6A94\u4EE5\u53CA\n ZIP \u5B58\u6A94\u6E05\u55AE\u4F86\u641C\u5C0B\u985E\u5225\u6A94\u6848\u3002\n -D<name>=<value>\n \u8A2D\u5B9A\u7CFB\u7D71\u5C6C\u6027\n -verbose:[class|gc|jni]\n \u555F\u7528\u8A73\u7D30\u8CC7\u8A0A\u8F38\u51FA\n -version \u5217\u5370\u7522\u54C1\u7248\u672C\u4E26\u7D50\u675F\n -version:<value>\n \u9700\u8981\u6307\u5B9A\u7684\u7248\u672C\u624D\u80FD\u57F7\u884C\n -showversion \u5217\u5370\u7522\u54C1\u7248\u672C\u4E26\u7E7C\u7E8C\n -jre-restrict-search | -no-jre-restrict-search\n \u5728\u7248\u672C\u641C\u5C0B\u4E2D\u5305\u62EC/\u6392\u9664\u4F7F\u7528\u8005\u5C08\u7528 JRE\n -? -help \u5217\u5370\u6B64\u8AAA\u660E\u8A0A\u606F\n -X \u5217\u5370\u975E\u6A19\u6E96\u9078\u9805\u7684\u8AAA\u660E\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \u555F\u7528\u542B\u6307\u5B9A\u8A73\u7D30\u7A0B\u5EA6\u7684\u5BA3\u544A\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \u505C\u7528\u542B\u6307\u5B9A\u8A73\u7D30\u7A0B\u5EA6\u7684\u5BA3\u544A\n -esa | -enablesystemassertions\n \u555F\u7528\u7CFB\u7D71\u5BA3\u544A\n -dsa | -disablesystemassertions\n \u505C\u7528\u7CFB\u7D71\u5BA3\u544A\n -agentlib:<libname>[=<options>]\n \u8F09\u5165\u539F\u751F\u4EE3\u7406\u7A0B\u5F0F\u7A0B\u5F0F\u5EAB <libname>\uFF0C\u4F8B\u5982 -agentlib:hprof\n \u53E6\u8ACB\u53C3\u95B1 -agentlib:jdwp=help \u8207 -agentlib:hprof=help\n -agentpath:<pathname>[=<options>]\n \u4F7F\u7528\u5B8C\u6574\u8DEF\u5F91\u540D\u7A31\u8F09\u5165\u539F\u751F\u4EE3\u7406\u7A0B\u5F0F\u7A0B\u5F0F\u5EAB\n -javaagent:<jarpath>[=<options>]\n \u8F09\u5165 Java \u7A0B\u5F0F\u8A9E\u8A00\u4EE3\u7406\u7A0B\u5F0F\uFF0C\u8ACB\u53C3\u95B1 java.lang.instrument\n -splash:<imagepath>\n \u986F\u793A\u6307\u5B9A\u5F71\u50CF\u7684\u8EDF\u9AD4\u8CC7\u8A0A\u756B\u9762\n\u8ACB\u53C3\u95B1 http://www.oracle.com/technetwork/java/javase/documentation/index.html \u66B8\u89E3\u8A73\u7D30\u8CC7\u8A0A\u3002
+java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n -classpath <class search path of directories and zip/jar files>\n \u4F7F\u7528\u4EE5 {0} \u5340\u9694\u7684\u76EE\u9304\u3001JAR \u5B58\u6A94\u4EE5\u53CA\n ZIP \u5B58\u6A94\u6E05\u55AE\u4F86\u641C\u5C0B\u985E\u5225\u6A94\u6848\u3002\n -mp <module path>\n -modulepath <module path>...\n \u4EE5 {0} \u5340\u9694\u7684\u76EE\u9304\u6E05\u55AE\uFF0C\u6BCF\u500B\u76EE\u9304\n \u5747\u70BA\u6A21\u7D44\u76EE\u9304\u3002\n -upgrademodulepath <module path>...\n \u4EE5 {0} \u5340\u9694\u7684\u76EE\u9304\u6E05\u55AE\uFF0C\u6BCF\u500B\u76EE\u9304\n \u5747\u70BA\u6A21\u7D44\u76EE\u9304\uFF0C\u4E14\u7576\u4E2D\u7684\u6A21\u7D44\u53EF\u53D6\u4EE3\n \u7A0B\u5F0F\u5BE6\u969B\u57F7\u884C\u5F71\u50CF\u4E2D\u7684\u53EF\u5347\u7D1A\u6A21\u7D44\n -m <modulename> | <modulename>/<mainclass>\n \u8981\u89E3\u6790\u7684\u8D77\u59CB\u6216\u4E3B\u8981\u6A21\u7D44\n -addmods <modulename>[,<modulename>...]\n \u9664\u4E86\u8D77\u59CB\u6A21\u7D44\u5916\uFF0C\u8981\u89E3\u6790\u7684\u6839\u6A21\u7D44\n -limitmods <modulename>[,<modulename>...]\n \u9650\u5236\u53EF\u76E3\u6E2C\u6A21\u7D44\u7684\u7BC4\u570D\n -listmods[:<modulename>[,<modulename>...]]\n \u5217\u51FA\u53EF\u76E3\u6E2C\u6A21\u7D44\u4E26\u7D50\u675F\n -D<name>=<value>\n \u8A2D\u5B9A\u7CFB\u7D71\u5C6C\u6027\n -verbose:[class|gc|jni]\n \u555F\u7528\u8A73\u7D30\u8CC7\u8A0A\u8F38\u51FA\n -version \u5217\u5370\u7522\u54C1\u7248\u672C\u4E26\u7D50\u675F\n -showversion \u5217\u5370\u7522\u54C1\u7248\u672C\u4E26\u7E7C\u7E8C\n -? -help \u5217\u5370\u6B64\u8AAA\u660E\u8A0A\u606F\n -X \u5217\u5370\u975E\u6A19\u6E96\u9078\u9805\u7684\u8AAA\u660E\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \u555F\u7528\u542B\u6307\u5B9A\u8A73\u7D30\u7A0B\u5EA6\u7684\u5BA3\u544A\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \u505C\u7528\u542B\u6307\u5B9A\u8A73\u7D30\u7A0B\u5EA6\u7684\u5BA3\u544A\n -esa | -enablesystemassertions\n \u555F\u7528\u7CFB\u7D71\u5BA3\u544A\n -dsa | -disablesystemassertions\n \u505C\u7528\u7CFB\u7D71\u5BA3\u544A\n -agentlib:<libname>[=<options>]\n \u8F09\u5165\u539F\u751F\u4EE3\u7406\u7A0B\u5F0F\u7A0B\u5F0F\u5EAB <libname>\uFF0C\u4F8B\u5982 -agentlib:jdwp\n \u53E6\u8ACB\u53C3\u95B1 -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n \u4F7F\u7528\u5B8C\u6574\u8DEF\u5F91\u540D\u7A31\u8F09\u5165\u539F\u751F\u4EE3\u7406\u7A0B\u5F0F\u7A0B\u5F0F\u5EAB\n -javaagent:<jarpath>[=<options>]\n \u8F09\u5165 Java \u7A0B\u5F0F\u8A9E\u8A00\u4EE3\u7406\u7A0B\u5F0F\uFF0C\u8ACB\u53C3\u95B1 java.lang.instrument\n -splash:<imagepath>\n \u4EE5\u6307\u5B9A\u5F71\u50CF\u986F\u793A\u8EDF\u9AD4\u8CC7\u8A0A\u756B\u9762\n @<filepath> \u5F9E\u6307\u5B9A\u6A94\u6848\u8B80\u53D6\u9078\u9805\n
+See \u8ACB\u53C3\u95B1 http://www.oracle.com/technetwork/java/javase/documentation/index.html \u66B8\u89E3\u8A73\u7D30\u8CC7\u8A0A\u3002
# Translators please note do not translate the options themselves
-java.launcher.X.usage=\ -Xmixed \u6DF7\u5408\u6A21\u5F0F\u57F7\u884C (\u9810\u8A2D)\n -Xint \u50C5\u9650\u89E3\u8B6F\u6A21\u5F0F\u57F7\u884C\n -Xbootclasspath:<\u4EE5 {0} \u5206\u9694\u7684\u76EE\u9304\u548C zip/jar \u6A94\u6848>\n \u8A2D\u5B9A\u555F\u52D5\u5B89\u88DD\u985E\u5225\u548C\u8CC7\u6E90\u7684\u641C\u5C0B\u8DEF\u5F91\n -Xbootclasspath/a:<\u4EE5 {0} \u5206\u9694\u7684\u76EE\u9304\u548C zip/jar \u6A94\u6848>\n \u9644\u52A0\u5728\u555F\u52D5\u5B89\u88DD\u985E\u5225\u8DEF\u5F91\u7684\u7D50\u5C3E\n -Xbootclasspath/p:<\u4EE5 {0} \u5206\u9694\u7684\u76EE\u9304\u548C zip/jar \u6A94\u6848>\n \u9644\u52A0\u5728\u555F\u52D5\u5B89\u88DD\u985E\u5225\u8DEF\u5F91\u7684\u524D\u9762\n -Xdiag \u986F\u793A\u5176\u4ED6\u7684\u8A3A\u65B7\u8A0A\u606F\n -Xnoclassgc \u505C\u7528\u985E\u5225\u8CC7\u6E90\u56DE\u6536\n -Xincgc \u555F\u7528\u6F38\u9032\u8CC7\u6E90\u56DE\u6536\n -Xloggc:<file> \u5229\u7528\u6642\u6233\u5C07 GC \u72C0\u614B\u8A18\u9304\u81F3\u6A94\u6848\u4E2D\n -Xbatch \u505C\u7528\u80CC\u666F\u7DE8\u8B6F\n -Xms<size> \u8A2D\u5B9A\u8D77\u59CB Java \u5806\u96C6\u5927\u5C0F\n -Xmx<size> \u8A2D\u5B9A Java \u5806\u96C6\u5927\u5C0F\u4E0A\u9650\n -Xss<size> \u8A2D\u5B9A Java \u57F7\u884C\u7DD2\u5806\u758A\u5927\u5C0F\n -Xprof \u8F38\u51FA CPU \u5206\u6790\u8CC7\u6599\n -Xfuture \u555F\u7528\u6700\u56B4\u683C\u7684\u6AA2\u67E5\uFF0C\u9810\u5148\u4F5C\u70BA\u5C07\u4F86\u7684\u9810\u8A2D\n -Xrs \u6E1B\u5C11 Java/VM \u4F7F\u7528\u4F5C\u696D\u7CFB\u7D71\u4FE1\u865F (\u8ACB\u53C3\u95B1\u6587\u4EF6)\n -Xcheck:jni \u57F7\u884C\u5176\u4ED6\u7684 JNI \u51FD\u6578\u6AA2\u67E5\n -Xshare:off \u4E0D\u5617\u8A66\u4F7F\u7528\u5171\u7528\u985E\u5225\u8CC7\u6599\n -Xshare:auto \u5118\u53EF\u80FD\u4F7F\u7528\u5171\u7528\u985E\u5225\u8CC7\u6599 (\u9810\u8A2D)\n -Xshare:on \u9700\u8981\u4F7F\u7528\u5171\u7528\u985E\u5225\u8CC7\u6599\uFF0C\u5426\u5247\u5931\u6557\u3002\n -XshowSettings \u986F\u793A\u6240\u6709\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:all\n \u986F\u793A\u6240\u6709\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:vm \u986F\u793A\u6240\u6709 VM \u76F8\u95DC\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:properties\n \u986F\u793A\u6240\u6709\u5C6C\u6027\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:locale\n \u986F\u793A\u6240\u6709\u5730\u5340\u8A2D\u5B9A\u76F8\u95DC\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n\n -X \u9078\u9805\u4E0D\u662F\u6A19\u6E96\u9078\u9805\uFF0C\u82E5\u6709\u8B8A\u66F4\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
+java.launcher.X.usage=\ -Xmixed \u6DF7\u5408\u6A21\u5F0F\u57F7\u884C (\u9810\u8A2D)\n -Xint \u50C5\u9650\u89E3\u8B6F\u6A21\u5F0F\u57F7\u884C\n -Xbootclasspath/a:<\u4EE5 {0} \u5206\u9694\u7684\u76EE\u9304\u548C zip/jar \u6A94\u6848>\n \u9644\u52A0\u5728\u555F\u52D5\u5B89\u88DD\u985E\u5225\u8DEF\u5F91\u7684\u7D50\u5C3E\n -Xdiag \u986F\u793A\u5176\u4ED6\u7684\u8A3A\u65B7\u8A0A\u606F\n -Xdiag:resolver \u986F\u793A\u89E3\u6790\u5668\u8A3A\u65B7\u8A0A\u606F\n -Xnoclassgc \u505C\u7528\u985E\u5225\u8CC7\u6E90\u56DE\u6536\n -Xincgc \u555F\u7528\u6F38\u9032\u8CC7\u6E90\u56DE\u6536\n -Xloggc:<file> \u5C07 GC \u72C0\u614B\u548C\u6642\u6233\u8A18\u9304\u81F3\u6A94\u6848\n -Xbatch \u505C\u7528\u80CC\u666F\u7DE8\u8B6F\n -Xms<size> \u8A2D\u5B9A\u8D77\u59CB Java \u5806\u96C6\u5927\u5C0F\n -Xmx<size> \u8A2D\u5B9A Java \u5806\u96C6\u5927\u5C0F\u4E0A\u9650\n -Xss<size> \u8A2D\u5B9A Java \u57F7\u884C\u7DD2\u5806\u758A\u5927\u5C0F\n -Xprof \u8F38\u51FA CPU \u5206\u6790\u8CC7\u6599\n -Xfuture \u555F\u7528\u6700\u56B4\u683C\u7684\u6AA2\u67E5\uFF0C\u9810\u5148\u4F5C\u70BA\u5C07\u4F86\u7684\u9810\u8A2D\n -Xrs \u6E1B\u5C11 Java/VM \u4F7F\u7528\u4F5C\u696D\u7CFB\u7D71\u4FE1\u865F (\u8ACB\u53C3\u95B1\u6587\u4EF6)\n -Xcheck:jni \u57F7\u884C\u5176\u4ED6\u7684 JNI \u51FD\u6578\u6AA2\u67E5\n -Xshare:off \u4E0D\u5617\u8A66\u4F7F\u7528\u5171\u7528\u985E\u5225\u8CC7\u6599\n -Xshare:auto \u5118\u53EF\u80FD\u4F7F\u7528\u5171\u7528\u985E\u5225\u8CC7\u6599 (\u9810\u8A2D)\n -Xshare:on \u9700\u8981\u4F7F\u7528\u5171\u7528\u985E\u5225\u8CC7\u6599\uFF0C\u5426\u5247\u5931\u6557\u3002\n -XshowSettings \u986F\u793A\u6240\u6709\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:all\n \u986F\u793A\u6240\u6709\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:vm \u986F\u793A\u6240\u6709 VM \u76F8\u95DC\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:properties\n \u986F\u793A\u6240\u6709\u5C6C\u6027\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:locale\n \u986F\u793A\u6240\u6709\u5730\u5340\u8A2D\u5B9A\u76F8\u95DC\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XaddReads:<module>=<other-module>(,<other-module>)*\n \u7121\u8AD6\u6A21\u7D44\u5BA3\u544A\u70BA\u4F55\uFF0C\n <module> \u6703\u8B80\u53D6\u5176\u4ED6\u6A21\u7D44\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n \u7121\u8AD6\u6A21\u7D44\u5BA3\u544A\u70BA\u4F55\uFF0C<module> \u6703\u5C07 <package>\n \u532F\u51FA\u81F3\u5176\u4ED6\u6A21\u7D44\n -Xpatch:<module>=<file>({0}<file>)*\n \u8986\u5BEB\u6216\u52A0\u5F37 JAR \u6A94\u6848\u6216\u76EE\u9304\u4E2D\u7684\n \u6A21\u7D44\u985E\u578B\u548C\u8CC7\u6E90\n -Xdisable-@files \u505C\u7528\u9032\u4E00\u6B65\u7684\u5F15\u6578\u6A94\u6848\u64F4\u5145\n\n-X \u9078\u9805\u4E0D\u662F\u6A19\u6E96\u9078\u9805\uFF0C\u82E5\u6709\u8B8A\u66F4\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
# Translators please note do not translate the options themselves
java.launcher.X.macosx.usage=\n\u4E0B\u5217\u662F Mac OS X \u7279\u5B9A\u9078\u9805:\n -XstartOnFirstThread\n \u5728\u7B2C\u4E00\u500B (AppKit) \u57F7\u884C\u7DD2\u57F7\u884C main() \u65B9\u6CD5\n -Xdock:name=<application name>"\n \u8986\u5BEB\u7D50\u5408\u8AAA\u660E\u756B\u9762\u4E2D\u986F\u793A\u7684\u9810\u8A2D\u61C9\u7528\u7A0B\u5F0F\u540D\u7A31\n -Xdock:icon=<path to icon file>\n \u8986\u5BEB\u7D50\u5408\u8AAA\u660E\u756B\u9762\u4E2D\u986F\u793A\u7684\u9810\u8A2D\u5716\u793A\n\n
java.launcher.cls.error1=\u932F\u8AA4: \u627E\u4E0D\u5230\u6216\u7121\u6CD5\u8F09\u5165\u4E3B\u8981\u985E\u5225 {0}
java.launcher.cls.error2=\u932F\u8AA4: \u4E3B\u8981\u65B9\u6CD5\u4E0D\u662F\u985E\u5225 {1} \u4E2D\u7684 {0}\uFF0C\u8ACB\u5B9A\u7FA9\u4E3B\u8981\u65B9\u6CD5\u70BA:\n public static void main(String[] args)
-java.launcher.cls.error3=\u932F\u8AA4: \u4E3B\u8981\u65B9\u6CD5\u5FC5\u9808\u50B3\u56DE\u985E\u5225 {0} \u4E2D void \u985E\u578B\u7684\u503C\uFF0C \n\u8ACB\u5B9A\u7FA9\u4E3B\u8981\u65B9\u6CD5\u70BA:\n public static void main(String[] args)
+java.launcher.cls.error3=\u932F\u8AA4: \u4E3B\u8981\u65B9\u6CD5\u5FC5\u9808\u50B3\u56DE\u985E\u5225 {0} \u4E2D void \u985E\u578B\u7684\u503C\uFF0C\n\u8ACB\u5B9A\u7FA9\u4E3B\u8981\u65B9\u6CD5\u70BA:\n public static void main(String[] args)
java.launcher.cls.error4=\u932F\u8AA4: \u5728\u985E\u5225 {0} \u4E2D\u627E\u4E0D\u5230\u4E3B\u8981\u65B9\u6CD5\uFF0C\u8ACB\u5B9A\u7FA9\u4E3B\u8981\u65B9\u6CD5\u70BA:\n public static void main(String[] args)\n\u6216\u8005 JavaFX \u61C9\u7528\u7A0B\u5F0F\u985E\u5225\u5FC5\u9808\u64F4\u5145 {1}
java.launcher.cls.error5=\u932F\u8AA4: \u907A\u6F0F\u57F7\u884C\u6B64\u61C9\u7528\u7A0B\u5F0F\u6240\u9700\u7684 JavaFX \u7A0B\u5F0F\u5BE6\u969B\u57F7\u884C\u5143\u4EF6
java.launcher.jar.error1=\u932F\u8AA4: \u5617\u8A66\u958B\u555F\u6A94\u6848 {0} \u6642\u767C\u751F\u672A\u9810\u671F\u7684\u932F\u8AA4
@@ -52,3 +53,5 @@
java.launcher.jar.error3={0} \u4E2D\u6C92\u6709\u4E3B\u8981\u8CC7\u8A0A\u6E05\u55AE\u5C6C\u6027
java.launcher.init.error=\u521D\u59CB\u5316\u932F\u8AA4
java.launcher.javafx.error1=\u932F\u8AA4: JavaFX launchApplication \u65B9\u6CD5\u7684\u7C3D\u7AE0\u932F\u8AA4\uFF0C\u5B83\n\u5FC5\u9808\u5BA3\u544A\u70BA\u975C\u614B\u4E26\u50B3\u56DE void \u985E\u578B\u7684\u503C
+java.launcher.module.error1=\u6A21\u7D44 {0} \u4E0D\u542B MainClass \u5C6C\u6027\uFF0C\u8ACB\u4F7F\u7528 -m <module>/<main-class>
+java.launcher.module.error2=\u932F\u8AA4: \u627E\u4E0D\u5230\u6216\u7121\u6CD5\u8F09\u5165\u6A21\u7D44 {1} \u4E2D\u7684\u4E3B\u8981\u985E\u5225 {0}
--- a/jdk/src/java.base/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java Thu Jun 16 20:56:45 2016 +0000
@@ -62,7 +62,7 @@
// Handle Object and Annotation methods
if (member.equals("equals") && paramTypes.length == 1 &&
paramTypes[0] == Object.class)
- return equalsImpl(args[0]);
+ return equalsImpl(proxy, args[0]);
if (paramTypes.length != 0)
throw new AssertionError("Too many parameters for an annotation method");
@@ -209,8 +209,8 @@
/**
* Implementation of dynamicProxy.equals(Object o)
*/
- private Boolean equalsImpl(Object o) {
- if (o == this)
+ private Boolean equalsImpl(Object proxy, Object o) {
+ if (o == proxy)
return true;
if (!type.isInstance(o))
--- a/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_de.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_de.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.tools.keytool;
/**
- * This class represents the <code>ResourceBundle</code>
+ * <p> This class represents the <code>ResourceBundle</code>
* for the keytool.
*
*/
@@ -48,7 +48,7 @@
"Schl\u00FCssel- und Zertifikatsverwaltungstool"},
{"Commands.", "Befehle:"},
{"Use.keytool.command.name.help.for.usage.of.command.name",
- "\"keytool -command_name -help\" f\u00FCr Verwendung von command_name verwenden"},
+ "Verwenden Sie \"keytool -command_name -help\" f\u00FCr die Verwendung von command_name.\nVerwenden Sie die Option -conf <url>, um eine vorkonfigurierte Optionsdatei anzugeben."},
// keytool: help: commands
{"Generates.a.certificate.request",
"Generiert eine Zertifikatanforderung"}, //-certreq
@@ -72,7 +72,7 @@
{"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
"Importiert Eintr\u00E4ge aus einer Identity-Datenbank im JDK 1.1.x-Stil"}, //-identitydb
{"Imports.a.certificate.or.a.certificate.chain",
- "Importiert ein Zertifikat oder eine Zertifikatkette"}, //-importcert
+ "Importiert ein Zertifikat oder eine Zertifikatskette"}, //-importcert
{"Imports.a.password",
"Importiert ein Kennwort"}, //-importpass
{"Imports.one.or.all.entries.from.another.keystore",
@@ -304,9 +304,9 @@
"{0}, {1,date}, "},
{"alias.", "{0}, "},
{"Entry.type.type.", "Eintragstyp: {0}"},
- {"Certificate.chain.length.", "Zertifikatkettenl\u00E4nge: "},
+ {"Certificate.chain.length.", "Zertifikatskettenl\u00E4nge: "},
{"Certificate.i.1.", "Zertifikat[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA1.", "Zertifikat-Fingerprint (SHA1): "},
+ {"Certificate.fingerprint.SHA.256.", "Zertifikat-Fingerprint (SHA-256): "},
{"Keystore.type.", "Keystore-Typ: "},
{"Keystore.provider.", "Keystore-Provider: "},
{"Your.keystore.contains.keyStore.size.entry",
@@ -346,7 +346,7 @@
{".RETURN.if.same.as.for.otherAlias.",
"\t(RETURN, wenn identisch mit <{0}>)"},
{".PATTERN.printX509Cert",
- "Eigent\u00FCmer: {0}\nAussteller: {1}\nSeriennummer: {2}\nG\u00FCltig von: {3} bis: {4}\nZertifikat-Fingerprints:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t Signaturalgorithmusname: {8}\n\t Version: {9}"},
+ "Eigent\u00FCmer: {0}\nAussteller: {1}\nSeriennummer: {2}\nG\u00FCltig von: {3} bis: {4}\nZertifikatfingerprints:\n\t SHA1: {5}\n\t SHA256: {6}\nSignaturalgorithmusname: {7}\nAlgorithmus des Public Key von Betreff: {8} ({9,number,#})\nVersion: {10}"},
{"What.is.your.first.and.last.name.",
"Wie lautet Ihr Vor- und Nachname?"},
{"What.is.the.name.of.your.organizational.unit.",
@@ -367,7 +367,7 @@
{"Alias.alias.has.no.key",
"Alias <{0}> verf\u00FCgt \u00FCber keinen Schl\u00FCssel"},
{"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "Alias <{0}> verweist auf einen Eintragstyp, der kein Private Key-Eintrag ist. Der Befehl -keyclone unterst\u00FCtzt nur das Clonen von Private Key-Eintr\u00E4gen"},
+ "Alias <{0}> verweist auf einen Eintragstyp, der kein Private Key-Eintrag ist. Der Befehl -keyclone unterst\u00FCtzt nur das Klonen von Private Key-Eintr\u00E4gen"},
{".WARNING.WARNING.WARNING.",
"***************** WARNING WARNING WARNING *****************"},
@@ -388,9 +388,9 @@
{"Certificate.reply.does.not.contain.public.key.for.alias.",
"Zertifikatantwort enth\u00E4lt keinen Public Key f\u00FCr <{0}>"},
{"Incomplete.certificate.chain.in.reply",
- "Unvollst\u00E4ndige Zertifikatkette in Antwort"},
+ "Unvollst\u00E4ndige Zertifikatskette in Antwort"},
{"Certificate.chain.in.reply.does.not.verify.",
- "Zertifikatkette in Antwort verifiziert nicht: "},
+ "Zertifikatskette in Antwort verifiziert nicht: "},
{"Top.level.certificate.in.reply.",
"Zertifikat der obersten Ebene in Antwort:\n"},
{".is.not.trusted.", "... ist nicht vertrauensw\u00FCrdig. "},
@@ -433,6 +433,8 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
+ * <p>
+ *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_es.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_es.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.tools.keytool;
/**
- * This class represents the <code>ResourceBundle</code>
+ * <p> This class represents the <code>ResourceBundle</code>
* for the keytool.
*
*/
@@ -48,7 +48,7 @@
"Herramienta de Gesti\u00F3n de Certificados y Claves"},
{"Commands.", "Comandos:"},
{"Use.keytool.command.name.help.for.usage.of.command.name",
- "Utilice \"keytool -command_name -help\" para la sintaxis de nombre_comando"},
+ "Utilice \"keytool -command_name -help\" para la sintaxis de nombre_comando.\nUtilice la opci\u00F3n -conf <url> para especificar un archivo de opciones preconfigurado."},
// keytool: help: commands
{"Generates.a.certificate.request",
"Genera una solicitud de certificado"}, //-certreq
@@ -306,7 +306,7 @@
{"Entry.type.type.", "Tipo de Entrada: {0}"},
{"Certificate.chain.length.", "Longitud de la Cadena de Certificado: "},
{"Certificate.i.1.", "Certificado[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA1.", "Huella Digital de Certificado (SHA1): "},
+ {"Certificate.fingerprint.SHA.256.", "Huella de certificado (SHA-256): "},
{"Keystore.type.", "Tipo de Almac\u00E9n de Claves: "},
{"Keystore.provider.", "Proveedor de Almac\u00E9n de Claves: "},
{"Your.keystore.contains.keyStore.size.entry",
@@ -346,7 +346,7 @@
{".RETURN.if.same.as.for.otherAlias.",
"\t(INTRO si es el mismo que para <{0}>)"},
{".PATTERN.printX509Cert",
- "Propietario: {0}\nEmisor: {1}\nN\u00FAmero de serie: {2}\nV\u00E1lido desde: {3} hasta: {4}\nHuellas digitales del Certificado:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t Nombre del Algoritmo de Firma: {8}\n\t Versi\u00F3n: {9}"},
+ "Propietario: {0}\nEmisor: {1}\nN\u00FAmero de serie: {2}\nV\u00E1lido desde: {3} hasta: {4}\nHuellas digitales del certificado:\n\t SHA1: {5}\n\t SHA256: {6}\nNombre del algoritmo de firma: {7}\nAlgoritmo de clave p\u00FAblica de asunto: {8} ({9,number,#})\nVersi\u00F3n: {10}"},
{"What.is.your.first.and.last.name.",
"\u00BFCu\u00E1les son su nombre y su apellido?"},
{"What.is.the.name.of.your.organizational.unit.",
@@ -433,6 +433,8 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
+ * <p>
+ *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_fr.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_fr.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.tools.keytool;
/**
- * This class represents the <code>ResourceBundle</code>
+ * <p> This class represents the <code>ResourceBundle</code>
* for the keytool.
*
*/
@@ -48,7 +48,7 @@
"Outil de gestion de certificats et de cl\u00E9s"},
{"Commands.", "Commandes :"},
{"Use.keytool.command.name.help.for.usage.of.command.name",
- "Utiliser \"keytool -command_name -help\" pour la syntaxe de command_name"},
+ "Utilisez \"keytool -command_name -help\" pour la syntaxe de command_name.\nUtilisez l'option -conf <url> pour indiquer un fichier d'options pr\u00E9configur\u00E9es."},
// keytool: help: commands
{"Generates.a.certificate.request",
"G\u00E9n\u00E8re une demande de certificat"}, //-certreq
@@ -306,7 +306,7 @@
{"Entry.type.type.", "Type d''entr\u00E9e\u00A0: {0}"},
{"Certificate.chain.length.", "Longueur de cha\u00EEne du certificat : "},
{"Certificate.i.1.", "Certificat[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA1.", "Empreinte du certificat (SHA1) : "},
+ {"Certificate.fingerprint.SHA.256.", "Empreinte du certificat (SHA-256) : "},
{"Keystore.type.", "Type de fichier de cl\u00E9s : "},
{"Keystore.provider.", "Fournisseur de fichier de cl\u00E9s : "},
{"Your.keystore.contains.keyStore.size.entry",
@@ -346,7 +346,7 @@
{".RETURN.if.same.as.for.otherAlias.",
"\t(appuyez sur Entr\u00E9e si le r\u00E9sultat est identique \u00E0 <{0}>)"},
{".PATTERN.printX509Cert",
- "Propri\u00E9taire : {0}\nEmetteur : {1}\nNum\u00E9ro de s\u00E9rie : {2}\nValide du : {3} au : {4}\nEmpreintes du certificat :\n\t MD5: {5}\n\t SHA1 : {6}\n\t SHA256 : {7}\n\t Nom de l''algorithme de signature : {8}\n\t Version : {9}"},
+ "Propri\u00E9taire : {0}\nEmetteur : {1}\nNum\u00E9ro de s\u00E9rie : {2}\nValide du : {3} au : {4}\nEmpreintes du certificat :\n\t SHA1 : {5}\n\t SHA256 : {6}\nNom de l''algorithme de signature : {7}\nAlgorithme de cl\u00E9 publique du sujet : {8} ({9,number,#})\nVersion : {10}"},
{"What.is.your.first.and.last.name.",
"Quels sont vos nom et pr\u00E9nom ?"},
{"What.is.the.name.of.your.organizational.unit.",
@@ -433,6 +433,8 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
+ * <p>
+ *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_it.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_it.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.tools.keytool;
/**
- * This class represents the <code>ResourceBundle</code>
+ * <p> This class represents the <code>ResourceBundle</code>
* for the keytool.
*
*/
@@ -48,7 +48,7 @@
"Strumento di gestione di chiavi e certificati"},
{"Commands.", "Comandi:"},
{"Use.keytool.command.name.help.for.usage.of.command.name",
- "Utilizzare \"keytool -command_name -help\" per informazioni sull'uso di command_name"},
+ "Utilizzare \"keytool -command_name -help\" per informazioni sull'uso di command_name.\nUtilizzare l'opzione -conf <url> per specificare un file di opzioni preconfigurato."},
// keytool: help: commands
{"Generates.a.certificate.request",
"Genera una richiesta di certificato"}, //-certreq
@@ -306,7 +306,7 @@
{"Entry.type.type.", "Tipo di voce: {0}"},
{"Certificate.chain.length.", "Lunghezza catena certificati: "},
{"Certificate.i.1.", "Certificato[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA1.", "Impronta digitale certificato (SHA1): "},
+ {"Certificate.fingerprint.SHA.256.", "Copia di certificato (SHA-256): "},
{"Keystore.type.", "Tipo keystore: "},
{"Keystore.provider.", "Provider keystore: "},
{"Your.keystore.contains.keyStore.size.entry",
@@ -346,7 +346,7 @@
{".RETURN.if.same.as.for.otherAlias.",
"\t(INVIO se corrisponde al nome di <{0}>)"},
{".PATTERN.printX509Cert",
- "Proprietario: {0}\nAutorit\u00E0 emittente: {1}\nNumero di serie: {2}\nValido da: {3} a: {4}\nImpronte digitali certificato:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t Nome algoritmo firma: {8}\n\t Versione: {9}"},
+ "Proprietario: {0}\nEmittente: {1}\nNumero di serie: {2}\nValido da: {3} a: {4}\nCopie di certificato:\n\t SHA1: {5}\n\t SHA256: {6}\nNome algoritmo firma: {7}\nAlgoritmo di chiave pubblica oggetto: {8} ({9,number,#})\nVersione: {10}"},
{"What.is.your.first.and.last.name.",
"Specificare nome e cognome"},
{"What.is.the.name.of.your.organizational.unit.",
@@ -433,6 +433,8 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
+ * <p>
+ *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_ja.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_ja.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.tools.keytool;
/**
- * This class represents the <code>ResourceBundle</code>
+ * <p> This class represents the <code>ResourceBundle</code>
* for the keytool.
*
*/
@@ -48,7 +48,7 @@
"\u30AD\u30FC\u304A\u3088\u3073\u8A3C\u660E\u66F8\u7BA1\u7406\u30C4\u30FC\u30EB"},
{"Commands.", "\u30B3\u30DE\u30F3\u30C9:"},
{"Use.keytool.command.name.help.for.usage.of.command.name",
- "command_name\u306E\u4F7F\u7528\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306F\"keytool -command_name -help\"\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044"},
+ "command_name\u306E\u4F7F\u7528\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306F\u3001\"keytool -command_name -help\"\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\n\u4E8B\u524D\u69CB\u6210\u6E08\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3059\u308B\u306B\u306F\u3001-conf <url>\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002"},
// keytool: help: commands
{"Generates.a.certificate.request",
"\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u751F\u6210\u3057\u307E\u3059"}, //-certreq
@@ -248,7 +248,7 @@
"\u65E2\u5B58\u306E\u30A8\u30F3\u30C8\u30EA\u306E\u5225\u540D{0}\u304C\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\u3002\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\u3002[\u3044\u3044\u3048]: "},
{"Too.many.failures.try.later", "\u969C\u5BB3\u304C\u591A\u3059\u304E\u307E\u3059 - \u5F8C\u3067\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044"},
{"Certification.request.stored.in.file.filename.",
- "\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u30D5\u30A1\u30A4\u30EB<{0}>\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3057\u305F"},
+ "\u8A8D\u8A3C\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u30D5\u30A1\u30A4\u30EB<{0}>\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3057\u305F"},
{"Submit.this.to.your.CA", "\u3053\u308C\u3092CA\u306B\u63D0\u51FA\u3057\u3066\u304F\u3060\u3055\u3044"},
{"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
"\u5225\u540D\u3092\u6307\u5B9A\u3057\u306A\u3044\u5834\u5408\u3001\u51FA\u529B\u5148\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u5225\u540D\u304A\u3088\u3073\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093"},
@@ -306,7 +306,7 @@
{"Entry.type.type.", "\u30A8\u30F3\u30C8\u30EA\u30FB\u30BF\u30A4\u30D7: {0}"},
{"Certificate.chain.length.", "\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u306E\u9577\u3055: "},
{"Certificate.i.1.", "\u8A3C\u660E\u66F8[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA1.", "\u8A3C\u660E\u66F8\u306E\u30D5\u30A3\u30F3\u30AC\u30D7\u30EA\u30F3\u30C8(SHA1): "},
+ {"Certificate.fingerprint.SHA.256.", "\u8A3C\u660E\u66F8\u306E\u30D5\u30A3\u30F3\u30AC\u30D7\u30EA\u30F3\u30C8(SHA-256): "},
{"Keystore.type.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30BF\u30A4\u30D7: "},
{"Keystore.provider.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0: "},
{"Your.keystore.contains.keyStore.size.entry",
@@ -346,22 +346,22 @@
{".RETURN.if.same.as.for.otherAlias.",
"\t(<{0}>\u3068\u540C\u3058\u5834\u5408\u306FRETURN\u3092\u62BC\u3057\u3066\u304F\u3060\u3055\u3044)"},
{".PATTERN.printX509Cert",
- "\u6240\u6709\u8005: {0}\n\u767A\u884C\u8005: {1}\n\u30B7\u30EA\u30A2\u30EB\u756A\u53F7: {2}\n\u6709\u52B9\u671F\u9593\u306E\u958B\u59CB\u65E5: {3}\u7D42\u4E86\u65E5: {4}\n\u8A3C\u660E\u66F8\u306E\u30D5\u30A3\u30F3\u30AC\u30D7\u30EA\u30F3\u30C8:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t \u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u540D: {8}\n\t \u30D0\u30FC\u30B8\u30E7\u30F3: {9}"},
+ "\u6240\u6709\u8005: {0}\n\u767A\u884C\u8005: {1}\n\u30B7\u30EA\u30A2\u30EB\u756A\u53F7: {2}\n\u6709\u52B9\u671F\u9593\u306E\u958B\u59CB\u65E5: {3}\u7D42\u4E86\u65E5: {4}\n\u8A3C\u660E\u66F8\u306E\u30D5\u30A3\u30F3\u30AC\u30D7\u30EA\u30F3\u30C8:\n\t SHA1: {5}\n\t SHA256: {6}\n\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u540D: {7}\n\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u516C\u958B\u9375\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: {8} ({9,number,#})\n\u30D0\u30FC\u30B8\u30E7\u30F3: {10}"},
{"What.is.your.first.and.last.name.",
- "\u59D3\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
+ "\u59D3\u540D\u306F\u4F55\u3067\u3059\u304B\u3002"},
{"What.is.the.name.of.your.organizational.unit.",
- "\u7D44\u7E54\u5358\u4F4D\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
+ "\u7D44\u7E54\u5358\u4F4D\u540D\u306F\u4F55\u3067\u3059\u304B\u3002"},
{"What.is.the.name.of.your.organization.",
- "\u7D44\u7E54\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
+ "\u7D44\u7E54\u540D\u306F\u4F55\u3067\u3059\u304B\u3002"},
{"What.is.the.name.of.your.City.or.Locality.",
- "\u90FD\u5E02\u540D\u307E\u305F\u306F\u5730\u57DF\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
+ "\u90FD\u5E02\u540D\u307E\u305F\u306F\u5730\u57DF\u540D\u306F\u4F55\u3067\u3059\u304B\u3002"},
{"What.is.the.name.of.your.State.or.Province.",
- "\u90FD\u9053\u5E9C\u770C\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
+ "\u90FD\u9053\u5E9C\u770C\u540D\u307E\u305F\u306F\u5DDE\u540D\u306F\u4F55\u3067\u3059\u304B\u3002"},
{"What.is.the.two.letter.country.code.for.this.unit.",
- "\u3053\u306E\u5358\u4F4D\u306B\u8A72\u5F53\u3059\u308B2\u6587\u5B57\u306E\u56FD\u30B3\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
+ "\u3053\u306E\u5358\u4F4D\u306B\u8A72\u5F53\u3059\u308B2\u6587\u5B57\u306E\u56FD\u30B3\u30FC\u30C9\u306F\u4F55\u3067\u3059\u304B\u3002"},
{"Is.name.correct.", "{0}\u3067\u3088\u308D\u3057\u3044\u3067\u3059\u304B\u3002"},
{"no", "\u3044\u3044\u3048"},
- {"yes", "\u306F\u3044"},
+ {"yes", "yes"},
{"y", "y"},
{".defaultValue.", " [{0}]: "},
{"Alias.alias.has.no.key",
@@ -433,6 +433,8 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
+ * <p>
+ *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_ko.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_ko.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.tools.keytool;
/**
- * This class represents the <code>ResourceBundle</code>
+ * <p> This class represents the <code>ResourceBundle</code>
* for the keytool.
*
*/
@@ -48,7 +48,7 @@
"\uD0A4 \uBC0F \uC778\uC99D\uC11C \uAD00\uB9AC \uD234"},
{"Commands.", "\uBA85\uB839:"},
{"Use.keytool.command.name.help.for.usage.of.command.name",
- "command_name \uC0AC\uC6A9\uBC95\uC5D0 \"keytool -command_name -help\" \uC0AC\uC6A9"},
+ "command_name \uC0AC\uC6A9\uBC95\uC5D0 \"keytool -command_name -help\"\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.\n-conf <url> \uC635\uC158\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC0AC\uC804 \uAD6C\uC131\uB41C \uC635\uC158 \uD30C\uC77C\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4."},
// keytool: help: commands
{"Generates.a.certificate.request",
"\uC778\uC99D\uC11C \uC694\uCCAD\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-certreq
@@ -306,7 +306,7 @@
{"Entry.type.type.", "\uD56D\uBAA9 \uC720\uD615: {0}"},
{"Certificate.chain.length.", "\uC778\uC99D\uC11C \uCCB4\uC778 \uAE38\uC774: "},
{"Certificate.i.1.", "\uC778\uC99D\uC11C[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA1.", "\uC778\uC99D\uC11C \uC9C0\uBB38(SHA1): "},
+ {"Certificate.fingerprint.SHA.256.", "\uC778\uC99D\uC11C \uC9C0\uBB38(SHA-256): "},
{"Keystore.type.", "\uD0A4 \uC800\uC7A5\uC18C \uC720\uD615: "},
{"Keystore.provider.", "\uD0A4 \uC800\uC7A5\uC18C \uC81C\uACF5\uC790: "},
{"Your.keystore.contains.keyStore.size.entry",
@@ -346,7 +346,7 @@
{".RETURN.if.same.as.for.otherAlias.",
"\t(<{0}>\uACFC(\uC640) \uB3D9\uC77C\uD55C \uACBD\uC6B0 Enter \uD0A4\uB97C \uB204\uB984)"},
{".PATTERN.printX509Cert",
- "\uC18C\uC720\uC790: {0}\n\uBC1C\uD589\uC790: {1}\n\uC77C\uB828 \uBC88\uD638: {2}\n\uC801\uD569\uD55C \uC2DC\uC791 \uB0A0\uC9DC: {3}, \uC885\uB8CC \uB0A0\uC9DC: {4}\n\uC778\uC99D\uC11C \uC9C0\uBB38:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t \uC11C\uBA85 \uC54C\uACE0\uB9AC\uC998 \uC774\uB984: {8}\n\t \uBC84\uC804: {9}"},
+ "\uC18C\uC720\uC790: {0}\n\uBC1C\uD589\uC790: {1}\n\uC77C\uB828 \uBC88\uD638: {2}\n\uC801\uD569\uD55C \uC2DC\uC791 \uB0A0\uC9DC: {3} \uC885\uB8CC \uB0A0\uC9DC: {4}\n\uC778\uC99D\uC11C \uC9C0\uBB38:\n\t SHA1: {5}\n\t SHA256: {6}\n\uC11C\uBA85 \uC54C\uACE0\uB9AC\uC998 \uC774\uB984: {7}\n\uC8FC\uCCB4 \uACF5\uC6A9 \uD0A4 \uC54C\uACE0\uB9AC\uC998: {8} ({9,number,#})\n\uBC84\uC804: {10}"},
{"What.is.your.first.and.last.name.",
"\uC774\uB984\uACFC \uC131\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624."},
{"What.is.the.name.of.your.organizational.unit.",
@@ -433,6 +433,8 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
+ * <p>
+ *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_pt_BR.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_pt_BR.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.tools.keytool;
/**
- * This class represents the <code>ResourceBundle</code>
+ * <p> This class represents the <code>ResourceBundle</code>
* for the keytool.
*
*/
@@ -48,14 +48,14 @@
"Ferramenta de Gerenciamento de Chave e Certificado"},
{"Commands.", "Comandos:"},
{"Use.keytool.command.name.help.for.usage.of.command.name",
- "Use \"keytool -command_name -help\" para uso de command_name"},
+ "Utilize \"keytool -command_name -help\" para uso de command_name.\nUtilize a op\u00E7\u00E3o -conf <url> para especificar um arquivo de op\u00E7\u00F5es pr\u00E9-configurado."},
// keytool: help: commands
{"Generates.a.certificate.request",
"Gera uma solicita\u00E7\u00E3o de certificado"}, //-certreq
{"Changes.an.entry.s.alias",
"Altera um alias de entrada"}, //-changealias
{"Deletes.an.entry",
- "Deleta uma entrada"}, //-delete
+ "Exclui uma entrada"}, //-delete
{"Exports.certificate",
"Exporta o certificado"}, //-exportcert
{"Generates.a.key.pair",
@@ -306,7 +306,7 @@
{"Entry.type.type.", "Tipo de entrada: {0}"},
{"Certificate.chain.length.", "Comprimento da cadeia de certificados: "},
{"Certificate.i.1.", "Certificado[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA1.", "Fingerprint (SHA1) do certificado: "},
+ {"Certificate.fingerprint.SHA.256.", "Fingerprint (SHA-256) do certificado: "},
{"Keystore.type.", "Tipo de \u00E1rea de armazenamento de chaves: "},
{"Keystore.provider.", "Fornecedor da \u00E1rea de armazenamento de chaves: "},
{"Your.keystore.contains.keyStore.size.entry",
@@ -346,7 +346,7 @@
{".RETURN.if.same.as.for.otherAlias.",
"\t(RETURN se for igual ao de <{0}>)"},
{".PATTERN.printX509Cert",
- "Propriet\u00E1rio: {0}\nEmissor: {1}\nN\u00FAmero de s\u00E9rie: {2}\nV\u00E1lido de: {3} a: {4}\nFingerprints do certificado:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t Nome do algoritmo de assinatura: {8}\n\t Vers\u00E3o: {9}"},
+ "Propriet\u00E1rio: {0}\nEmissor: {1}\nN\u00FAmero de s\u00E9rie: {2}\nV\u00E1lido de {3} at\u00E9 {4}\nFingerprints do certificado:\n\t SHA1: {5}\n\t SHA256: {6}\nNome do algoritmo de assinatura: {7}\nAlgoritmo de Chave P\u00FAblica do Assunto: {8} ({9,number,#})\nVers\u00E3o: {10}"},
{"What.is.your.first.and.last.name.",
"Qual \u00E9 o seu nome e o seu sobrenome?"},
{"What.is.the.name.of.your.organizational.unit.",
@@ -433,6 +433,8 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
+ * <p>
+ *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_sv.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_sv.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.tools.keytool;
/**
- * This class represents the <code>ResourceBundle</code>
+ * <p> This class represents the <code>ResourceBundle</code>
* for the keytool.
*
*/
@@ -48,7 +48,7 @@
"Hanteringsverktyg f\u00F6r nycklar och certifikat"},
{"Commands.", "Kommandon:"},
{"Use.keytool.command.name.help.for.usage.of.command.name",
- "L\u00E4s \"Hj\u00E4lp - Nyckelverktyg - command_name\" om anv\u00E4ndning av command_name"},
+ "Anv\u00E4nd \"keytool -command_name -help\" f\u00F6r syntax f\u00F6r command_name.\nAnv\u00E4nd alternativet -conf <url> f\u00F6r att ange en f\u00F6rkonfigurerad alternativfil."},
// keytool: help: commands
{"Generates.a.certificate.request",
"Genererar certifikatbeg\u00E4ran"}, //-certreq
@@ -175,7 +175,7 @@
{"validity.number.of.days",
"antal dagar f\u00F6r giltighet"}, //-validity
{"Serial.ID.of.cert.to.revoke",
- "Seriellt ID f\u00F6r certifikat som ska \u00E5terkallas"}, //-id
+ "Seriellt id f\u00F6r certifikat som ska \u00E5terkallas"}, //-id
// keytool: Running part
{"keytool.error.", "nyckelverktygsfel: "},
{"Illegal.option.", "Otill\u00E5tet alternativ: "},
@@ -306,7 +306,7 @@
{"Entry.type.type.", "Posttyp: {0}"},
{"Certificate.chain.length.", "L\u00E4ngd p\u00E5 certifikatskedja: "},
{"Certificate.i.1.", "Certifikat[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA1.", "Certifikatets fingeravtryck (SHA1): "},
+ {"Certificate.fingerprint.SHA.256.", "Certifikatfingeravtryck (SHA-256): "},
{"Keystore.type.", "Nyckellagertyp: "},
{"Keystore.provider.", "Nyckellagerleverant\u00F6r: "},
{"Your.keystore.contains.keyStore.size.entry",
@@ -346,7 +346,7 @@
{".RETURN.if.same.as.for.otherAlias.",
"\t(RETURN om det \u00E4r det samma som f\u00F6r <{0}>)"},
{".PATTERN.printX509Cert",
- "\u00C4gare: {0}\nUtf\u00E4rdare: {1}\nSerienummer: {2}\nGiltigt fr\u00E5n den: {3} till: {4}\nCertifikatets fingeravtryck:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t Namn p\u00E5 signaturalgoritm: {8}\n\t Version: {9}"},
+ "\u00C4gare: {0}\nUtf\u00E4rdare: {1}\nSerienummer: {2}\nGiltigt fr\u00E5n: {3}, till: {4}\nCertifikatfingeravtryck:\n\t SHA1: {5}\n\t SHA256: {6}\nSignaturalgoritmnamn: {7}\n\u00C4mne f\u00F6r algoritm f\u00F6r \u00F6ppen nyckel: {8} ({9,number,#})\nVersion: {10}"},
{"What.is.your.first.and.last.name.",
"Vad heter du i f\u00F6r- och efternamn?"},
{"What.is.the.name.of.your.organizational.unit.",
@@ -373,7 +373,7 @@
"***************** WARNING WARNING WARNING *****************"},
{"Signer.d.", "Signerare #%d:"},
{"Timestamp.", "Tidsst\u00E4mpel:"},
- {"Signature.", "Underskrift:"},
+ {"Signature.", "Signatur:"},
{"CRLs.", "CRL:er:"},
{"Certificate.owner.", "Certifikat\u00E4gare: "},
{"Not.a.signed.jar.file", "Ingen signerad jar-fil"},
@@ -433,6 +433,8 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
+ * <p>
+ *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_CN.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_CN.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.tools.keytool;
/**
- * This class represents the <code>ResourceBundle</code>
+ * <p> This class represents the <code>ResourceBundle</code>
* for the keytool.
*
*/
@@ -48,7 +48,7 @@
"\u5BC6\u94A5\u548C\u8BC1\u4E66\u7BA1\u7406\u5DE5\u5177"},
{"Commands.", "\u547D\u4EE4:"},
{"Use.keytool.command.name.help.for.usage.of.command.name",
- "\u4F7F\u7528 \"keytool -command_name -help\" \u83B7\u53D6 command_name \u7684\u7528\u6CD5"},
+ "\u4F7F\u7528 \"keytool -command_name -help\" \u53EF\u83B7\u53D6 command_name \u7684\u7528\u6CD5\u3002\n\u4F7F\u7528 -conf <url> \u9009\u9879\u53EF\u6307\u5B9A\u9884\u914D\u7F6E\u7684\u9009\u9879\u6587\u4EF6\u3002"},
// keytool: help: commands
{"Generates.a.certificate.request",
"\u751F\u6210\u8BC1\u4E66\u8BF7\u6C42"}, //-certreq
@@ -306,7 +306,7 @@
{"Entry.type.type.", "\u6761\u76EE\u7C7B\u578B: {0}"},
{"Certificate.chain.length.", "\u8BC1\u4E66\u94FE\u957F\u5EA6: "},
{"Certificate.i.1.", "\u8BC1\u4E66[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA1.", "\u8BC1\u4E66\u6307\u7EB9 (SHA1): "},
+ {"Certificate.fingerprint.SHA.256.", "\u8BC1\u4E66\u6307\u7EB9 (SHA-256): "},
{"Keystore.type.", "\u5BC6\u94A5\u5E93\u7C7B\u578B: "},
{"Keystore.provider.", "\u5BC6\u94A5\u5E93\u63D0\u4F9B\u65B9: "},
{"Your.keystore.contains.keyStore.size.entry",
@@ -346,7 +346,7 @@
{".RETURN.if.same.as.for.otherAlias.",
"\t(\u5982\u679C\u548C <{0}> \u76F8\u540C, \u5219\u6309\u56DE\u8F66)"},
{".PATTERN.printX509Cert",
- "\u6240\u6709\u8005: {0}\n\u53D1\u5E03\u8005: {1}\n\u5E8F\u5217\u53F7: {2}\n\u6709\u6548\u671F\u5F00\u59CB\u65E5\u671F: {3}, \u622A\u6B62\u65E5\u671F: {4}\n\u8BC1\u4E66\u6307\u7EB9:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t \u7B7E\u540D\u7B97\u6CD5\u540D\u79F0: {8}\n\t \u7248\u672C: {9}"},
+ "\u6240\u6709\u8005: {0}\n\u53D1\u5E03\u8005: {1}\n\u5E8F\u5217\u53F7: {2}\n\u751F\u6548\u65F6\u95F4: {3}, \u5931\u6548\u65F6\u95F4: {4}\n\u8BC1\u4E66\u6307\u7EB9:\n\t SHA1: {5}\n\t SHA256: {6}\n\u7B7E\u540D\u7B97\u6CD5\u540D\u79F0: {7}\n\u4E3B\u4F53\u516C\u5171\u5BC6\u94A5\u7B97\u6CD5: {8} ({9,number,#})\n\u7248\u672C: {10}"},
{"What.is.your.first.and.last.name.",
"\u60A8\u7684\u540D\u5B57\u4E0E\u59D3\u6C0F\u662F\u4EC0\u4E48?"},
{"What.is.the.name.of.your.organizational.unit.",
@@ -433,6 +433,8 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
+ * <p>
+ *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_TW.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_TW.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.tools.keytool;
/**
- * This class represents the <code>ResourceBundle</code>
+ * <p> This class represents the <code>ResourceBundle</code>
* for the keytool.
*
*/
@@ -48,7 +48,7 @@
"\u91D1\u9470\u8207\u6191\u8B49\u7BA1\u7406\u5DE5\u5177"},
{"Commands.", "\u547D\u4EE4:"},
{"Use.keytool.command.name.help.for.usage.of.command.name",
- "\u4F7F\u7528 \"keytool -command_name -help\" \u53D6\u5F97 command_name \u7684\u7528\u6CD5"},
+ "\u4F7F\u7528 \"keytool -command_name -help\" \u53D6\u5F97 command_name \u7684\u7528\u6CD5\u3002\n\u4F7F\u7528 -conf <url> \u9078\u9805\u6307\u5B9A\u9810\u5148\u8A2D\u5B9A\u7684\u9078\u9805\u6A94\u6848\u3002"},
// keytool: help: commands
{"Generates.a.certificate.request",
"\u7522\u751F\u6191\u8B49\u8981\u6C42"}, //-certreq
@@ -306,7 +306,7 @@
{"Entry.type.type.", "\u9805\u76EE\u985E\u578B: {0}"},
{"Certificate.chain.length.", "\u6191\u8B49\u93C8\u9577\u5EA6: "},
{"Certificate.i.1.", "\u6191\u8B49 [{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA1.", "\u6191\u8B49\u6307\u7D0B (SHA1): "},
+ {"Certificate.fingerprint.SHA.256.", "\u6191\u8B49\u6307\u7D0B (SHA-256): "},
{"Keystore.type.", "\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B: "},
{"Keystore.provider.", "\u91D1\u9470\u5132\u5B58\u5EAB\u63D0\u4F9B\u8005: "},
{"Your.keystore.contains.keyStore.size.entry",
@@ -346,7 +346,7 @@
{".RETURN.if.same.as.for.otherAlias.",
"\t(RETURN \u5982\u679C\u548C <{0}> \u7684\u76F8\u540C)"},
{".PATTERN.printX509Cert",
- "\u64C1\u6709\u8005: {0}\n\u767C\u51FA\u8005: {1}\n\u5E8F\u865F: {2}\n\u6709\u6548\u671F\u81EA: {3} \u5230: {4}\n\u6191\u8B49\u6307\u7D0B:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t \u7C3D\u7AE0\u6F14\u7B97\u6CD5\u540D\u7A31: {8}\n\t \u7248\u672C: {9}"},
+ "\u64C1\u6709\u8005: {0}\n\u767C\u51FA\u8005: {1}\n\u5E8F\u865F: {2}\n\u6709\u6548\u671F\u81EA: {3} \u5230: {4}\n\u6191\u8B49\u6307\u7D0B:\n\t SHA1: {5}\n\t SHA256: {6}\n\u7C3D\u7AE0\u6F14\u7B97\u6CD5\u540D\u7A31: {7}\n\u4E3B\u9AD4\u516C\u958B\u91D1\u9470\u6F14\u7B97\u6CD5: {8} ({9,number,#})\n\u7248\u672C: {10}"},
{"What.is.your.first.and.last.name.",
"\u60A8\u7684\u540D\u5B57\u8207\u59D3\u6C0F\u70BA\u4F55\uFF1F"},
{"What.is.the.name.of.your.organizational.unit.",
@@ -381,9 +381,9 @@
"\u6C92\u6709\u4F86\u81EA SSL \u4F3A\u670D\u5668\u7684\u6191\u8B49"},
{".The.integrity.of.the.information.stored.in.your.keystore.",
- "* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u8CC7\u8A0A *\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C*\n* \u60A8\u5FC5\u9808\u63D0\u4F9B\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u3002 *"},
+ "* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u8CC7\u8A0A *\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C *\n* \u60A8\u5FC5\u9808\u63D0\u4F9B\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u3002 *"},
{".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC srckeystore \u4E2D\u8CC7\u8A0A*\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C\u60A8\u5FC5\u9808 *\n* \u63D0\u4F9B srckeystore \u5BC6\u78BC\u3002 *"},
+ "* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC srckeystore \u4E2D\u8CC7\u8A0A *\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C\u60A8 *\n* \u5FC5\u9808\u63D0\u4F9B srckeystore \u5BC6\u78BC\u3002 *"},
{"Certificate.reply.does.not.contain.public.key.for.alias.",
"\u6191\u8B49\u56DE\u8986\u4E26\u672A\u5305\u542B <{0}> \u7684\u516C\u958B\u91D1\u9470"},
@@ -433,6 +433,8 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
+ * <p>
+ *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_ko.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_ko.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -88,7 +88,7 @@
{"Keystore.alias.","\uD0A4 \uC800\uC7A5\uC18C \uBCC4\uCE6D: "},
{"Keystore.password.","\uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638: "},
{"Private.key.password.optional.",
- "\uC804\uC6A9 \uD0A4 \uBE44\uBC00\uBC88\uD638(\uC120\uD0DD \uC0AC\uD56D): "},
+ "\uC804\uC6A9 \uD0A4 \uBE44\uBC00\uBC88\uD638(\uC120\uD0DD\uC0AC\uD56D): "},
// com.sun.security.auth.module.Krb5LoginModule
{"Kerberos.username.defUsername.",
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_sv.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_sv.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -117,7 +117,7 @@
{"only.Principal.based.grant.entries.permitted",
"endast identitetshavarbaserade poster till\u00E5ts"},
{"expected.permission.entry", "f\u00F6rv\u00E4ntade beh\u00F6righetspost"},
- {"number.", "antal "},
+ {"number.", "nummer"},
{"expected.expect.read.end.of.file.",
"f\u00F6rv\u00E4ntade {0}, l\u00E4ste filslut"},
{"expected.read.end.of.file", "f\u00F6rv\u00E4ntade ';', l\u00E4ste filslut"},
--- a/jdk/src/java.base/share/classes/sun/security/util/Resources_de.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/Resources_de.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.util;
/**
- * <p> This class represents the <code>ResourceBundle</code>
+ * This class represents the <code>ResourceBundle</code>
* for javax.security.auth and sun.security.
*
*/
@@ -160,8 +160,6 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
- * <p>
- *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/util/Resources_es.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/Resources_es.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.util;
/**
- * <p> This class represents the <code>ResourceBundle</code>
+ * This class represents the <code>ResourceBundle</code>
* for javax.security.auth and sun.security.
*
*/
@@ -134,7 +134,7 @@
"no se puede especificar Principal con una clase de comod\u00EDn sin un nombre de comod\u00EDn"},
{"expected.codeBase.or.SignedBy.or.Principal",
"se esperaba codeBase o SignedBy o Principal"},
- {"expected.permission.entry", "se esperaba una entrada de permiso"},
+ {"expected.permission.entry", "se esperaba un permiso de entrada"},
{"number.", "n\u00FAmero "},
{"expected.expect.read.end.of.file.",
"se esperaba [{0}], se ha le\u00EDdo [final de archivo]"},
@@ -160,8 +160,6 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
- * <p>
- *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/util/Resources_fr.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/Resources_fr.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.util;
/**
- * <p> This class represents the <code>ResourceBundle</code>
+ * This class represents the <code>ResourceBundle</code>
* for javax.security.auth and sun.security.
*
*/
@@ -160,8 +160,6 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
- * <p>
- *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/util/Resources_it.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/Resources_it.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.util;
/**
- * <p> This class represents the <code>ResourceBundle</code>
+ * This class represents the <code>ResourceBundle</code>
* for javax.security.auth and sun.security.
*
*/
@@ -160,8 +160,6 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
- * <p>
- *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/util/Resources_ja.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/Resources_ja.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.util;
/**
- * <p> This class represents the <code>ResourceBundle</code>
+ * This class represents the <code>ResourceBundle</code>
* for javax.security.auth and sun.security.
*
*/
@@ -160,8 +160,6 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
- * <p>
- *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/util/Resources_ko.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/Resources_ko.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.util;
/**
- * <p> This class represents the <code>ResourceBundle</code>
+ * This class represents the <code>ResourceBundle</code>
* for javax.security.auth and sun.security.
*
*/
@@ -160,8 +160,6 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
- * <p>
- *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/util/Resources_pt_BR.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/Resources_pt_BR.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.util;
/**
- * <p> This class represents the <code>ResourceBundle</code>
+ * This class represents the <code>ResourceBundle</code>
* for javax.security.auth and sun.security.
*
*/
@@ -160,8 +160,6 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
- * <p>
- *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/util/Resources_sv.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/Resources_sv.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.util;
/**
- * <p> This class represents the <code>ResourceBundle</code>
+ * This class represents the <code>ResourceBundle</code>
* for javax.security.auth and sun.security.
*
*/
@@ -135,7 +135,7 @@
{"expected.codeBase.or.SignedBy.or.Principal",
"f\u00F6rv\u00E4ntad codeBase eller SignedBy eller identitetshavare"},
{"expected.permission.entry", "f\u00F6rv\u00E4ntade beh\u00F6righetspost"},
- {"number.", "antal "},
+ {"number.", "nummer"},
{"expected.expect.read.end.of.file.",
"f\u00F6rv\u00E4ntade [{0}], l\u00E4ste [filslut]"},
{"expected.read.end.of.file.",
@@ -160,8 +160,6 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
- * <p>
- *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/util/Resources_zh_CN.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/Resources_zh_CN.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.util;
/**
- * <p> This class represents the <code>ResourceBundle</code>
+ * This class represents the <code>ResourceBundle</code>
* for javax.security.auth and sun.security.
*
*/
@@ -160,8 +160,6 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
- * <p>
- *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/security/util/Resources_zh_TW.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/security/util/Resources_zh_TW.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.util;
/**
- * <p> This class represents the <code>ResourceBundle</code>
+ * This class represents the <code>ResourceBundle</code>
* for javax.security.auth and sun.security.
*
*/
@@ -83,7 +83,7 @@
// javax.security.auth.login.LoginContext
{"Invalid.null.input.name", "\u7121\u6548\u7A7A\u503C\u8F38\u5165: \u540D\u7A31"},
{"No.LoginModules.configured.for.name",
- "\u7121\u91DD\u5C0D {0} \u914D\u7F6E\u7684 LoginModules"},
+ "\u7121\u91DD\u5C0D {0} \u8A2D\u5B9A\u7684 LoginModules"},
{"invalid.null.Subject.provided", "\u63D0\u4F9B\u7121\u6548\u7A7A\u503C\u4E3B\u984C"},
{"invalid.null.CallbackHandler.provided",
"\u63D0\u4F9B\u7121\u6548\u7A7A\u503C CallbackHandler"},
@@ -160,8 +160,6 @@
/**
* Returns the contents of this <code>ResourceBundle</code>.
*
- * <p>
- *
* @return the contents of this <code>ResourceBundle</code>.
*/
@Override
--- a/jdk/src/java.base/share/classes/sun/util/locale/LocaleMatcher.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/classes/sun/util/locale/LocaleMatcher.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -228,7 +228,8 @@
rangeForRegex = rangeForRegex.substring(0, index);
// if range ends with an extension key, truncate it.
- if (rangeForRegex.lastIndexOf('-') == rangeForRegex.length()-2) {
+ index = rangeForRegex.lastIndexOf('-');
+ if (index >= 0 && index == rangeForRegex.length()-2) {
rangeForRegex =
rangeForRegex.substring(0, rangeForRegex.length()-2);
}
--- a/jdk/src/java.base/share/conf/security/java.policy Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/conf/security/java.policy Thu Jun 16 20:56:45 2016 +0000
@@ -100,6 +100,18 @@
permission java.security.AllPermission;
};
+grant codeBase "jrt:/java.smartcardio" {
+ permission javax.smartcardio.CardPermission "*", "*";
+ permission java.lang.RuntimePermission "loadLibrary.j2pcsc";
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.security.*";
+ permission java.util.PropertyPermission "*", "read";
+ // needed for looking up native PC/SC library
+ permission java.io.FilePermission "<<ALL FILES>>","read";
+ permission java.security.SecurityPermission "putProviderProperty.SunPCSC";
+ permission java.security.SecurityPermission "clearProviderProperties.SunPCSC";
+ permission java.security.SecurityPermission "removeProviderProperty.SunPCSC";
+};
+
grant codeBase "jrt:/java.xml.bind" {
permission java.lang.RuntimePermission "accessClassInPackage.com.sun.xml.internal.*";
permission java.lang.RuntimePermission "accessClassInPackage.com.sun.istack.internal";
--- a/jdk/src/java.base/share/conf/security/java.security Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.base/share/conf/security/java.security Thu Jun 16 20:56:45 2016 +0000
@@ -33,9 +33,9 @@
#
# Each provider must implement a subclass of the Provider class.
# To register a provider in this master security properties file,
-# specify the Provider subclass name and priority in the format
+# specify the provider and priority in the format
#
-# security.provider.<n>=<className>
+# security.provider.<n>=<provName | className>
#
# This declares a provider, and specifies its preference
# order n. The preference order is the order in which providers are
@@ -43,20 +43,15 @@
# requested). The order is 1-based; 1 is the most preferred, followed
# by 2, and so on.
#
+# <provName> must specify the name of the Provider as passed to its super
+# class java.security.Provider constructor. This is for providers loaded
+# through the ServiceLoader mechanism.
+#
# <className> must specify the subclass of the Provider class whose
# constructor sets the values of various properties that are required
# for the Java Security API to look up the algorithms or other
-# facilities implemented by the provider.
-#
-# There must be at least one provider specification in java.security.
-# There is a default provider that comes standard with the JDK. It
-# is called the "SUN" provider, and its Provider subclass
-# named Sun appears in the sun.security.provider package. Thus, the
-# "SUN" provider is registered via the following:
-#
-# security.provider.1=sun.security.provider.Sun
-#
-# (The number 1 is used for the default provider.)
+# facilities implemented by the provider. This is for providers loaded
+# through classpath.
#
# Note: Providers can be dynamically registered instead by calls to
# either the addProvider or insertProviderAt method in the Security
--- a/jdk/src/java.desktop/macosx/classes/com/apple/laf/resources/aqua_de.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/macosx/classes/com/apple/laf/resources/aqua_de.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -124,9 +124,9 @@
# The following string will be formatted by a MessageFormat
# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgress.textAndMnemonic=Seite {0} wurde gedruckt ...
+PrintingDialog.contentProgress.textAndMnemonic=Seite {0} wurde gedruckt...
-PrintingDialog.contentAborting.textAndMnemonic=Druckvorgang wird abgebrochen ...
+PrintingDialog.contentAborting.textAndMnemonic=Druckvorgang wird abgebrochen...
PrintingDialog.abortButton.textAndMnemonic=&Abbruch
PrintingDialog.abortButtonToolTip.textAndMnemonic=Druckvorgang abbrechen
@@ -149,7 +149,7 @@
# Used for html forms
FormView.submitButton.textAndMnemonic=Abfrage weiterleiten
FormView.resetButton.textAndMnemonic=Zur\u00FCcksetzen
-FormView.browseFileButton.textAndMnemonic=Durchsuchen ...
+FormView.browseFileButton.textAndMnemonic=Durchsuchen...
############ Abstract Document Strings ############
AbstractDocument.styleChange.textAndMnemonic=Formatvorlagen\u00E4nderung
@@ -169,7 +169,7 @@
ComboBox.togglePopup.textAndMnemonic=togglePopup
############ Progress Monitor Strings ############
-ProgressMonitor.progress.textAndMnemonic=Fortschritt ...
+ProgressMonitor.progress.textAndMnemonic=Fortschritt...
############ Split Pane Strings ############
SplitPane.leftButton.textAndMnemonic=linke Schaltfl\u00E4che
--- a/jdk/src/java.desktop/macosx/classes/com/apple/laf/resources/aqua_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/macosx/classes/com/apple/laf/resources/aqua_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -124,7 +124,7 @@
# The following string will be formatted by a MessageFormat
# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgress.textAndMnemonic=Utskriven sida {0}...
+PrintingDialog.contentProgress.textAndMnemonic=Skriver ut sida {0}...
PrintingDialog.contentAborting.textAndMnemonic=Utskriften avbryts...
@@ -172,8 +172,8 @@
ProgressMonitor.progress.textAndMnemonic=P\u00E5g\u00E5r...
############ Split Pane Strings ############
-SplitPane.leftButton.textAndMnemonic=v\u00E4nster knapp
-SplitPane.rightButton.textAndMnemonic=h\u00F6ger knapp
+SplitPane.leftButton.textAndMnemonic=v\u00E4nsterknapp
+SplitPane.rightButton.textAndMnemonic=h\u00F6gerknapp
# Used for Isindex
IsindexView.prompt=Detta \u00E4r ett s\u00F6kbart index. Ange s\u00F6kord:
--- a/jdk/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Thu Jun 16 20:56:45 2016 +0000
@@ -430,9 +430,6 @@
@Override // PlatformWindow
public void dispose() {
- if (owner != null) {
- CWrapper.NSWindow.removeChildWindow(owner.getNSWindowPtr(), getNSWindowPtr());
- }
contentView.dispose();
nativeDispose(getNSWindowPtr());
CPlatformWindow.super.dispose();
@@ -527,26 +524,6 @@
public void setVisible(boolean visible) {
final long nsWindowPtr = getNSWindowPtr();
- // Process parent-child relationship when hiding
- final ComponentAccessor acc = AWTAccessor.getComponentAccessor();
- if (!visible) {
- // Unparent my children
- for (Window w : target.getOwnedWindows()) {
- WindowPeer p = acc.getPeer(w);
- if (p instanceof LWWindowPeer) {
- CPlatformWindow pw = (CPlatformWindow)((LWWindowPeer)p).getPlatformWindow();
- if (pw != null && pw.isVisible()) {
- CWrapper.NSWindow.removeChildWindow(nsWindowPtr, pw.getNSWindowPtr());
- }
- }
- }
-
- // Unparent myself
- if (owner != null && owner.isVisible()) {
- CWrapper.NSWindow.removeChildWindow(owner.getNSWindowPtr(), nsWindowPtr);
- }
- }
-
// Configure stuff
updateIconImages();
updateFocusabilityForAutoRequestFocus(false);
@@ -619,20 +596,22 @@
updateFocusabilityForAutoRequestFocus(true);
// Manage parent-child relationship when showing
+ final ComponentAccessor acc = AWTAccessor.getComponentAccessor();
+
if (visible) {
- // Add myself as a child
+ // Order myself above my parent
if (owner != null && owner.isVisible()) {
- CWrapper.NSWindow.addChildWindow(owner.getNSWindowPtr(), nsWindowPtr, CWrapper.NSWindow.NSWindowAbove);
+ CWrapper.NSWindow.orderWindow(nsWindowPtr, CWrapper.NSWindow.NSWindowAbove, owner.getNSWindowPtr());
applyWindowLevel(target);
}
- // Add my own children to myself
+ // Order my own children above myself
for (Window w : target.getOwnedWindows()) {
final Object p = acc.getPeer(w);
if (p instanceof LWWindowPeer) {
CPlatformWindow pw = (CPlatformWindow)((LWWindowPeer)p).getPlatformWindow();
if (pw != null && pw.isVisible()) {
- CWrapper.NSWindow.addChildWindow(nsWindowPtr, pw.getNSWindowPtr(), CWrapper.NSWindow.NSWindowAbove);
+ CWrapper.NSWindow.orderWindow(pw.getNSWindowPtr(), CWrapper.NSWindow.NSWindowAbove, nsWindowPtr);
pw.applyWindowLevel(w);
}
}
@@ -1052,8 +1031,8 @@
// Order the window to front of the stack of child windows
final long nsWindowSelfPtr = getNSWindowPtr();
final long nsWindowOwnerPtr = owner.getNSWindowPtr();
- CWrapper.NSWindow.removeChildWindow(nsWindowOwnerPtr, nsWindowSelfPtr);
- CWrapper.NSWindow.addChildWindow(nsWindowOwnerPtr, nsWindowSelfPtr, CWrapper.NSWindow.NSWindowAbove);
+ CWrapper.NSWindow.orderFront(nsWindowOwnerPtr);
+ CWrapper.NSWindow.orderWindow(nsWindowSelfPtr, CWrapper.NSWindow.NSWindowAbove, nsWindowOwnerPtr);
}
applyWindowLevel(target);
--- a/jdk/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterGraphicsConfig.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterGraphicsConfig.java Thu Jun 16 20:56:45 2016 +0000
@@ -166,8 +166,7 @@
}
/**
- *
- * Returns a {@code AffineTransform} that can be concatenated
+ * Returns an {@code AffineTransform} that can be concatenated
* with the default {@code AffineTransform}
* of a {@code GraphicsConfiguration} so that 72 units in user
* space equals 1 inch in device space.
--- a/jdk/src/java.desktop/macosx/classes/sun/lwawt/macosx/CWarningWindow.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/macosx/classes/sun/lwawt/macosx/CWarningWindow.java Thu Jun 16 20:56:45 2016 +0000
@@ -206,15 +206,6 @@
synchronized (lock) {
final long nsWindowPtr = getNSWindowPtr();
- // Process parent-child relationship when hiding
- if (!visible) {
- // Unparent myself
- if (owner != null && owner.isVisible()) {
- CWrapper.NSWindow.removeChildWindow(
- owner.getNSWindowPtr(), nsWindowPtr);
- }
- }
-
// Actually show or hide the window
if (visible) {
CWrapper.NSWindow.orderFront(nsWindowPtr);
@@ -226,10 +217,10 @@
// Manage parent-child relationship when showing
if (visible) {
- // Add myself as a child
+ // Order myself above my parent
if (owner != null && owner.isVisible()) {
- CWrapper.NSWindow.addChildWindow(owner.getNSWindowPtr(),
- nsWindowPtr, CWrapper.NSWindow.NSWindowAbove);
+ CWrapper.NSWindow.orderWindow(nsWindowPtr,
+ CWrapper.NSWindow.NSWindowAbove, owner.getNSWindowPtr());
// do not allow security warning to be obscured by other windows
applyWindowLevel(ownerWindow);
--- a/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTWindow.h Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTWindow.h Thu Jun 16 20:56:45 2016 +0000
@@ -46,6 +46,7 @@
AWTWindow *ownerWindow;
jint preFullScreenLevel;
NSRect standardFrame;
+ BOOL isMinimizing;
}
// An instance of either AWTWindow_Normal or AWTWindow_Panel
@@ -60,6 +61,7 @@
@property (nonatomic) BOOL isEnabled;
@property (nonatomic) jint preFullScreenLevel;
@property (nonatomic) NSRect standardFrame;
+@property (nonatomic) BOOL isMinimizing;
- (id) initWithPlatformWindow:(JNFWeakJObjectWrapper *)javaPlatformWindow
ownerWindow:owner
--- a/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTWindow.m Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTWindow.m Thu Jun 16 20:56:45 2016 +0000
@@ -180,6 +180,7 @@
@synthesize ownerWindow;
@synthesize preFullScreenLevel;
@synthesize standardFrame;
+@synthesize isMinimizing;
- (void) updateMinMaxSize:(BOOL)resizable {
if (resizable) {
@@ -304,6 +305,7 @@
[self.nsWindow release]; // the property retains the object already
self.isEnabled = YES;
+ self.isMinimizing = NO;
self.javaPlatformWindow = platformWindow;
self.styleBits = bits;
self.ownerWindow = owner;
@@ -423,6 +425,68 @@
[super dealloc];
}
+// Tests wheather the corresponding Java paltform window is visible or not
++ (BOOL) isJavaPlatformWindowVisible:(NSWindow *)window {
+ BOOL isVisible = NO;
+
+ if ([AWTWindow isAWTWindow:window] && [window delegate] != nil) {
+ AWTWindow *awtWindow = (AWTWindow *)[window delegate];
+ [AWTToolkit eventCountPlusPlus];
+
+ JNIEnv *env = [ThreadUtilities getJNIEnv];
+ jobject platformWindow = [awtWindow.javaPlatformWindow jObjectWithEnv:env];
+ if (platformWindow != NULL) {
+ static JNF_MEMBER_CACHE(jm_isVisible, jc_CPlatformWindow, "isVisible", "()Z");
+ isVisible = JNFCallBooleanMethod(env, platformWindow, jm_isVisible) == JNI_TRUE ? YES : NO;
+ (*env)->DeleteLocalRef(env, platformWindow);
+
+ }
+ }
+ return isVisible;
+}
+
+// Orders window's childs based on the current focus state
+- (void) orderChildWindows:(BOOL)focus {
+AWT_ASSERT_APPKIT_THREAD;
+
+ if (self.isMinimizing) {
+ // Do not perform any ordering, if iconify is in progress
+ return;
+ }
+
+ NSEnumerator *windowEnumerator = [[NSApp windows]objectEnumerator];
+ NSWindow *window;
+ while ((window = [windowEnumerator nextObject]) != nil) {
+ if ([AWTWindow isJavaPlatformWindowVisible:window]) {
+ AWTWindow *awtWindow = (AWTWindow *)[window delegate];
+ AWTWindow *owner = awtWindow.ownerWindow;
+ if (IS(awtWindow.styleBits, ALWAYS_ON_TOP)) {
+ // Do not order 'always on top' windows
+ continue;
+ }
+ while (awtWindow.ownerWindow != nil) {
+ if (awtWindow.ownerWindow == self) {
+ if (focus) {
+ // Move the childWindow to floating level
+ // so it will appear in front of its
+ // parent which owns the focus
+ [window setLevel:NSFloatingWindowLevel];
+ } else {
+ // Focus owner has changed, move the childWindow
+ // back to normal window level
+ [window setLevel:NSNormalWindowLevel];
+ }
+ // The childWindow should be displayed in front of
+ // its nearest parentWindow
+ [window orderWindow:NSWindowAbove relativeTo:[owner.nsWindow windowNumber]];
+ break;
+ }
+ awtWindow = awtWindow.ownerWindow;
+ }
+ }
+ }
+}
+
// NSWindow overrides
- (BOOL) canBecomeKeyWindow {
AWT_ASSERT_APPKIT_THREAD;
@@ -511,6 +575,30 @@
return [self standardFrame];
}
+// Hides/shows window's childs during iconify/de-iconify operation
+- (void) iconifyChildWindows:(BOOL)iconify {
+AWT_ASSERT_APPKIT_THREAD;
+
+ NSEnumerator *windowEnumerator = [[NSApp windows]objectEnumerator];
+ NSWindow *window;
+ while ((window = [windowEnumerator nextObject]) != nil) {
+ if ([AWTWindow isJavaPlatformWindowVisible:window]) {
+ AWTWindow *awtWindow = (AWTWindow *)[window delegate];
+ while (awtWindow.ownerWindow != nil) {
+ if (awtWindow.ownerWindow == self) {
+ if (iconify) {
+ [window orderOut:window];
+ } else {
+ [window orderFront:window];
+ }
+ break;
+ }
+ awtWindow = awtWindow.ownerWindow;
+ }
+ }
+ }
+}
+
- (void) _deliverIconify:(BOOL)iconify {
AWT_ASSERT_APPKIT_THREAD;
@@ -524,16 +612,28 @@
}
}
+- (void)windowWillMiniaturize:(NSNotification *)notification {
+AWT_ASSERT_APPKIT_THREAD;
+
+ self.isMinimizing = YES;
+ // Excplicitly make myself a key window to avoid possible
+ // negative visual effects during iconify operation
+ [self.nsWindow makeKeyAndOrderFront:self.nsWindow];
+ [self iconifyChildWindows:YES];
+}
+
- (void)windowDidMiniaturize:(NSNotification *)notification {
AWT_ASSERT_APPKIT_THREAD;
[self _deliverIconify:JNI_TRUE];
+ self.isMinimizing = NO;
}
- (void)windowDidDeminiaturize:(NSNotification *)notification {
AWT_ASSERT_APPKIT_THREAD;
[self _deliverIconify:JNI_FALSE];
+ [self iconifyChildWindows:NO];
}
- (void) _deliverWindowFocusEvent:(BOOL)focused oppositeWindow:(AWTWindow *)opposite {
@@ -579,6 +679,7 @@
[AWTWindow setLastKeyWindow:nil];
[self _deliverWindowFocusEvent:YES oppositeWindow: opposite];
+ [self orderChildWindows:YES];
}
- (void) windowDidResignKey: (NSNotification *) notification {
@@ -606,6 +707,7 @@
}
[self _deliverWindowFocusEvent:NO oppositeWindow: opposite];
+ [self orderChildWindows:NO];
}
- (void) windowDidBecomeMain: (NSNotification *) notification {
@@ -709,9 +811,12 @@
if (p.y >= (frame.origin.y + contentRect.size.height)) {
JNIEnv *env = [ThreadUtilities getJNIEnvUncached];
jobject platformWindow = [self.javaPlatformWindow jObjectWithEnv:env];
- // Currently, no need to deliver the whole NSEvent.
- static JNF_MEMBER_CACHE(jm_deliverNCMouseDown, jc_CPlatformWindow, "deliverNCMouseDown", "()V");
- JNFCallVoidMethod(env, platformWindow, jm_deliverNCMouseDown);
+ if (platformWindow != NULL) {
+ // Currently, no need to deliver the whole NSEvent.
+ static JNF_MEMBER_CACHE(jm_deliverNCMouseDown, jc_CPlatformWindow, "deliverNCMouseDown", "()V");
+ JNFCallVoidMethod(env, platformWindow, jm_deliverNCMouseDown);
+ (*env)->DeleteLocalRef(env, platformWindow);
+ }
}
}
}
--- a/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/CGraphicsEnv.m Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/CGraphicsEnv.m Thu Jun 16 20:56:45 2016 +0000
@@ -127,6 +127,7 @@
jc_CGraphicsEnvironment, "_displayReconfiguration","(IZ)V");
JNFCallVoidMethod(env, graphicsEnv, jm_displayReconfiguration,
(jint) display, (jboolean) flags & kCGDisplayRemoveFlag);
+ (*env)->DeleteLocalRef(env, graphicsEnv);
});
}];
}
--- a/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/CMenuItem.m Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/CMenuItem.m Thu Jun 16 20:56:45 2016 +0000
@@ -63,6 +63,7 @@
- (BOOL) worksWhenModal {
return YES;
}
+
// Events
- (void)handleAction:(NSMenuItem *)sender {
AWT_ASSERT_APPKIT_THREAD;
@@ -91,7 +92,6 @@
}
else {
if ([currEvent type] == NSKeyDown) {
-
// Event available through sender variable hence NSApplication
// not needed for checking the keyboard input sans the modifier keys
// Also, the method used to fetch eventKey earlier would be locale dependent
@@ -99,7 +99,6 @@
// is not U.S. (Devanagari in this case)
// With current implementation, EventKey = MenuKey = e irrespective of
// input method
-
NSString *eventKey = [sender keyEquivalent];
// Apple uses characters from private Unicode range for some of the
// keys, so we need to do the same translation here that we do
@@ -116,15 +115,15 @@
if (keyWindow != nil) {
return;
}
- else {
- static JNF_CLASS_CACHE(jc_CMenuItem, "sun/lwawt/macosx/CMenuItem");
- static JNF_MEMBER_CACHE(jm_handleAction, jc_CMenuItem, "handleAction", "(JI)V"); // AWT_THREADING Safe (event)
-
- NSUInteger modifiers = [currEvent modifierFlags];
- jint javaModifiers = NsKeyModifiersToJavaModifiers(modifiers, NO);
-
- JNFCallVoidMethod(env, fPeer, jm_handleAction, UTC(currEvent), javaModifiers); // AWT_THREADING Safe (event)
- }
+ }
+ else {
+ static JNF_CLASS_CACHE(jc_CMenuItem, "sun/lwawt/macosx/CMenuItem");
+ static JNF_MEMBER_CACHE(jm_handleAction, jc_CMenuItem, "handleAction", "(JI)V"); // AWT_THREADING Safe (event)
+
+ NSUInteger modifiers = [currEvent modifierFlags];
+ jint javaModifiers = NsKeyModifiersToJavaModifiers(modifiers, NO);
+
+ JNFCallVoidMethod(env, fPeer, jm_handleAction, UTC(currEvent), javaModifiers); // AWT_THREADING Safe (event)
}
}
JNF_COCOA_EXIT(env);
--- a/jdk/src/java.desktop/share/classes/com/sun/accessibility/internal/resources/accessibility_de.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/accessibility/internal/resources/accessibility_de.properties Thu Jun 16 20:56:45 2016 +0000
@@ -17,7 +17,7 @@
awtcomponent=AWT-Komponente
checkbox=Kontrollk\u00E4stchen
colorchooser=Farbauswahl
-columnheader=Spalten-Header
+columnheader=Spaltenheader
combobox=Kombinationsfeld
canvas=Leinwand
desktopicon=Desktopsymbol
@@ -46,7 +46,7 @@
pushbutton=Schaltfl\u00E4che
radiobutton=Optionsfeld
rootpane=Root-Bereich
-rowheader=Zeilen-Header
+rowheader=Zeilenheader
scrollbar=Bildlaufleiste
scrollpane=Bildlaufbereich
separator=Trennzeichen
--- a/jdk/src/java.desktop/share/classes/com/sun/accessibility/internal/resources/accessibility_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/accessibility/internal/resources/accessibility_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -88,7 +88,7 @@
modal=modal
multiline=flera rader
multiselectable=flerval
-opaque=t\u00E4ckande
+opaque=ogenomskinlig
pressed=nedtryckt
resizable=storleks\u00E4ndringsbar
selectable=valbar
--- a/jdk/src/java.desktop/share/classes/com/sun/accessibility/internal/resources/accessibility_zh_TW.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/accessibility/internal/resources/accessibility_zh_TW.properties Thu Jun 16 20:56:45 2016 +0000
@@ -44,7 +44,7 @@
popupmenu=\u5373\u73FE\u5F0F\u529F\u80FD\u8868
progressbar=\u9032\u5EA6\u5217
pushbutton=\u4E0B\u58D3\u6309\u9215
-radiobutton=\u55AE\u9078\u9215
+radiobutton=\u5713\u9215
rootpane=root \u7A97\u683C
rowheader=\u5217\u6A19\u984C
scrollbar=\u6372\u8EF8
--- a/jdk/src/java.desktop/share/classes/com/sun/beans/introspect/MethodInfo.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/beans/introspect/MethodInfo.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,6 +22,7 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package com.sun.beans.introspect;
import com.sun.beans.TypeResolver;
@@ -31,7 +32,9 @@
import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
final class MethodInfo {
@@ -87,8 +90,60 @@
}
}
}
- return (list != null)
- ? Collections.unmodifiableList(list)
- : Collections.emptyList();
+ if (list != null) {
+ list.sort(MethodOrder.instance);
+ return Collections.unmodifiableList(list);
+ }
+ return Collections.emptyList();
+ }
+
+ /**
+ * A comparator that defines a total order so that methods have the same
+ * name and identical signatures appear next to each others. The methods are
+ * sorted in such a way that methods which override each other will sit next
+ * to each other, with the overridden method last - e.g. is Integer getFoo()
+ * placed before Object getFoo().
+ **/
+ private static final class MethodOrder implements Comparator<Method> {
+
+ /*
+ * Code particularly was copied from com.sun.jmx.mbeanserver.MethodOrder
+ */
+ @Override
+ public int compare(final Method a, final Method b) {
+ int cmp = a.getName().compareTo(b.getName());
+ if (cmp != 0) {
+ return cmp;
+ }
+ final Class<?>[] aparams = a.getParameterTypes();
+ final Class<?>[] bparams = b.getParameterTypes();
+ if (aparams.length != bparams.length) {
+ return aparams.length - bparams.length;
+ }
+ for (int i = 0; i < aparams.length; ++i) {
+ final Class<?> aparam = aparams[i];
+ final Class<?> bparam = bparams[i];
+ if (aparam == bparam) {
+ continue;
+ }
+ cmp = aparam.getName().compareTo(bparam.getName());
+ if (cmp != 0) {
+ return cmp;
+ }
+ }
+ final Class<?> aret = a.getReturnType();
+ final Class<?> bret = b.getReturnType();
+ if (aret == bret) {
+ return 0;
+ }
+
+ // Super type comes last: Integer, Number, Object
+ if (aret.isAssignableFrom(bret)) {
+ return 1;
+ }
+ return -1;
+ }
+
+ static final MethodOrder instance = new MethodOrder();
}
}
--- a/jdk/src/java.desktop/share/classes/com/sun/beans/introspect/PropertyInfo.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/beans/introspect/PropertyInfo.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,6 +22,7 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package com.sun.beans.introspect;
import java.beans.BeanProperty;
@@ -40,7 +41,11 @@
import static com.sun.beans.finder.ClassFinder.findClass;
public final class PropertyInfo {
- public enum Name {bound, expert, hidden, preferred, required, visualUpdate, description, enumerationValues}
+
+ public enum Name {
+ bound, expert, hidden, preferred, required, visualUpdate, description,
+ enumerationValues
+ }
private static final String VETO_EXCEPTION_NAME = "java.beans.PropertyVetoException";
private static final Class<?> VETO_EXCEPTION;
@@ -107,12 +112,14 @@
if ((this.type == null) && (this.indexed == null)) {
return false;
}
- initialize(this.write);
- initialize(this.read);
+ boolean done = initialize(this.read);
+ if (!done) {
+ initialize(this.write);
+ }
return true;
}
- private void initialize(MethodInfo info) {
+ private boolean initialize(MethodInfo info) {
if (info != null) {
BeanProperty annotation = info.method.getAnnotation(BeanProperty.class);
if (annotation != null) {
@@ -157,8 +164,10 @@
} catch (Exception ignored) {
ignored.printStackTrace();
}
+ return true;
}
}
+ return false;
}
public Class<?> getPropertyType() {
--- a/jdk/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFFieldNode.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFFieldNode.java Thu Jun 16 20:56:45 2016 +0000
@@ -38,9 +38,14 @@
* wherein the child node is procedural rather than buffered.
*/
public class TIFFFieldNode extends IIOMetadataNode {
+ private static boolean isIFD(TIFFField f) {
+ int type = f.getType();
+ return f.hasDirectory() &&
+ (type == TIFFTag.TIFF_LONG || type == TIFFTag.TIFF_IFD_POINTER);
+ }
+
private static String getNodeName(TIFFField f) {
- return (f.hasDirectory() || f.getData() instanceof TIFFDirectory) ?
- "TIFFIFD" : "TIFFField";
+ return isIFD(f) ? "TIFFIFD" : "TIFFField";
}
private boolean isIFD;
@@ -52,8 +57,7 @@
public TIFFFieldNode(TIFFField field) {
super(getNodeName(field));
- isIFD = field.hasDirectory() ||
- field.getData() instanceof TIFFDirectory;
+ isIFD = isIFD(field);
this.field = field;
--- a/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties Thu Jun 16 20:56:45 2016 +0000
@@ -39,7 +39,7 @@
FileChooser.openButton.textAndMnemonic=\uD655\uC778
FileChooser.saveDialogTitle.textAndMnemonic=\uC800\uC7A5
FileChooser.openDialogTitle.textAndMnemonic=\uC5F4\uAE30
-FileChooser.pathLabel.textAndMnemonic=\uC120\uD0DD \uC0AC\uD56D(&S):
+FileChooser.pathLabel.textAndMnemonic=\uC120\uD0DD\uC0AC\uD56D(&S):
FileChooser.filterLabel.textAndMnemonic=\uD544\uD130:
FileChooser.foldersLabel.textAndMnemonic=\uD3F4\uB354(&D)
FileChooser.filesLabel.textAndMnemonic=\uD30C\uC77C(&F)
--- a/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -44,11 +44,11 @@
FileChooser.foldersLabel.textAndMnemonic=Map&par
FileChooser.filesLabel.textAndMnemonic=&Filer
-FileChooser.cancelButtonToolTip.textAndMnemonic=Avbryt dialogrutan Filv\u00E4ljare.
+FileChooser.cancelButtonToolTip.textAndMnemonic=Avbryt dialogrutan f\u00F6r filval.
FileChooser.saveButtonToolTip.textAndMnemonic=Spara vald fil.
FileChooser.openButtonToolTip.textAndMnemonic=\u00D6ppna vald fil.
-FileChooser.renameFileDialog.textAndMnemonic=Namn\u00E4ndra fil "{0}" till
+FileChooser.renameFileDialog.textAndMnemonic=\u00C4ndra namn p\u00E5 fil "{0}" till
FileChooser.renameFileError.titleAndMnemonic=Fel
FileChooser.renameFileError.textAndMnemonic=Fel vid namn\u00E4ndring av fil "{0}" till "{1}"
--- a/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/motif/resources/motif_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/motif/resources/motif_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -33,8 +33,8 @@
FileChooser.enterFileNameLabel.textAndMnemonic=A&nge filnamn:
FileChooser.enterFolderNameLabel.textAndMnemonic=Ange ett mappnamn:
-FileChooser.cancelButtonToolTip.textAndMnemonic=Avbryt dialogrutan Filv\u00E4ljare.
+FileChooser.cancelButtonToolTip.textAndMnemonic=Avbryt dialogrutan f\u00F6r filval.
FileChooser.saveButtonToolTip.textAndMnemonic=Spara vald fil.
FileChooser.openButtonToolTip.textAndMnemonic=\u00D6ppna vald fil.
FileChooser.updateButtonToolTip.textAndMnemonic=Uppdatera kataloglistan.
-FileChooser.helpButtonToolTip.textAndMnemonic=Hj\u00E4lp - Filv\u00E4ljare.
+FileChooser.helpButtonToolTip.textAndMnemonic=Hj\u00E4lp f\u00F6r val av fil.
--- a/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/DesktopProperty.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/DesktopProperty.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
import java.lang.ref.*;
import javax.swing.*;
import javax.swing.plaf.*;
+import sun.awt.AppContext;
/**
* Wrapper for a value from the desktop. The value is lazily looked up, and
@@ -41,10 +42,8 @@
// NOTE: Don't rely on this class staying in this location. It is likely
// to move to a different package in the future.
public class DesktopProperty implements UIDefaults.ActiveValue {
- /**
- * Indicates if an updateUI call is pending.
- */
- private static boolean updatePending;
+ private static final StringBuilder DESKTOP_PROPERTY_UPDATE_PENDING_KEY =
+ new StringBuilder("DesktopPropertyUpdatePending");
/**
* ReferenceQueue of unreferenced WeakPCLs.
@@ -86,14 +85,16 @@
* Sets whether or not an updateUI call is pending.
*/
private static synchronized void setUpdatePending(boolean update) {
- updatePending = update;
+ AppContext.getAppContext()
+ .put(DESKTOP_PROPERTY_UPDATE_PENDING_KEY, update);
}
/**
* Returns true if a UI update is pending.
*/
private static synchronized boolean isUpdatePending() {
- return updatePending;
+ return Boolean.TRUE.equals(AppContext.getAppContext()
+ .get(DESKTOP_PROPERTY_UPDATE_PENDING_KEY));
}
/**
--- a/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java Thu Jun 16 20:56:45 2016 +0000
@@ -1085,6 +1085,8 @@
}),
"FormattedTextField.inactiveBackground", ReadOnlyTextBackground,
"FormattedTextField.disabledBackground", DisabledTextBackground,
+ "FormattedTextField.background", TextBackground,
+ "FormattedTextField.foreground", WindowTextColor,
// *** Panel
"Panel.font", ControlFont,
--- a/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/resources/windows_fr.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/resources/windows_fr.properties Thu Jun 16 20:56:45 2016 +0000
@@ -25,8 +25,8 @@
FileChooser.filesOfTypeLabel.textAndMnemonic=&Type de fichier :
FileChooser.upFolderToolTip.textAndMnemonic=Remonte d'un niveau.
FileChooser.upFolderAccessibleName=Monter
-FileChooser.homeFolderToolTip.textAndMnemonic=R\u00E9pertoire d'origine
-FileChooser.homeFolderAccessibleName=R\u00E9pertoire d'origine
+FileChooser.homeFolderToolTip.textAndMnemonic=R\u00E9pertoire de base
+FileChooser.homeFolderAccessibleName=R\u00E9pertoire de base
FileChooser.newFolderToolTip.textAndMnemonic=Cr\u00E9e un dossier.
FileChooser.newFolderAccessibleName=Nouveau dossier
FileChooser.newFolderActionLabel.textAndMnemonic=Nouveau dossier
--- a/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ko.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ko.properties Thu Jun 16 20:56:45 2016 +0000
@@ -33,11 +33,11 @@
FileChooser.listViewButtonToolTip.textAndMnemonic=\uBAA9\uB85D
FileChooser.listViewButtonAccessibleName=\uBAA9\uB85D
FileChooser.listViewActionLabel.textAndMnemonic=\uBAA9\uB85D
-FileChooser.detailsViewButtonToolTip.textAndMnemonic=\uC138\uBD80 \uC815\uBCF4
-FileChooser.detailsViewButtonAccessibleName=\uC138\uBD80 \uC815\uBCF4
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=\uC138\uBD80\uC815\uBCF4
+FileChooser.detailsViewButtonAccessibleName=\uC138\uBD80\uC815\uBCF4
FileChooser.viewMenuButtonToolTipText = \uBCF4\uAE30 \uBA54\uB274
FileChooser.viewMenuButtonAccessibleName = \uBCF4\uAE30 \uBA54\uB274
-FileChooser.detailsViewActionLabel.textAndMnemonic=\uC138\uBD80 \uC815\uBCF4
+FileChooser.detailsViewActionLabel.textAndMnemonic=\uC138\uBD80\uC815\uBCF4
FileChooser.refreshActionLabel.textAndMnemonic=\uC0C8\uB85C \uACE0\uCE68
FileChooser.viewMenuLabel.textAndMnemonic=\uBCF4\uAE30
FileChooser.fileNameHeader.textAndMnemonic=\uC774\uB984
--- a/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -22,7 +22,7 @@
FileChooser.saveInLabel.textAndMnemonic=Spara i:
FileChooser.fileNameLabel.textAndMnemonic=Fil&namn:
FileChooser.folderNameLabel.textAndMnemonic=Mapp&namn:
-FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typ:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typen:
FileChooser.upFolderToolTip.textAndMnemonic=Upp en niv\u00E5
FileChooser.upFolderAccessibleName=Upp
FileChooser.homeFolderToolTip.textAndMnemonic=Hem
--- a/jdk/src/java.desktop/share/classes/com/sun/media/sound/AbstractDataLine.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/media/sound/AbstractDataLine.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -59,10 +59,9 @@
// current buffer size in bytes
protected int bufferSize;
- protected boolean running = false;
- private boolean started = false;
- private boolean active = false;
-
+ private volatile boolean running;
+ private volatile boolean started;
+ private volatile boolean active;
/**
* Constructs a new AbstractLine.
--- a/jdk/src/java.desktop/share/classes/com/sun/media/sound/AbstractLine.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/media/sound/AbstractLine.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
protected final Line.Info info;
protected Control[] controls;
AbstractMixer mixer;
- private boolean open = false;
+ private volatile boolean open;
private final Vector<Object> listeners = new Vector<>();
/**
--- a/jdk/src/java.desktop/share/classes/com/sun/media/sound/AbstractMidiDevice.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/media/sound/AbstractMidiDevice.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,7 +65,7 @@
// DEVICE STATE
- private boolean open = false;
+ private volatile boolean open;
private int openRefCount;
/** List of Receivers and Transmitters that opened the device implicitely.
@@ -75,7 +75,7 @@
/**
* This is the device handle returned from native code
*/
- protected long id = 0;
+ protected volatile long id;
@@ -479,7 +479,7 @@
(which opens the device implicitely).
*/
abstract class AbstractReceiver implements MidiDeviceReceiver {
- private boolean open = true;
+ private volatile boolean open = true;
/** Deliver a MidiMessage.
--- a/jdk/src/java.desktop/share/classes/com/sun/media/sound/AudioSynthesizerPropertyInfo.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/media/sound/AudioSynthesizerPropertyInfo.java Thu Jun 16 20:56:45 2016 +0000
@@ -32,7 +32,7 @@
public final class AudioSynthesizerPropertyInfo {
/**
- * Constructs a {@code AudioSynthesizerPropertyInfo} object with a given
+ * Constructs an {@code AudioSynthesizerPropertyInfo} object with a given
* name and value. The {@code description} and {@code choices}
* are initialized by {@code null} values.
*
--- a/jdk/src/java.desktop/share/classes/com/sun/media/sound/MidiInDevice.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/media/sound/MidiInDevice.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,7 @@
*/
final class MidiInDevice extends AbstractMidiDevice implements Runnable {
- private Thread midiInThread = null;
+ private volatile Thread midiInThread;
// CONSTRUCTOR
--- a/jdk/src/java.desktop/share/classes/com/sun/media/sound/RealTimeSequencer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/media/sound/RealTimeSequencer.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -106,7 +106,7 @@
/**
* True if the sequence is running.
*/
- private boolean running = false;
+ private volatile boolean running;
/** the thread for pushing out the MIDI messages */
@@ -116,7 +116,7 @@
/**
* True if we are recording
*/
- private boolean recording = false;
+ private volatile boolean recording;
/**
--- a/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties Thu Jun 16 20:56:45 2016 +0000
@@ -71,7 +71,7 @@
FileChooser.directoryOpenButtonToolTip.textAndMnemonic=\uC120\uD0DD\uB41C \uB514\uB809\uD1A0\uB9AC \uC5F4\uAE30
FileChooser.filesListAccessibleName=\uD30C\uC77C \uBAA9\uB85D
-FileChooser.filesDetailsAccessibleName=\uD30C\uC77C \uC138\uBD80 \uC815\uBCF4
+FileChooser.filesDetailsAccessibleName=\uD30C\uC77C \uC138\uBD80\uC815\uBCF4
############ COLOR CHOOSER STRINGS #############
ColorChooser.preview.textAndMnemonic=\uBBF8\uB9AC\uBCF4\uAE30
--- a/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -33,7 +33,7 @@
############ FILE CHOOSER STRINGS #############
FileChooser.fileDescription.textAndMnemonic=Generisk fil
FileChooser.directoryDescription.textAndMnemonic=Katalog
-FileChooser.newFolderError.textAndMnemonic=Fel uppstod n\u00E4r ny mapp skapades
+FileChooser.newFolderError.textAndMnemonic=Kan inte skapa ny mapp
FileChooser.newFolderErrorSeparator= :
FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=Kan inte skapa mappen
FileChooser.newFolderParentDoesntExist.textAndMnemonic=Kan inte skapa mappen.\n\nSystemet kan inte hitta angiven s\u00F6kv\u00E4g.
@@ -59,15 +59,15 @@
FileChooser.win32.newFolder=Ny mapp
FileChooser.win32.newFolder.subsequent=Ny mapp ({0})
FileChooser.other.newFolder=Ny mapp
-FileChooser.other.newFolder.subsequent=Ny mapp.{0}
+FileChooser.other.newFolder.subsequent=Ny mapp {0}
## file chooser tooltips ###
-FileChooser.cancelButtonToolTip.textAndMnemonic=Avbryt filvalsdialogruta
+FileChooser.cancelButtonToolTip.textAndMnemonic=Avbryt dialogrutan f\u00F6r filval
FileChooser.saveButtonToolTip.textAndMnemonic=Spara vald fil
FileChooser.openButtonToolTip.textAndMnemonic=\u00D6ppna vald fil
FileChooser.updateButtonToolTip.textAndMnemonic=Uppdatera kataloglistan
-FileChooser.helpButtonToolTip.textAndMnemonic=Hj\u00E4lp - Filv\u00E4ljare
+FileChooser.helpButtonToolTip.textAndMnemonic=Hj\u00E4lp f\u00F6r val av fil
FileChooser.directoryOpenButtonToolTip.textAndMnemonic=\u00D6ppna vald katalog
FileChooser.filesListAccessibleName=Fillista
@@ -129,7 +129,7 @@
# The following string will be formatted by a MessageFormat
# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgress.textAndMnemonic=Utskriven sida {0}...
+PrintingDialog.contentProgress.textAndMnemonic=Skriver ut sida {0}...
PrintingDialog.contentAborting.textAndMnemonic=Utskriften avbryts...
@@ -177,8 +177,8 @@
ProgressMonitor.progress.textAndMnemonic=P\u00E5g\u00E5r...
############ Split Pane Strings ############
-SplitPane.leftButton.textAndMnemonic=v\u00E4nster knapp
-SplitPane.rightButton.textAndMnemonic=h\u00F6ger knapp
+SplitPane.leftButton.textAndMnemonic=v\u00E4nsterknapp
+SplitPane.rightButton.textAndMnemonic=h\u00F6gerknapp
# Used for Isindex
IsindexView.prompt=Detta \u00E4r ett s\u00F6kbart index. Ange s\u00F6kord:
--- a/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties Thu Jun 16 20:56:45 2016 +0000
@@ -25,8 +25,8 @@
FileChooser.filesOfTypeLabel.textAndMnemonic=&Type de fichier :
FileChooser.upFolderToolTip.textAndMnemonic=Remonte d'un niveau.
FileChooser.upFolderAccessibleName=Monter
-FileChooser.homeFolderToolTip.textAndMnemonic=R\u00E9pertoire d'origine
-FileChooser.homeFolderAccessibleName=R\u00E9pertoire d'origine
+FileChooser.homeFolderToolTip.textAndMnemonic=R\u00E9pertoire de base
+FileChooser.homeFolderAccessibleName=R\u00E9pertoire de base
FileChooser.newFolderToolTip.textAndMnemonic=Cr\u00E9e un dossier.
FileChooser.newFolderAccessibleName=Nouveau dossier
FileChooser.newFolderActionLabel.textAndMnemonic=Nouveau dossier
--- a/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ko.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ko.properties Thu Jun 16 20:56:45 2016 +0000
@@ -33,9 +33,9 @@
FileChooser.listViewButtonToolTip.textAndMnemonic=\uBAA9\uB85D
FileChooser.listViewButtonAccessibleName=\uBAA9\uB85D
FileChooser.listViewActionLabel.textAndMnemonic=\uBAA9\uB85D
-FileChooser.detailsViewButtonToolTip.textAndMnemonic=\uC138\uBD80 \uC815\uBCF4
-FileChooser.detailsViewButtonAccessibleName=\uC138\uBD80 \uC815\uBCF4
-FileChooser.detailsViewActionLabel.textAndMnemonic=\uC138\uBD80 \uC815\uBCF4
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=\uC138\uBD80\uC815\uBCF4
+FileChooser.detailsViewButtonAccessibleName=\uC138\uBD80\uC815\uBCF4
+FileChooser.detailsViewActionLabel.textAndMnemonic=\uC138\uBD80\uC815\uBCF4
FileChooser.refreshActionLabel.textAndMnemonic=\uC0C8\uB85C \uACE0\uCE68
FileChooser.viewMenuLabel.textAndMnemonic=\uBCF4\uAE30
FileChooser.fileNameHeader.textAndMnemonic=\uC774\uB984
--- a/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -20,9 +20,9 @@
FileChooser.lookInLabel.textAndMnemonic=Leta &i:
FileChooser.saveInLabel.textAndMnemonic=Spara i:
-FileChooser.fileNameLabel.textAndMnemonic=&Fil:
+FileChooser.fileNameLabel.textAndMnemonic=Fil&namn:
FileChooser.folderNameLabel.textAndMnemonic=&Mapp:
-FileChooser.filesOfTypeLabel.textAndMnemonic=Mapp&namn:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typen:
FileChooser.upFolderToolTip.textAndMnemonic=Upp en niv\u00E5
FileChooser.upFolderAccessibleName=Upp
FileChooser.homeFolderToolTip.textAndMnemonic=Hem
--- a/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties Thu Jun 16 20:56:45 2016 +0000
@@ -25,8 +25,8 @@
FileChooser.filesOfTypeLabel.textAndMnemonic=&Type de fichier :
FileChooser.upFolderToolTip.textAndMnemonic=Remonte d'un niveau.
FileChooser.upFolderAccessibleName=Monter
-FileChooser.homeFolderToolTip.textAndMnemonic=R\u00E9pertoire d'origine
-FileChooser.homeFolderAccessibleName=R\u00E9pertoire d'origine
+FileChooser.homeFolderToolTip.textAndMnemonic=R\u00E9pertoire de base
+FileChooser.homeFolderAccessibleName=R\u00E9pertoire de base
FileChooser.newFolderToolTip.textAndMnemonic=Cr\u00E9e un dossier.
FileChooser.newFolderAccessibleName=Nouveau dossier
FileChooser.newFolderActionLabel.textAndMnemonic=Nouveau dossier
--- a/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ko.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ko.properties Thu Jun 16 20:56:45 2016 +0000
@@ -33,9 +33,9 @@
FileChooser.listViewButtonToolTip.textAndMnemonic=\uBAA9\uB85D
FileChooser.listViewButtonAccessibleName=\uBAA9\uB85D
FileChooser.listViewActionLabel.textAndMnemonic=\uBAA9\uB85D
-FileChooser.detailsViewButtonToolTip.textAndMnemonic=\uC138\uBD80 \uC815\uBCF4
-FileChooser.detailsViewButtonAccessibleName=\uC138\uBD80 \uC815\uBCF4
-FileChooser.detailsViewActionLabel.textAndMnemonic=\uC138\uBD80 \uC815\uBCF4
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=\uC138\uBD80\uC815\uBCF4
+FileChooser.detailsViewButtonAccessibleName=\uC138\uBD80\uC815\uBCF4
+FileChooser.detailsViewActionLabel.textAndMnemonic=\uC138\uBD80\uC815\uBCF4
FileChooser.refreshActionLabel.textAndMnemonic=\uC0C8\uB85C \uACE0\uCE68
FileChooser.viewMenuLabel.textAndMnemonic=\uBCF4\uAE30
FileChooser.fileNameHeader.textAndMnemonic=\uC774\uB984
--- a/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -22,7 +22,7 @@
FileChooser.saveInLabel.textAndMnemonic=Spara i:
FileChooser.fileNameLabel.textAndMnemonic=Fil&namn:
FileChooser.folderNameLabel.textAndMnemonic=Mapp&namn:
-FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typ:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typen:
FileChooser.upFolderToolTip.textAndMnemonic=Upp en niv\u00E5
FileChooser.upFolderAccessibleName=Upp
FileChooser.homeFolderToolTip.textAndMnemonic=Hem
--- a/jdk/src/java.desktop/share/classes/java/awt/BorderLayout.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/java/awt/BorderLayout.java Thu Jun 16 20:56:45 2016 +0000
@@ -76,7 +76,7 @@
* orientation is {@code LEFT_TO_RIGHT}, only the
* {@code PAGE_START} will be laid out.
* <p>
- * NOTE: Currently (in the Java 2 platform v1.2),
+ * NOTE: Currently,
* {@code BorderLayout} does not support vertical
* orientations. The {@code isVertical} setting on the container's
* {@code ComponentOrientation} is not respected.
--- a/jdk/src/java.desktop/share/classes/java/awt/DefaultKeyboardFocusManager.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/java/awt/DefaultKeyboardFocusManager.java Thu Jun 16 20:56:45 2016 +0000
@@ -148,9 +148,20 @@
Component toFocus =
KeyboardFocusManager.getMostRecentFocusOwner(aWindow);
- if (toFocus != null && toFocus != vetoedComponent && doRestoreFocus(toFocus, vetoedComponent, false)) {
- return true;
- } else if (clearOnFailure) {
+ if (toFocus != null && toFocus != vetoedComponent) {
+ Component heavyweight = getHeavyweight(aWindow);
+ if (heavyweight != null) {
+ setNativeFocusOwner(heavyweight);
+ Toolkit.getEventQueue().createSecondaryLoop(
+ () -> getGlobalFocusedWindow() != aWindow, null, 50)
+ .enter();
+ }
+ if (getGlobalFocusedWindow() == aWindow &&
+ doRestoreFocus(toFocus, vetoedComponent, false)) {
+ return true;
+ }
+ }
+ if (clearOnFailure) {
clearGlobalFocusOwnerPriv();
return true;
} else {
--- a/jdk/src/java.desktop/share/classes/java/awt/GraphicsConfiguration.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/java/awt/GraphicsConfiguration.java Thu Jun 16 20:56:45 2016 +0000
@@ -360,8 +360,7 @@
public abstract AffineTransform getDefaultTransform();
/**
- *
- * Returns a {@code AffineTransform} that can be concatenated
+ * Returns an {@code AffineTransform} that can be concatenated
* with the default {@code AffineTransform}
* of a {@code GraphicsConfiguration} so that 72 units in user
* space equals 1 inch in device space.
--- a/jdk/src/java.desktop/share/classes/java/awt/TextField.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/java/awt/TextField.java Thu Jun 16 20:56:45 2016 +0000
@@ -159,6 +159,8 @@
* @param text the text to be displayed. If
* {@code text} is {@code null}, the empty
* string {@code ""} will be displayed.
+ * If {@code text} contains EOL character, then
+ * it will be replaced by space character.
* @exception HeadlessException if GraphicsEnvironment.isHeadless()
* returns true.
* @see java.awt.GraphicsEnvironment#isHeadless
@@ -190,6 +192,8 @@
* @param text the text to be displayed. If
* {@code text} is {@code null}, the empty
* string {@code ""} will be displayed.
+ * If {@code text} contains EOL character, then
+ * it will be replaced by space character.
* @param columns the number of columns. If
* {@code columns} is less than {@code 0},
* {@code columns} is set to {@code 0}.
@@ -293,7 +297,11 @@
/**
* Sets the text that is presented by this
* text component to be the specified text.
- * @param t the new text.
+ * @param t the new text. If
+ * {@code t} is {@code null}, the empty
+ * string {@code ""} will be displayed.
+ * If {@code t} contains EOL character, then
+ * it will be replaced by space character.
* @see java.awt.TextComponent#getText
*/
public void setText(String t) {
--- a/jdk/src/java.desktop/share/classes/java/awt/font/TransformAttribute.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/java/awt/font/TransformAttribute.java Thu Jun 16 20:56:45 2016 +0000
@@ -74,7 +74,7 @@
/**
* Returns a copy of the wrapped transform.
- * @return a {@code AffineTransform} that is a copy of the wrapped
+ * @return an {@code AffineTransform} that is a copy of the wrapped
* transform of this {@code TransformAttribute}.
*/
public AffineTransform getTransform() {
--- a/jdk/src/java.desktop/share/classes/java/awt/geom/AffineTransform.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/java/awt/geom/AffineTransform.java Thu Jun 16 20:56:45 2016 +0000
@@ -1160,10 +1160,18 @@
}
/**
- * Returns the X coordinate scaling element (m00) of the 3x3
- * affine transformation matrix.
- * @return a double value that is the X coordinate of the scaling
- * element of the affine transformation matrix.
+ * Returns the {@code m00} element of the 3x3 affine transformation matrix.
+ * This matrix factor determines how input X coordinates will affect output
+ * X coordinates and is one element of the scale of the transform.
+ * To measure the full amount by which X coordinates are stretched or
+ * contracted by this transform, use the following code:
+ * <pre>
+ * Point2D p = new Point2D.Double(1, 0);
+ * p = tx.deltaTransform(p, p);
+ * double scaleX = p.distance(0, 0);
+ * </pre>
+ * @return a double value that is {@code m00} element of the
+ * 3x3 affine transformation matrix.
* @see #getMatrix
* @since 1.2
*/
@@ -1172,10 +1180,18 @@
}
/**
- * Returns the Y coordinate scaling element (m11) of the 3x3
- * affine transformation matrix.
- * @return a double value that is the Y coordinate of the scaling
- * element of the affine transformation matrix.
+ * Returns the {@code m11} element of the 3x3 affine transformation matrix.
+ * This matrix factor determines how input Y coordinates will affect output
+ * Y coordinates and is one element of the scale of the transform.
+ * To measure the full amount by which Y coordinates are stretched or
+ * contracted by this transform, use the following code:
+ * <pre>
+ * Point2D p = new Point2D.Double(0, 1);
+ * p = tx.deltaTransform(p, p);
+ * double scaleY = p.distance(0, 0);
+ * </pre>
+ * @return a double value that is {@code m11} element of the
+ * 3x3 affine transformation matrix.
* @see #getMatrix
* @since 1.2
*/
--- a/jdk/src/java.desktop/share/classes/java/awt/image/renderable/ParameterBlock.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/java/awt/image/renderable/ParameterBlock.java Thu Jun 16 20:56:45 2016 +0000
@@ -619,9 +619,9 @@
*
* @param index the index of the parameter to be returned.
* @return the parameter at the specified index
- * as a {@code int} value.
+ * as an {@code int} value.
* @throws ClassCastException if the parameter at the
- * specified index is not a {@code Integer}
+ * specified index is not an {@code Integer}
* @throws NullPointerException if the parameter at the specified
* index is {@code null}
* @throws ArrayIndexOutOfBoundsException if {@code index}
--- a/jdk/src/java.desktop/share/classes/java/beans/BeanProperty.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/java/beans/BeanProperty.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,6 +22,7 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+
package java.beans;
import java.lang.annotation.Documented;
@@ -32,16 +33,16 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
- * An annotation used to specify some property-related information
- * for the automatically generated {@link BeanInfo} classes.
- * This annotation is not used if the annotated class
- * has a corresponding user-defined {@code BeanInfo} class,
- * which does not imply the automatic analysis.
+ * An annotation used to specify some property-related information for the
+ * automatically generated {@link BeanInfo} classes. This annotation is not used
+ * if the annotated class has a corresponding user-defined {@code BeanInfo}
+ * class, which does not imply the automatic analysis. If both the read and the
+ * write methods of the property are annotated, then the read method annotation
+ * will have more priority and replace the write method annotation.
*
+ * @author Sergey A. Malenkov
* @see BeanInfo#getPropertyDescriptors
* @since 9
- *
- * @author Sergey A. Malenkov
*/
@Documented
@Target({METHOD})
--- a/jdk/src/java.desktop/share/classes/java/beans/Encoder.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/java/beans/Encoder.java Thu Jun 16 20:56:45 2016 +0000
@@ -136,7 +136,7 @@
* a shared internal persistence delegate is returned
* that encodes {@code null} value.
* <li>
- * If the type is a {@code enum} declaration,
+ * If the type is an {@code enum} declaration,
* a shared internal persistence delegate is returned
* that encodes constants of this enumeration
* by their names.
--- a/jdk/src/java.desktop/share/classes/java/beans/PersistenceDelegate.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/java/beans/PersistenceDelegate.java Thu Jun 16 20:56:45 2016 +0000
@@ -89,7 +89,7 @@
/**
* The {@code writeObject} is a single entry point to the persistence
- * and is used by a {@code Encoder} in the traditional
+ * and is used by an {@code Encoder} in the traditional
* mode of delegation. Although this method is not final,
* it should not need to be subclassed under normal circumstances.
* <p>
--- a/jdk/src/java.desktop/share/classes/java/beans/Statement.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/java/beans/Statement.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,6 +39,8 @@
import com.sun.beans.finder.MethodFinder;
import sun.reflect.misc.MethodUtil;
+import static sun.reflect.misc.ReflectUtil.checkPackageAccess;
+
/**
* A {@code Statement} object represents a primitive statement
* in which a single method is applied to a target and
@@ -205,12 +207,22 @@
Object[] arguments = getArguments();
if (arguments == null) {
arguments = emptyArray;
+ } else {
+ arguments = arguments.clone();
}
- // Class.forName() won't load classes outside
- // of core from a class inside core. Special
- // case this method.
if (target == Class.class && methodName.equals("forName")) {
- return ClassFinder.resolveClass((String)arguments[0], this.loader);
+ final String name = (String) arguments[0];
+ if (arguments.length == 1) {
+ // Class.forName(String className) won't load classes outside
+ // of core from a class inside core. Special
+ // case this method.
+ // checkPackageAccess(name) will be called by ClassFinder
+ return ClassFinder.resolveClass(name, this.loader);
+ }
+ // The 3 args Class.forName(String className, boolean, classloader)
+ // requires getClassLoader permission, but we will be stricter and
+ // will require access to the package as well.
+ checkPackageAccess(name);
}
Class<?>[] argClasses = new Class<?>[arguments.length];
for(int i = 0; i < arguments.length; i++) {
--- a/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/BaselineTIFFTagSet.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/BaselineTIFFTagSet.java Thu Jun 16 20:56:45 2016 +0000
@@ -58,7 +58,7 @@
* @since 9
* @see <a href="http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf"> TIFF 6.0 Specification</a>
*/
-public class BaselineTIFFTagSet extends TIFFTagSet {
+public final class BaselineTIFFTagSet extends TIFFTagSet {
private static BaselineTIFFTagSet theInstance = null;
--- a/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/ExifGPSTagSet.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/ExifGPSTagSet.java Thu Jun 16 20:56:45 2016 +0000
@@ -38,7 +38,7 @@
* @since 9
* @see ExifTIFFTagSet
*/
-public class ExifGPSTagSet extends TIFFTagSet {
+public final class ExifGPSTagSet extends TIFFTagSet {
private static ExifGPSTagSet theInstance = null;
/**
--- a/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/ExifInteroperabilityTagSet.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/ExifInteroperabilityTagSet.java Thu Jun 16 20:56:45 2016 +0000
@@ -34,7 +34,7 @@
* @since 9
* @see ExifTIFFTagSet
*/
-public class ExifInteroperabilityTagSet extends TIFFTagSet {
+public final class ExifInteroperabilityTagSet extends TIFFTagSet {
/**
* A tag indicating the identification of the Interoperability rule
* (type ASCII).
--- a/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/ExifParentTIFFTagSet.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/ExifParentTIFFTagSet.java Thu Jun 16 20:56:45 2016 +0000
@@ -36,7 +36,7 @@
*
* @since 9
*/
-public class ExifParentTIFFTagSet extends TIFFTagSet {
+public final class ExifParentTIFFTagSet extends TIFFTagSet {
private static ExifParentTIFFTagSet theInstance = null;
--- a/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/ExifTIFFTagSet.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/ExifTIFFTagSet.java Thu Jun 16 20:56:45 2016 +0000
@@ -41,7 +41,7 @@
*
* @since 9
*/
-public class ExifTIFFTagSet extends TIFFTagSet {
+public final class ExifTIFFTagSet extends TIFFTagSet {
private static ExifTIFFTagSet theInstance = null;
--- a/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/FaxTIFFTagSet.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/FaxTIFFTagSet.java Thu Jun 16 20:56:45 2016 +0000
@@ -33,7 +33,7 @@
*
* @since 9
*/
-public class FaxTIFFTagSet extends TIFFTagSet {
+public final class FaxTIFFTagSet extends TIFFTagSet {
private static FaxTIFFTagSet theInstance = null;
--- a/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/GeoTIFFTagSet.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/GeoTIFFTagSet.java Thu Jun 16 20:56:45 2016 +0000
@@ -41,7 +41,7 @@
*
* @since 9
*/
-public class GeoTIFFTagSet extends TIFFTagSet {
+public final class GeoTIFFTagSet extends TIFFTagSet {
private static GeoTIFFTagSet theInstance = null;
--- a/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/TIFFField.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/TIFFField.java Thu Jun 16 20:56:45 2016 +0000
@@ -843,10 +843,9 @@
* Returns the {@code TIFFField} as a node named either
* <tt>"TIFFField"</tt> or <tt>"TIFFIFD"</tt> as described in the
* TIFF native image metadata specification. The node will be named
- * <tt>"TIFFIFD"</tt> if and only if the field's data object is an
- * instance of {@link TIFFDirectory} or equivalently
- * {@link TIFFTag#isIFDPointer getTag.isIFDPointer()} returns
- * {@code true}.
+ * <tt>"TIFFIFD"</tt> if and only if {@link #hasDirectory()} returns
+ * {@code true} and the field's type is either {@link TIFFTag#TIFF_LONG}
+ * or {@link TIFFTag#TIFF_IFD_POINTER}.
*
* @return a {@code Node} named <tt>"TIFFField"</tt> or
* <tt>"TIFFIFD"</tt>.
--- a/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/TIFFTagSet.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/plugins/tiff/TIFFTagSet.java Thu Jun 16 20:56:45 2016 +0000
@@ -34,14 +34,13 @@
import java.util.TreeSet;
/**
- * A class representing a set of TIFF tags. Each tag in the set must
- * have a unique number (this is a limitation of the TIFF
- * specification itself).
+ * A class representing a set of TIFF tags. Each tag in the set must have
+ * a unique number (this is a limitation of the TIFF specification itself).
*
* <p> This class and its subclasses are responsible for mapping
* between raw tag numbers and {@code TIFFTag} objects, which
* contain additional information about each tag, such as the tag's
- * name, legal data types, and mnemonic names for some or all of ts
+ * name, legal data types, and mnemonic names for some or all of its
* data values.
*
* @since 9
--- a/jdk/src/java.desktop/share/classes/javax/imageio/spi/ServiceRegistry.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/spi/ServiceRegistry.java Thu Jun 16 20:56:45 2016 +0000
@@ -770,7 +770,12 @@
poset.add(provider);
if (provider instanceof RegisterableService) {
RegisterableService rs = (RegisterableService)provider;
- rs.onRegistration(registry, category);
+ try {
+ rs.onRegistration(registry, category);
+ } catch (Throwable t) {
+ System.err.println("Caught and handled this exception :");
+ t.printStackTrace();
+ }
}
return !present;
--- a/jdk/src/java.desktop/share/classes/javax/imageio/stream/ImageInputStream.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/stream/ImageInputStream.java Thu Jun 16 20:56:45 2016 +0000
@@ -32,7 +32,7 @@
/**
* A seekable input stream interface for use by
- * {@code ImageReader}s. Various input sources, such as
+ * {@code ImageReader}s. Various input sources, such as
* {@code InputStream}s and {@code File}s,
* as well as future fast I/O sources may be "wrapped" by a suitable
* implementation of this interface for use by the Image I/O API.
@@ -469,7 +469,7 @@
* then a {@code UTFDataFormatException} is thrown.
*
* <p> If end of file is encountered at any time during this
- * entire process, then an {@code java.io.EOFException} is thrown.
+ * entire process, then a {@code java.io.EOFException} is thrown.
*
* <p> After every group has been converted to a character by this
* process, the characters are gathered, in the same order in
@@ -499,7 +499,7 @@
/**
* Reads {@code len} bytes from the stream, and stores them
* into {@code b} starting at index {@code off}.
- * If the end of the stream is reached, an {@code java.io.EOFException}
+ * If the end of the stream is reached, a {@code java.io.EOFException}
* will be thrown.
*
* <p> The bit offset within the stream is reset to zero before
@@ -523,7 +523,7 @@
/**
* Reads {@code b.length} bytes from the stream, and stores them
* into {@code b} starting at index {@code 0}.
- * If the end of the stream is reached, an {@code java.io.EOFException}
+ * If the end of the stream is reached, a {@code java.io.EOFException}
* will be thrown.
*
* <p> The bit offset within the stream is reset to zero before
@@ -543,8 +543,8 @@
* Reads {@code len} shorts (signed 16-bit integers) from the
* stream according to the current byte order, and
* stores them into {@code s} starting at index
- * {@code off}. If the end of the stream is reached, an
- * {@code java.io.EOFException} will be thrown.
+ * {@code off}. If the end of the stream is reached,
+ * a {@code java.io.EOFException} will be thrown.
*
* <p> The bit offset within the stream is reset to zero before
* the read occurs.
@@ -568,8 +568,8 @@
* Reads {@code len} chars (unsigned 16-bit integers) from the
* stream according to the current byte order, and
* stores them into {@code c} starting at index
- * {@code off}. If the end of the stream is reached, an
- * {@code java.io.EOFException} will be thrown.
+ * {@code off}. If the end of the stream is reached,
+ * a {@code java.io.EOFException} will be thrown.
*
* <p> The bit offset within the stream is reset to zero before
* the read occurs.
@@ -593,8 +593,8 @@
* Reads {@code len} ints (signed 32-bit integers) from the
* stream according to the current byte order, and
* stores them into {@code i} starting at index
- * {@code off}. If the end of the stream is reached, an
- * {@code java.io.EOFException} will be thrown.
+ * {@code off}. If the end of the stream is reached,
+ * a {@code java.io.EOFException} will be thrown.
*
* <p> The bit offset within the stream is reset to zero before
* the read occurs.
@@ -618,8 +618,8 @@
* Reads {@code len} longs (signed 64-bit integers) from the
* stream according to the current byte order, and
* stores them into {@code l} starting at index
- * {@code off}. If the end of the stream is reached, an
- * {@code java.io.EOFException} will be thrown.
+ * {@code off}. If the end of the stream is reached,
+ * a {@code java.io.EOFException} will be thrown.
*
* <p> The bit offset within the stream is reset to zero before
* the read occurs.
@@ -644,7 +644,7 @@
* floats) from the stream according to the current byte order,
* and stores them into {@code f} starting at
* index {@code off}. If the end of the stream is reached,
- * an {@code java.io.EOFException} will be thrown.
+ * a {@code java.io.EOFException} will be thrown.
*
* <p> The bit offset within the stream is reset to zero before
* the read occurs.
@@ -669,7 +669,7 @@
* floats) from the stream according to the current byte order,
* and stores them into {@code d} starting at
* index {@code off}. If the end of the stream is reached,
- * an {@code java.io.EOFException} will be thrown.
+ * a {@code java.io.EOFException} will be thrown.
*
* <p> The bit offset within the stream is reset to zero before
* the read occurs.
@@ -781,7 +781,7 @@
* byte order is being used (i.e., {@code getByteOrder() == false}).
*
* <p> If the end of the stream is encountered before all the bits
- * have been read, an {@code java.io.EOFException} is thrown.
+ * have been read, a {@code java.io.EOFException} is thrown.
*
* @param numBits the number of bits to read, as an {@code int}
* between 0 and 64, inclusive.
@@ -848,8 +848,8 @@
* {@code pos} is smaller than the flushed position (as
* returned by {@code getflushedPosition}).
*
- * <p> It is legal to seek past the end of the file; an
- * {@code java.io.EOFException} will be thrown only if a read is
+ * <p> It is legal to seek past the end of the file;
+ * a {@code java.io.EOFException} will be thrown only if a read is
* performed.
*
* @param pos a {@code long} containing the desired file
--- a/jdk/src/java.desktop/share/classes/javax/imageio/stream/ImageOutputStream.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/imageio/stream/ImageOutputStream.java Thu Jun 16 20:56:45 2016 +0000
@@ -44,7 +44,7 @@
* a non-zero bit offset before a byte-aligned read. When reading bytes,
* any bit offset is set to 0 before the read; when writing bytes, a
* non-zero bit offset causes the remaining bits in the byte to be written
- * as 0s. The byte-aligned write then starts at the next byte position.
+ * as 0s. The byte-aligned write then starts at the next byte position.
*
* @see ImageInputStream
*
@@ -290,7 +290,7 @@
/**
* Writes a {@code double} value, which is comprised of four
* bytes, to the output stream. It does this as if it first
- * converts this {@code double} value to an {@code long}
+ * converts this {@code double} value to a {@code long}
* in exactly the manner of the
* {@code Double.doubleToLongBits} method and then writes the
* long value in exactly the manner of the {@code writeLong}
--- a/jdk/src/java.desktop/share/classes/javax/print/ServiceUI.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/print/ServiceUI.java Thu Jun 16 20:56:45 2016 +0000
@@ -134,7 +134,9 @@
*
* @param gc used to select screen. null means primary or default screen.
* @param x location of dialog including border in screen coordinates
+ * relative to the origin of {@code gc}.
* @param y location of dialog including border in screen coordinates
+ * relative to the origin of {@code gc}.
* @param services to be browsable, must be non-null.
* @param defaultService initial PrintService to display.
* @param flavor the flavor to be printed, or null.
--- a/jdk/src/java.desktop/share/classes/javax/print/package.html Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/print/package.html Thu Jun 16 20:56:45 2016 +0000
@@ -122,7 +122,7 @@
PrintRequestAttributeSet aset =
new HashPrintRequestAttributeSet();
aset.add(new Copies(5));
-aset.add(MediaSize.A4);
+aset.add(MediaSizeName.ISO_A4);
aset.add(Sides.DUPLEX);
PrintService[] services =
PrintServiceLookup.lookupPrintServices(psInFormat, aset);
--- a/jdk/src/java.desktop/share/classes/javax/sound/midi/Sequence.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/sound/midi/Sequence.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -266,11 +266,7 @@
* @see #getTracks
*/
public boolean deleteTrack(Track track) {
-
- synchronized(tracks) {
-
- return tracks.removeElement(track);
- }
+ return tracks.removeElement(track);
}
/**
@@ -282,8 +278,8 @@
* @see #deleteTrack
*/
public Track[] getTracks() {
-
- return tracks.toArray(new Track[tracks.size()]);
+ // Creation of the non-empty array will be synchronized inside toArray()
+ return tracks.toArray(new Track[0]);
}
/**
--- a/jdk/src/java.desktop/share/classes/javax/sound/sampled/AudioFormat.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/sound/sampled/AudioFormat.java Thu Jun 16 20:56:45 2016 +0000
@@ -633,7 +633,7 @@
* {@code String} is the same name that was passed to the constructor.
* For the predefined encodings, the name is similar to the encoding's
* variable (field) name. For example, {@code PCM_SIGNED.toString()}
- * returns the name "pcm_signed".
+ * returns the name "PCM_SIGNED".
*
* @return the encoding name
*/
--- a/jdk/src/java.desktop/share/classes/javax/sound/sampled/EnumControl.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/sound/sampled/EnumControl.java Thu Jun 16 20:56:45 2016 +0000
@@ -26,8 +26,8 @@
package javax.sound.sampled;
/**
- * A {@code EnumControl} provides control over a set of discrete possible values
- * , each represented by an object. In a graphical user interface, such a
+ * An {@code EnumControl} provides control over a set of discrete possible
+ * values, each represented by an object. In a graphical user interface, such a
* control might be represented by a set of buttons, each of which chooses one
* value or setting. For example, a reverb control might provide several preset
* reverberation settings, instead of providing continuously adjustable
--- a/jdk/src/java.desktop/share/classes/javax/sound/sampled/UnsupportedAudioFileException.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/sound/sampled/UnsupportedAudioFileException.java Thu Jun 16 20:56:45 2016 +0000
@@ -38,16 +38,16 @@
private static final long serialVersionUID = -139127412623160368L;
/**
- * Constructs a {@code UnsupportedAudioFileException} that has {@code null}
- * as its error detail message.
+ * Constructs an {@code UnsupportedAudioFileException} that has
+ * {@code null} as its error detail message.
*/
public UnsupportedAudioFileException() {
super();
}
/**
- * Constructs a {@code UnsupportedAudioFileException} that has the specified
- * detail message.
+ * Constructs an {@code UnsupportedAudioFileException} that has the
+ * specified detail message.
*
* @param message a string containing the error detail message
*/
--- a/jdk/src/java.desktop/share/classes/javax/swing/BorderFactory.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/BorderFactory.java Thu Jun 16 20:56:45 2016 +0000
@@ -52,7 +52,7 @@
//// LineBorder ///////////////////////////////////////////////////////////////
/**
- * Creates a line border withe the specified color.
+ * Creates a line border with the specified color.
*
* @param color a <code>Color</code> to use for the line
* @return the <code>Border</code> object
--- a/jdk/src/java.desktop/share/classes/javax/swing/GroupLayout.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/GroupLayout.java Thu Jun 16 20:56:45 2016 +0000
@@ -718,10 +718,10 @@
* <p>
* Linked {@code Component}s are not be resizable.
*
- * @param components the {@code Component}s that are to have the same size
* @param axis the axis to link the size along; one of
* {@code SwingConstants.HORIZONTAL} or
- * {@code SwingConstans.VERTICAL}
+ * {@code SwingConstants.VERTICAL}
+ * @param components the {@code Component}s that are to have the same size
* @throws IllegalArgumentException if {@code components} is
* {@code null}, or contains {@code null}; or {@code axis}
* is not {@code SwingConstants.HORIZONTAL} or
--- a/jdk/src/java.desktop/share/classes/javax/swing/InputVerifier.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/InputVerifier.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,108 +28,151 @@
import java.util.*;
/**
- * The purpose of this class is to help clients support smooth focus
- * navigation through GUIs with text fields. Such GUIs often need
- * to ensure that the text entered by the user is valid (for example,
- * that it's in
- * the proper format) before allowing the user to navigate out of
- * the text field. To do this, clients create a subclass of
- * <code>InputVerifier</code> and, using <code>JComponent</code>'s
- * <code>setInputVerifier</code> method,
- * attach an instance of their subclass to the <code>JComponent</code> whose input they
- * want to validate. Before focus is transfered to another Swing component
- * that requests it, the input verifier's <code>shouldYieldFocus</code> method is
- * called. Focus is transfered only if that method returns <code>true</code>.
+ * This class provides the validation mechanism for Swing components. GUIs often
+ * need to ensure that the components are in a valid state before allowing the
+ * user to navigate the input focus. To do this, clients create a subclass of
+ * {@code InputVerifier} and, using {@code JComponent}'s
+ * {@code setInputVerifier} method, attach an instance of their subclass to
+ * the {@code JComponent} which is the source of the focus transfer operation.
+ * The {@code InputVerifier} also provides the possibility to validate against
+ * the target of the focus transfer which may reject the focus.
+ * Before focus is transferred from the source Swing component to the target
+ * Swing component, the input verifier's
+ * {@code shouldYieldFocus(source, target)} method is called. Focus is
+ * transferred only if that method returns
+ * {@code true}.
* <p>
* The following example has two text fields, with the first one expecting
- * the string "pass" to be entered by the user. If that string is entered in
- * the first text field, then the user can advance to the second text field
- * either by clicking in it or by pressing TAB. However, if another string
- * is entered in the first text field, then the user will be unable to
+ * the string "pass" to be entered by the user. If either that string is entered
+ * in the first text field or the second text field contains "accept" string,
+ * then the user can advance focus to the second text field by clicking in it or
+ * by pressing TAB.
+ * However, if another string is entered in the first text field and the second
+ * text field does not contain "accept", then the user will be unable to
* transfer focus to the second text field.
*
* <pre>
* import java.awt.*;
- * import java.util.*;
- * import java.awt.event.*;
* import javax.swing.*;
*
* // This program demonstrates the use of the Swing InputVerifier class.
* // It creates two text fields; the first of the text fields expects the
- * // string "pass" as input, and will allow focus to advance out of it
- * // only after that string is typed in by the user.
+ * // string "pass" as input, and will allow focus to advance to the second text
+ * // field if either that string is typed in by the user or the second
+ * // field contains "accept" string.
*
* public class VerifierTest extends JFrame {
+ *
* public VerifierTest() {
- * JTextField tf1 = new JTextField ("Type \"pass\" here");
- * getContentPane().add (tf1, BorderLayout.NORTH);
- * tf1.setInputVerifier(new PassVerifier());
+ * JTextField field1 = new JTextField("Type \"pass\" here");
+ * JTextField field2 = new JTextField("or \"accept\" here");
+ * getContentPane().add(field1, BorderLayout.NORTH);
+ * getContentPane().add(field2, BorderLayout.SOUTH);
*
- * JTextField tf2 = new JTextField ("TextField2");
- * getContentPane().add (tf2, BorderLayout.SOUTH);
+ * field.setInputVerifier(new InputVerifier() {
+ * public boolean verify(JComponent input) {
+ * return "pass".equals(((JTextField) input).getText());
+ * }
*
- * WindowListener l = new WindowAdapter() {
- * public void windowClosing(WindowEvent e) {
- * System.exit(0);
+ * public boolean verifyTarget(JComponent input) {
+ * return "accept".equals(((JTextField) input).getText());
* }
- * };
- * addWindowListener(l);
- * }
*
- * class PassVerifier extends InputVerifier {
- * public boolean verify(JComponent input) {
- * JTextField tf = (JTextField) input;
- * return "pass".equals(tf.getText());
- * }
+ * public boolean shouldYieldFocus(JComponent source,
+ * JComponent target) {
+ * return verify(source) || verifyTarget(target);
+ * }
+ * });
+ *
+ * pack();
+ * setVisible(true);
* }
*
* public static void main(String[] args) {
- * Frame f = new VerifierTest();
- * f.pack();
- * f.setVisible(true);
+ * SwingUtilities.invokeLater(VerifierTest::new);
* }
* }
* </pre>
*
- * @since 1.3
+ * @since 1.3
*/
-
-
public abstract class InputVerifier {
- /**
- * Checks whether the JComponent's input is valid. This method should
- * have no side effects. It returns a boolean indicating the status
- * of the argument's input.
- *
- * @param input the JComponent to verify
- * @return <code>true</code> when valid, <code>false</code> when invalid
- * @see JComponent#setInputVerifier
- * @see JComponent#getInputVerifier
- *
- */
+ /**
+ * Checks whether the JComponent's input is valid. This method should
+ * have no side effects. It returns a boolean indicating the status
+ * of the argument's input.
+ *
+ * @param input the JComponent to verify
+ * @return {@code true} when valid, {@code false} when invalid
+ * @see JComponent#setInputVerifier
+ * @see JComponent#getInputVerifier
+ */
+ public abstract boolean verify(JComponent input);
- public abstract boolean verify(JComponent input);
-
+ /**
+ * Calls {@code verify(input)} to ensure that the input is valid.
+ * This method can have side effects. In particular, this method
+ * is called when the user attempts to advance focus out of the
+ * argument component into another Swing component in this window.
+ * If this method returns {@code true}, then the focus is transferred
+ * normally; if it returns {@code false}, then the focus remains in
+ * the argument component.
+ *
+ * @param input the JComponent to verify
+ * @return {@code true} when valid, {@code false} when invalid
+ * @see JComponent#setInputVerifier
+ * @see JComponent#getInputVerifier
+ *
+ * @deprecated use {@link #shouldYieldFocus(JComponent, JComponent)}
+ * instead.
+ */
+ @Deprecated(since = "9")
+ public boolean shouldYieldFocus(JComponent input) {
+ return verify(input);
+ }
- /**
- * Calls <code>verify(input)</code> to ensure that the input is valid.
- * This method can have side effects. In particular, this method
- * is called when the user attempts to advance focus out of the
- * argument component into another Swing component in this window.
- * If this method returns <code>true</code>, then the focus is transfered
- * normally; if it returns <code>false</code>, then the focus remains in
- * the argument component.
- *
- * @param input the JComponent to verify
- * @return <code>true</code> when valid, <code>false</code> when invalid
- * @see JComponent#setInputVerifier
- * @see JComponent#getInputVerifier
- *
- */
+ /**
+ * Checks whether the target JComponent that will be receiving the focus
+ * is ready to accept it. This method should be over-ridden only if it is
+ * necessary to validate the target of the focus transfer.
+ * This method should have no side effects. It returns a boolean
+ * indicating the status of the argument's input.
+ *
+ * @implSpec By default this method returns {@code true}.
+ *
+ * @param target the target JComponent to verify
+ * @return {@code true} when valid, {@code false} when invalid
+ * @see JComponent#setInputVerifier
+ * @see JComponent#getInputVerifier
+ * @since 9
+ */
+ public boolean verifyTarget(JComponent target) {
+ return true;
+ }
- public boolean shouldYieldFocus(JComponent input) {
- return verify(input);
- }
-
+ /**
+ * Is called by Swing if this {@code InputVerifier} is assigned to the
+ * {@code source} Swing component to check whether the requested focus
+ * transfer from the {@code source} to {@code target} is allowed.
+ * This method can have side effects.
+ * If this method returns {@code true}, then the focus is transferred
+ * normally; if it returns {@code false}, then the focus remains in
+ * the first argument component.
+ *
+ * @implSpec The basic implementation of this method returns the conjunction
+ * of results obtained from {@code verify(input)} and
+ * {@code verifyTarget(input)} to ensure that both the source and the target
+ * components are in valid state.
+ *
+ * @param source the source JComponent of the focus transfer
+ * @param target the target JComponent of the focus transfer
+ * @return {@code true} when valid, {@code false} when invalid
+ * @see JComponent#setInputVerifier
+ * @see JComponent#getInputVerifier
+ * @since 9
+ */
+ public boolean shouldYieldFocus(JComponent source, JComponent target) {
+ return shouldYieldFocus(source) && verifyTarget(target);
+ }
}
--- a/jdk/src/java.desktop/share/classes/javax/swing/JComponent.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/JComponent.java Thu Jun 16 20:56:45 2016 +0000
@@ -3587,7 +3587,7 @@
SwingUtilities.appContextPut(INPUT_VERIFIER_SOURCE_KEY,
jFocusOwner);
try {
- return iv.shouldYieldFocus(jFocusOwner);
+ return iv.shouldYieldFocus(jFocusOwner, target);
} finally {
if (currentSource != null) {
// We're already in the InputVerifier for
--- a/jdk/src/java.desktop/share/classes/javax/swing/JEditorPane.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/JEditorPane.java Thu Jun 16 20:56:45 2016 +0000
@@ -559,10 +559,9 @@
in = new BufferedInputStream(in, READ_LIMIT);
in.mark(READ_LIMIT);
}
- try {
- String charset = (String) getClientProperty("charset");
- Reader r = (charset != null) ? new InputStreamReader(in, charset) :
- new InputStreamReader(in);
+ String charset = (String) getClientProperty("charset");
+ try(Reader r = (charset != null) ? new InputStreamReader(in, charset) :
+ new InputStreamReader(in)) {
kit.read(r, doc, 0);
} catch (BadLocationException e) {
throw new IOException(e.getMessage());
@@ -1186,7 +1185,7 @@
if (k == null) {
// try to dynamically load the support
String classname = getKitTypeRegistry().get(type);
- ClassLoader loader = getKitLoaderRegistry().get(type);
+ ClassLoader loader = getKitLoaderRegistry().get(type).orElse(null);
try {
Class<?> c;
if (loader != null) {
@@ -1243,7 +1242,7 @@
*/
public static void registerEditorKitForContentType(String type, String classname, ClassLoader loader) {
getKitTypeRegistry().put(type, classname);
- getKitLoaderRegistry().put(type, loader);
+ getKitLoaderRegistry().put(type, Optional.ofNullable(loader));
getKitRegisty().remove(type);
}
@@ -1268,10 +1267,10 @@
return tmp;
}
- private static Hashtable<String, ClassLoader> getKitLoaderRegistry() {
+ private static Hashtable<String, Optional<ClassLoader>> getKitLoaderRegistry() {
loadDefaultKitsIfNecessary();
@SuppressWarnings("unchecked")
- Hashtable<String, ClassLoader> tmp =
+ Hashtable<String, Optional<ClassLoader>> tmp =
(Hashtable)SwingUtilities.appContextGet(kitLoaderRegistryKey);
return tmp;
}
--- a/jdk/src/java.desktop/share/classes/javax/swing/LookAndFeel.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/LookAndFeel.java Thu Jun 16 20:56:45 2016 +0000
@@ -346,7 +346,7 @@
}
/**
- * Creates a {@code InputMapUIResource} from <code>keys</code>. This is
+ * Creates an {@code InputMapUIResource} from <code>keys</code>. This is
* a convenience method for creating a new {@code InputMapUIResource},
* invoking {@code loadKeyBindings(map, keys)}, and returning the
* {@code InputMapUIResource}.
--- a/jdk/src/java.desktop/share/classes/javax/swing/PopupFactory.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/PopupFactory.java Thu Jun 16 20:56:45 2016 +0000
@@ -175,12 +175,43 @@
* @return Popup containing Contents
*/
public Popup getPopup(Component owner, Component contents,
- int x, int y) throws IllegalArgumentException {
+ int x, int y) throws IllegalArgumentException {
+ return getPopup(owner, contents, x, y, false);
+ }
+
+ /**
+ * Creates a {@code Popup} for the Component {@code owner}
+ * containing the Component {@code contents}.
+ * The window containing the component {@code owner}
+ * will be used as the parent window. A null {@code owner} implies there
+ * is no valid parent. {@code x} and {@code y} specify the preferred
+ * initial location to place the {@code Popup} at. Based on screen size,
+ * or other parameters, the {@code Popup} may not display at {@code x} and
+ * {@code y}. {@code isHeavyWeightPopup} specifies if the {@code Popup}
+ * will be heavyweight. Passing {@code true} will force the {@code Popup}
+ * type to be heavyweight, otherwise {@code Popup} type will be selected by
+ * {@code Popup} factory. Lightweight {@code Popup} windows are more
+ * efficient than heavyweight (native peer) windows, but lightweight
+ * and heavyweight components do not mix well in a GUI.
+ * This method is intended to be used only by PopupFactory sub-classes.
+ * @param owner Component mouse coordinates are relative to, may be null
+ * @param contents Contents of the Popup
+ * @param x Initial x screen coordinate
+ * @param y Initial y screen coordinate
+ * @param isHeavyWeightPopup true if Popup should be heavy weight,
+ * otherwise popup type will be selected by popup factory.
+ * @throws IllegalArgumentException if contents is null
+ * @return Popup containing Contents
+ */
+ protected Popup getPopup(Component owner, Component contents, int x, int y,
+ boolean isHeavyWeightPopup) throws IllegalArgumentException {
if (contents == null) {
throw new IllegalArgumentException(
- "Popup.getPopup must be passed non-null contents");
+ "Popup.getPopup must be passed non-null contents");
}
-
+ if (isHeavyWeightPopup) {
+ return getPopup(owner, contents, x, y, HEAVY_WEIGHT_POPUP);
+ }
int popupType = getPopupType(owner, contents, x, y);
Popup popup = getPopup(owner, contents, x, y, popupType);
@@ -987,3 +1018,4 @@
}
}
}
+
--- a/jdk/src/java.desktop/share/classes/javax/swing/UIManager.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/UIManager.java Thu Jun 16 20:56:45 2016 +0000
@@ -59,6 +59,7 @@
import sun.swing.SwingUtilities2;
import java.lang.reflect.Method;
import java.util.HashMap;
+import java.util.Objects;
import sun.awt.AppContext;
import sun.awt.AWTAccessor;
@@ -495,6 +496,48 @@
return getLAFState().lookAndFeel;
}
+ /**
+ * Creates a supported built-in Java {@code LookAndFeel} specified
+ * by the given {@code L&F name} name.
+ *
+ * @param name a {@code String} specifying the name of the built-in
+ * look and feel
+ * @return the built-in {@code LookAndFeel} object
+ * @throws NullPointerException if {@code name} is {@code null}
+ * @throws UnsupportedLookAndFeelException if the built-in Java {@code L&F}
+ * is not found for the given name or it is not supported by the
+ * underlying platform
+ *
+ * @see LookAndFeel#getName
+ * @see LookAndFeel#isSupportedLookAndFeel
+ *
+ * @since 9
+ */
+ public static LookAndFeel createLookAndFeel(String name)
+ throws UnsupportedLookAndFeelException {
+ Objects.requireNonNull(name);
+
+ if ("GTK look and feel".equals(name)) {
+ name = "GTK+";
+ }
+
+ try {
+ for (LookAndFeelInfo info : installedLAFs) {
+ if (info.getName().equals(name)) {
+ Class<?> cls = Class.forName(UIManager.class.getModule(),
+ info.getClassName());
+ LookAndFeel laf = (LookAndFeel) cls.newInstance();
+ if (!laf.isSupportedLookAndFeel()) {
+ break;
+ }
+ return laf;
+ }
+ }
+ } catch (InstantiationException | IllegalAccessException ignore) {
+ }
+
+ throw new UnsupportedLookAndFeelException(name);
+ }
/**
* Sets the current look and feel to {@code newLookAndFeel}.
--- a/jdk/src/java.desktop/share/classes/javax/swing/event/AncestorListener.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/event/AncestorListener.java Thu Jun 16 20:56:45 2016 +0000
@@ -57,7 +57,7 @@
/**
* Called when the source or one of its ancestors is made invisible
* either by setVisible(false) being called or by its being
- * remove from the component hierarchy. The method is only called
+ * removed from the component hierarchy. The method is only called
* if the source has actually become invisible. For this to be true
* at least one of its parents must by invisible or it is not in
* a hierarchy rooted at a Window
--- a/jdk/src/java.desktop/share/classes/javax/swing/plaf/BorderUIResource.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/plaf/BorderUIResource.java Thu Jun 16 20:56:45 2016 +0000
@@ -160,7 +160,7 @@
public static class EmptyBorderUIResource extends EmptyBorder implements UIResource {
/**
- * Constructs a {@code EmptyBorderUIResource}.
+ * Constructs an {@code EmptyBorderUIResource}.
* @param top the top inset of the border
* @param left the left inset of the border
* @param bottom the bottom inset of the border
@@ -170,7 +170,7 @@
super(top, left, bottom, right);
}
/**
- * Constructs a {@code EmptyBorderUIResource}.
+ * Constructs an {@code EmptyBorderUIResource}.
* @param insets the insets of the border
*/
@ConstructorProperties({"borderInsets"})
--- a/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -150,8 +150,6 @@
*/
protected KeyListener popupKeyListener;
- private MouseWheelListener mouseWheelListener;
-
// This is used for knowing when to cache the minimum preferred size.
// If the data in the list changes, the cached value get marked for recalc.
// Added to the current JComboBox model
@@ -415,10 +413,6 @@
comboBox.getModel().addListDataListener( listDataListener );
}
}
-
- if ((mouseWheelListener = createMouseWheelListener()) != null) {
- comboBox.addMouseWheelListener(mouseWheelListener);
- }
}
/**
@@ -465,9 +459,6 @@
comboBox.getModel().removeListDataListener( listDataListener );
}
}
- if (mouseWheelListener != null) {
- comboBox.removeMouseWheelListener(mouseWheelListener);
- }
}
/**
@@ -581,10 +572,6 @@
return handler;
}
- private MouseWheelListener createMouseWheelListener() {
- return getHandler();
- }
-
//
// end UI Initialization
//======================
@@ -1737,8 +1724,7 @@
//
private class Handler implements ActionListener, FocusListener,
KeyListener, LayoutManager,
- ListDataListener, PropertyChangeListener,
- MouseWheelListener {
+ ListDataListener, PropertyChangeListener {
//
// PropertyChangeListener
//
@@ -2026,10 +2012,6 @@
}
}
}
-
- public void mouseWheelMoved(MouseWheelEvent e) {
- e.consume();
- }
}
class DefaultKeySelectionManager implements JComboBox.KeySelectionManager, UIResource {
--- a/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboPopup.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboPopup.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -379,17 +379,26 @@
// PopupMenuListeners.
protected void firePopupMenuWillBecomeVisible() {
+ if (scrollerMouseWheelListener != null) {
+ comboBox.addMouseWheelListener(scrollerMouseWheelListener);
+ }
super.firePopupMenuWillBecomeVisible();
// comboBox.firePopupMenuWillBecomeVisible() is called from BasicComboPopup.show() method
// to let the user change the popup menu from the PopupMenuListener.popupMenuWillBecomeVisible()
}
protected void firePopupMenuWillBecomeInvisible() {
+ if (scrollerMouseWheelListener != null) {
+ comboBox.removeMouseWheelListener(scrollerMouseWheelListener);
+ }
super.firePopupMenuWillBecomeInvisible();
comboBox.firePopupMenuWillBecomeInvisible();
}
protected void firePopupMenuCanceled() {
+ if (scrollerMouseWheelListener != null) {
+ comboBox.removeMouseWheelListener(scrollerMouseWheelListener);
+ }
super.firePopupMenuCanceled();
comboBox.firePopupMenuCanceled();
}
--- a/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Thu Jun 16 20:56:45 2016 +0000
@@ -1050,17 +1050,6 @@
FileSystemView fs = chooser.getFileSystemView();
File dir = chooser.getCurrentDirectory();
- if (filename != null) {
- // Remove whitespaces from end of filename
- int i = filename.length() - 1;
-
- while (i >=0 && filename.charAt(i) <= ' ') {
- i--;
- }
-
- filename = filename.substring(0, i + 1);
- }
-
if (filename == null || filename.length() == 0) {
// no file selected, multiple selection off, therefore cancel the approve action
resetGlobFilter();
--- a/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java Thu Jun 16 20:56:45 2016 +0000
@@ -228,6 +228,15 @@
arrowIcon instanceof UIResource) {
arrowIcon = UIManager.getIcon(prefix + ".arrowIcon");
}
+ updateCheckIcon();
+ }
+
+ /**
+ * Updates check Icon based on column layout
+ */
+ private void updateCheckIcon() {
+ String prefix = getPropertyPrefix();
+
if (checkIcon == null ||
checkIcon instanceof UIResource) {
checkIcon = UIManager.getIcon(prefix + ".checkIcon");
@@ -238,8 +247,8 @@
BasicGraphicsUtils.isLeftToRight(menuItem), menuItem);
if (isColumnLayout) {
MenuItemCheckIconFactory iconFactory =
- (MenuItemCheckIconFactory) UIManager.get(prefix
- + ".checkIconFactory");
+ (MenuItemCheckIconFactory) UIManager.get(prefix
+ + ".checkIconFactory");
if (iconFactory != null
&& MenuItemLayoutHelper.useCheckAndArrow(menuItem)
&& iconFactory.isCompatible(checkIcon, prefix)) {
@@ -1090,6 +1099,8 @@
BasicHTML.updateRenderer(lbl, text);
} else if (name == "iconTextGap") {
defaultTextIconGap = ((Number)e.getNewValue()).intValue();
+ } else if (name == "horizontalTextPosition") {
+ updateCheckIcon();
}
}
}
--- a/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicRootPaneUI.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicRootPaneUI.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -281,7 +281,7 @@
if (sender instanceof JRootPane) {
JButton owner = ((JRootPane)sender).getDefaultButton();
- return (owner != null && owner.getModel().isEnabled());
+ return (owner != null && owner.getModel().isEnabled() && owner.isShowing());
}
return true;
}
--- a/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicScrollBarUI.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicScrollBarUI.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1212,7 +1212,7 @@
scrollbar.repaint(r.x, r.y, r.width, r.height);
trackHighlight = NO_HIGHLIGHT;
- isDragging = false;
+ setDragging(false);
offset = 0;
scrollTimer.stop();
useCachedValue = true;
@@ -1256,7 +1256,7 @@
offset = currentMouseX - getThumbBounds().x;
break;
}
- isDragging = true;
+ setDragging(true);
return;
}
else if (getSupportsAbsolutePositioning() &&
@@ -1269,11 +1269,11 @@
offset = getThumbBounds().width / 2;
break;
}
- isDragging = true;
+ setDragging(true);
setValueFrom(e);
return;
}
- isDragging = false;
+ setDragging(false);
Dimension sbSize = scrollbar.getSize();
direction = +1;
@@ -1636,6 +1636,12 @@
}
}
+ private void setDragging(boolean dragging) {
+ this.isDragging = dragging;
+ scrollbar.repaint(getThumbBounds());
+ }
+
+
/** Property change handler */
public class PropertyChangeHandler implements PropertyChangeListener
{
--- a/jdk/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -201,9 +201,12 @@
}
private int getComponentState(JComponent c, Region region) {
- if (region == Region.SCROLL_BAR_THUMB && isThumbRollover() &&
- c.isEnabled()) {
- return MOUSE_OVER;
+ if (region == Region.SCROLL_BAR_THUMB && c.isEnabled()) {
+ if (isDragging) {
+ return PRESSED;
+ } else if (isThumbRollover()) {
+ return MOUSE_OVER;
+ }
}
return SynthLookAndFeel.getComponentState(c);
}
--- a/jdk/src/java.desktop/share/classes/javax/swing/text/AbstractDocument.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/text/AbstractDocument.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -702,6 +702,9 @@
if ((str == null) || (str.length() == 0)) {
return;
}
+ if (offs > getLength()) {
+ throw new BadLocationException("Invalid insert", getLength());
+ }
DocumentFilter filter = getDocumentFilter();
writeLock();
--- a/jdk/src/java.desktop/share/classes/javax/swing/text/html/parser/Parser.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/javax/swing/text/html/parser/Parser.java Thu Jun 16 20:56:45 2016 +0000
@@ -2084,57 +2084,69 @@
while (true) {
int i = 0;
while (!insideComment && i < SCRIPT_END_TAG.length
- && (SCRIPT_END_TAG[i] == ch
- || SCRIPT_END_TAG_UPPER_CASE[i] == ch)) {
+ && (SCRIPT_END_TAG[i] == ch
+ || SCRIPT_END_TAG_UPPER_CASE[i] == ch)) {
charsToAdd[i] = (char) ch;
ch = readCh();
i++;
}
if (i == SCRIPT_END_TAG.length) {
-
- /* '</script>' tag detected */
- /* Here, ch == the first character after </script> */
return;
- } else {
+ }
- /* To account for extra read()'s that happened */
- for (int j = 0; j < i; j++) {
- addString(charsToAdd[j]);
+ if (!insideComment && i == 1 && charsToAdd[0] == START_COMMENT.charAt(0)) {
+ // it isn't end script tag, but may be it's start comment tag?
+ while (i < START_COMMENT.length()
+ && START_COMMENT.charAt(i) == ch) {
+ charsToAdd[i] = (char) ch;
+ ch = readCh();
+ i++;
}
-
- switch (ch) {
- case -1:
- error("eof.script");
- return;
- case '\n':
- ln++;
+ if (i == START_COMMENT.length()) {
+ insideComment = true;
+ }
+ }
+ if (insideComment) {
+ while (i < END_COMMENT.length()
+ && END_COMMENT.charAt(i) == ch) {
+ charsToAdd[i] = (char) ch;
ch = readCh();
- lfCount++;
- addString('\n');
- break;
- case '\r':
- ln++;
- if ((ch = readCh()) == '\n') {
- ch = readCh();
- crlfCount++;
- } else {
- crCount++;
- }
- addString('\n');
- break;
- default:
- addString(ch);
- String str = new String(getChars(0, strpos));
- if (!insideComment && str.endsWith(START_COMMENT)) {
- insideComment = true;
- }
- if (insideComment && str.endsWith(END_COMMENT)) {
- insideComment = false;
- }
+ i++;
+ }
+ if (i == END_COMMENT.length()) {
+ insideComment = false;
+ }
+ }
+
+ /* To account for extra read()'s that happened */
+ for (int j = 0; j < i; j++) {
+ addString(charsToAdd[j]);
+ }
+ switch (ch) {
+ case -1:
+ error("eof.script");
+ return;
+ case '\n':
+ ln++;
+ ch = readCh();
+ lfCount++;
+ addString('\n');
+ break;
+ case '\r':
+ ln++;
+ if ((ch = readCh()) == '\n') {
ch = readCh();
- break;
- } // switch
- }
+ crlfCount++;
+ } else {
+ crCount++;
+ }
+ addString('\n');
+ break;
+ default:
+ addString(ch);
+ ch = readCh();
+ break;
+ } // switch
} // while
}
--- a/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_de.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_de.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,7 @@
{"appletviewer.menuitem.stop", "Stoppen"},
{"appletviewer.menuitem.save", "Speichern..."},
{"appletviewer.menuitem.start", "Starten..."},
- {"appletviewer.menuitem.clone", "Clonen..."},
+ {"appletviewer.menuitem.clone", "Klonen..."},
{"appletviewer.menuitem.tag", "Tag..."},
{"appletviewer.menuitem.info", "Informationen..."},
{"appletviewer.menuitem.edit", "Bearbeiten"},
@@ -73,7 +73,8 @@
{"appletviewer.parse.warning.embed.requiresheight", "Warnung: F\u00FCr <embed>-Tag ist ein \"height\"-Attribut erforderlich."},
{"appletviewer.parse.warning.embed.requireswidth", "Warnung: F\u00FCr <embed>-Tag ist ein \"width\"-Attribut erforderlich."},
{"appletviewer.parse.warning.appnotLongersupported", "Warnung: <app>-Tag wird nicht mehr unterst\u00FCtzt. Verwenden Sie stattdessen <applet>:"},
- {"appletviewer.usage", "Verwendung: appletviewer <Optionen> url(s)\n\nwobei die <Optionen> Folgendes umfassen:\n -debug Applet Viewer im Java-Debugger starten\n -encoding <Codierung> Zeichencodierung f\u00FCr HTML-Dateien angeben\n -J<Laufzeitkennzeichen> Argument an den Java-Interpreter \u00FCbergeben\n\nDie Option \"-J\" ist nicht standardm\u00E4\u00DFig und kann ohne vorherige Ank\u00FCndigung ge\u00E4ndert werden."},
+ {"appletviewer.deprecated", "AppletViewer ist veraltet."},
+ {"appletviewer.usage", "Verwendung: appletviewer <Optionen> url(s)\n\nwobei die <Optionen> Folgendes umfassen:\n -encoding <Codierung> Zeichencodierung f\u00FCr HTML-Dateien angeben\n -J<Laufzeitkennzeichen> Argument an den Java-Interpreter \u00FCbergeben\n\nDie Option \"-J\" ist nicht standardm\u00E4\u00DFig und kann ohne vorherige Ank\u00FCndigung ge\u00E4ndert werden."},
{"appletviewer.main.err.unsupportedopt", "Nicht unterst\u00FCtzte Option: {0}"},
{"appletviewer.main.err.unrecognizedarg", "Unbekanntes Argument: {0}"},
{"appletviewer.main.err.dupoption", "Doppelte Verwendung von Option: {0}"},
--- a/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_es.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_es.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,7 +73,8 @@
{"appletviewer.parse.warning.embed.requiresheight", "Advertencia: la etiqueta <embed> requiere el atributo height."},
{"appletviewer.parse.warning.embed.requireswidth", "Advertencia: la etiqueta <embed> requiere el atributo width."},
{"appletviewer.parse.warning.appnotLongersupported", "Advertencia: la etiqueta <app> ya no est\u00E1 soportada, utilice <applet> en su lugar:"},
- {"appletviewer.usage", "Sintaxis: appletviewer <opciones> url(s)\n\ndonde <opciones> incluye:\n -debug Iniciar el visor de applet en el depurador Java\n -encoding <codificaci\u00F3n> Especificar la codificaci\u00F3n de caracteres utilizada por los archivos HTML\n -J<indicador de tiempo de ejecuci\u00F3n> Transferir argumento al int\u00E9rprete de Java\n\nLa opci\u00F3n -J es no est\u00E1ndar y est\u00E1 sujeta a cambios sin previo aviso."},
+ {"appletviewer.deprecated", "AppletViewer est\u00E1 anticuado."},
+ {"appletviewer.usage", "Sintaxis: appletviewer <opciones> url(s)\n\ndonde <opciones> incluye:\n -encoding <codificaci\u00F3n> Especificar la codificaci\u00F3n de caracteres utilizada por los archivos HTML\n -J<indicador de tiempo de ejecuci\u00F3n> Transferir argumento al int\u00E9rprete de Java\n\nLa opci\u00F3n -J es no est\u00E1ndar y est\u00E1 sujeta a cambios sin previo aviso."},
{"appletviewer.main.err.unsupportedopt", "Opci\u00F3n no soportada: {0}"},
{"appletviewer.main.err.unrecognizedarg", "Argumento no reconocido: {0}"},
{"appletviewer.main.err.dupoption", "Uso duplicado de la opci\u00F3n: {0}"},
--- a/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_fr.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_fr.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,7 +73,8 @@
{"appletviewer.parse.warning.embed.requiresheight", "Avertissement : la balise <embed> requiert un attribut de hauteur."},
{"appletviewer.parse.warning.embed.requireswidth", "Avertissement : la balise <embed> requiert un attribut de largeur."},
{"appletviewer.parse.warning.appnotLongersupported", "Avertissement : la balise <app> n'est plus prise en charge, utilisez <applet> \u00E0 la place :"},
- {"appletviewer.usage", "Syntaxe : appletviewer <options> url(s)\n\no\u00F9 <options> inclut :\n -debug D\u00E9marrer le visualiseur d'applets dans le d\u00E9bogueur Java\n -encoding <encoding> Indiquer l'encodage de caract\u00E8res utilis\u00E9 par les fichiers HTML\n -J<runtime flag> Transmettre l'argument \u00E0 l'interpr\u00E9teur Java\n\nL'option -J n'est pas standard et elle peut \u00EAtre modifi\u00E9e sans pr\u00E9avis."},
+ {"appletviewer.deprecated", "AppletViewer est en phase d'abandon."},
+ {"appletviewer.usage", "Syntaxe : appletviewer <options> url(s)\n\no\u00F9 <options> inclut :\n -encoding <encoding> Indiquer l'encodage de caract\u00E8res utilis\u00E9 par les fichiers HTML\n -J<runtime flag> Transmettre l'argument \u00E0 l'interpr\u00E9teur Java\n\nL'option -J n'est pas standard et elle peut \u00EAtre modifi\u00E9e sans pr\u00E9avis."},
{"appletviewer.main.err.unsupportedopt", "Option non prise en charge : {0}"},
{"appletviewer.main.err.unrecognizedarg", "Argument non reconnu : {0}"},
{"appletviewer.main.err.dupoption", "Utilisation en double de l''option : {0}"},
--- a/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_it.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_it.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,7 +73,8 @@
{"appletviewer.parse.warning.embed.requiresheight", "Avvertenza: la tag <embed> richiede un attributo height."},
{"appletviewer.parse.warning.embed.requireswidth", "Avvertenza: la tag <embed> richiede un attributo width."},
{"appletviewer.parse.warning.appnotLongersupported", "Avvertenza: la tag <app> non \u00E8 pi\u00F9 supportata. Utilizzare <applet>:"},
- {"appletviewer.usage", "Uso: appletviewer <opzioni> url(s)\n\ndove <opzioni> includono:\n -debug Avvia il visualizzatore applet nel debugger Java\n -encoding <codifica> Specifica la codifica dei caratteri utilizzata dai file HTML\n -J<flag runtime> Passa l'argomento all'interpreter Java\n\nL'opzione -J non \u00E8 standard ed \u00E8 soggetta a modifica senza preavviso."},
+ {"appletviewer.deprecated", "AppletViewer non pi\u00F9 valido."},
+ {"appletviewer.usage", "Uso: appletviewer <options> url(s)\n\ndove <options> includono:\n -encoding <encoding> Specifica la codifica dei caratteri utilizzata dai file HTML\n -J<runtime flag> Passa l'argomento all'interpreter Java\n\nL'opzione -J non \u00E8 standard ed \u00E8 soggetta a modifica senza preavviso."},
{"appletviewer.main.err.unsupportedopt", "Opzione non supportata: {0}"},
{"appletviewer.main.err.unrecognizedarg", "Argomento non riconosciuto: {0}"},
{"appletviewer.main.err.dupoption", "Uso duplicato dell''opzione: {0}"},
--- a/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_ja.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_ja.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -57,9 +57,9 @@
{"appletviewer.appletinfo.applet", "-- \u30A2\u30D7\u30EC\u30C3\u30C8\u60C5\u5831\u306A\u3057 --"},
{"appletviewer.appletinfo.param", "-- \u30D1\u30E9\u30E1\u30FC\u30BF\u60C5\u5831\u306A\u3057 --"},
{"appletviewer.appletinfo.textframe", "\u30A2\u30D7\u30EC\u30C3\u30C8\u60C5\u5831"},
- {"appletviewer.appletprint.fail", "\u5370\u5237\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002"},
- {"appletviewer.appletprint.finish", "\u5370\u5237\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002"},
- {"appletviewer.appletprint.cancel", "\u5370\u5237\u304C\u4E2D\u6B62\u3055\u308C\u307E\u3057\u305F\u3002"},
+ {"appletviewer.appletprint.fail", "\u5370\u5237\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002"},
+ {"appletviewer.appletprint.finish", "\u5370\u5237\u3092\u7D42\u4E86\u3057\u307E\u3057\u305F\u3002"},
+ {"appletviewer.appletprint.cancel", "\u5370\u5237\u304C\u53D6\u308A\u6D88\u3055\u308C\u307E\u3057\u305F\u3002"},
{"appletviewer.appletencoding", "\u6587\u5B57\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0: {0}"},
{"appletviewer.parse.warning.requiresname", "\u8B66\u544A: <param name=... value=...>\u30BF\u30B0\u306Bname\u5C5E\u6027\u304C\u5FC5\u8981\u3067\u3059\u3002"},
{"appletviewer.parse.warning.paramoutside", "\u8B66\u544A: <param>\u30BF\u30B0\u304C<applet> ... </applet>\u306E\u5916\u5074\u3067\u3059\u3002"},
@@ -73,7 +73,8 @@
{"appletviewer.parse.warning.embed.requiresheight", "\u8B66\u544A: <embed>\u30BF\u30B0\u306Bheight\u5C5E\u6027\u304C\u5FC5\u8981\u3067\u3059\u3002"},
{"appletviewer.parse.warning.embed.requireswidth", "\u8B66\u544A: <embed>\u30BF\u30B0\u306Bwidth\u5C5E\u6027\u304C\u5FC5\u8981\u3067\u3059\u3002"},
{"appletviewer.parse.warning.appnotLongersupported", "\u8B66\u544A: <app>\u30BF\u30B0\u306F\u73FE\u5728\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u304B\u308F\u308A\u306B<applet>\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
- {"appletviewer.usage", "\u4F7F\u7528\u65B9\u6CD5: appletviewer <options> url(s)\n\n<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059:\n -debug Java\u30C7\u30D0\u30C3\u30AC\u3067\u30A2\u30D7\u30EC\u30C3\u30C8\u30FB\u30D3\u30E5\u30FC\u30A2\u3092\u958B\u59CB\u3059\u308B\n -encoding <encoding> HTML\u30D5\u30A1\u30A4\u30EB\u306B\u3088\u3063\u3066\u4F7F\u7528\u3055\u308C\u308B\u6587\u5B57\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3092\u6307\u5B9A\u3059\u308B\n -J<runtime flag> \u5F15\u6570\u3092Java\u30A4\u30F3\u30BF\u30D7\u30EA\u30BF\u306B\u6E21\u3059\n\n-J\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u3001\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
+ {"appletviewer.deprecated", "AppletViewer\u306F\u975E\u63A8\u5968\u3067\u3059\u3002"},
+ {"appletviewer.usage", "\u4F7F\u7528\u65B9\u6CD5: appletviewer <options> url(s)\n\n<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059:\n -encoding <encoding> HTML\u30D5\u30A1\u30A4\u30EB\u306B\u3088\u3063\u3066\u4F7F\u7528\u3055\u308C\u308B\u6587\u5B57\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3092\u6307\u5B9A\u3059\u308B\n -J<runtime flag> \u5F15\u6570\u3092Java\u30A4\u30F3\u30BF\u30D7\u30EA\u30BF\u306B\u6E21\u3059\n\n-J\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u3001\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
{"appletviewer.main.err.unsupportedopt", "\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u30AA\u30D7\u30B7\u30E7\u30F3: {0}"},
{"appletviewer.main.err.unrecognizedarg", "\u8A8D\u8B58\u3055\u308C\u306A\u3044\u5F15\u6570: {0}"},
{"appletviewer.main.err.dupoption", "\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u4F7F\u7528\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059: {0}"},
@@ -98,7 +99,7 @@
{"appletioexception.loadclass.throw.notloaded", "\u30AF\u30E9\u30B9\u304C\u30ED\u30FC\u30C9\u3055\u308C\u307E\u305B\u3093: {0}"},
{"appletclassloader.loadcode.verbose", "{1}\u3092\u53D6\u5F97\u3059\u308B\u305F\u3081\u306E{0}\u3078\u306E\u30B9\u30C8\u30EA\u30FC\u30E0\u3092\u958B\u304D\u307E\u3059"},
{"appletclassloader.filenotfound", "{0}\u306E\u691C\u7D22\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093"},
- {"appletclassloader.fileformat", "{0}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u30FB\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F"},
+ {"appletclassloader.fileformat", "{0}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u5F62\u5F0F\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F"},
{"appletclassloader.fileioexception", "{0}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B\u5165\u51FA\u529B\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F"},
{"appletclassloader.fileexception", "{1}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B{0}\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F"},
{"appletclassloader.filedeath", "{1}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B{0}\u304C\u5F37\u5236\u7D42\u4E86\u3057\u307E\u3057\u305F"},
@@ -132,7 +133,7 @@
{"appletpanel.notdisposed", "\u30ED\u30FC\u30C9: \u30A2\u30D7\u30EC\u30C3\u30C8\u304C\u7834\u68C4\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
{"appletpanel.bail", "\u4E2D\u65AD\u6E08: \u7D42\u4E86\u3057\u3066\u3044\u307E\u3059\u3002"},
{"appletpanel.filenotfound", "{0}\u306E\u691C\u7D22\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093"},
- {"appletpanel.fileformat", "{0}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u30FB\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F"},
+ {"appletpanel.fileformat", "{0}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u5F62\u5F0F\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F"},
{"appletpanel.fileioexception", "{0}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B\u5165\u51FA\u529B\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F"},
{"appletpanel.fileexception", "{1}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B{0}\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F"},
{"appletpanel.filedeath", "{1}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B{0}\u304C\u5F37\u5236\u7D42\u4E86\u3057\u307E\u3057\u305F"},
--- a/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_ko.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_ko.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,13 +73,14 @@
{"appletviewer.parse.warning.embed.requiresheight", "\uACBD\uACE0: <embed> \uD0DC\uADF8\uC5D0\uB294 height \uC18D\uC131\uC774 \uD544\uC694\uD569\uB2C8\uB2E4."},
{"appletviewer.parse.warning.embed.requireswidth", "\uACBD\uACE0: <embed> \uD0DC\uADF8\uC5D0\uB294 width \uC18D\uC131\uC774 \uD544\uC694\uD569\uB2C8\uB2E4."},
{"appletviewer.parse.warning.appnotLongersupported", "\uACBD\uACE0: <app> \uD0DC\uADF8\uB294 \uB354 \uC774\uC0C1 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB300\uC2E0 <applet>\uC744 \uC0AC\uC6A9\uD558\uC2ED\uC2DC\uC624."},
- {"appletviewer.usage", "\uC0AC\uC6A9\uBC95: appletviewer <options> url(s)\n\n\uC5EC\uAE30\uC11C <options>\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4.\n -debug Java \uB514\uBC84\uAC70\uC5D0\uC11C \uC560\uD50C\uB9BF \uBDF0\uC5B4\uB97C \uC2DC\uC791\uD569\uB2C8\uB2E4.\n -encoding <encoding> HTML \uD30C\uC77C\uC5D0 \uC0AC\uC6A9\uB420 \uBB38\uC790 \uC778\uCF54\uB529\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -J<runtime flag> Java \uC778\uD130\uD504\uB9AC\uD130\uB85C \uC778\uC218\uB97C \uC804\uB2EC\uD569\uB2C8\uB2E4.\n\n-J \uC635\uC158\uC740 \uD45C\uC900\uC774 \uC544\uB2C8\uBA70 \uC608\uACE0 \uC5C6\uC774 \uBCC0\uACBD\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4."},
+ {"appletviewer.deprecated", "AppletViewer\uB294 \uB354 \uC774\uC0C1 \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."},
+ {"appletviewer.usage", "\uC0AC\uC6A9\uBC95: appletviewer <options> url(s)\n\n\uC5EC\uAE30\uC11C <options>\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4.\n -encoding <encoding> HTML \uD30C\uC77C\uC5D0 \uC0AC\uC6A9\uB420 \uBB38\uC790 \uC778\uCF54\uB529\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -J<runtime flag> Java \uC778\uD130\uD504\uB9AC\uD130\uB85C \uC778\uC218\uB97C \uC804\uB2EC\uD569\uB2C8\uB2E4.\n\n-J \uC635\uC158\uC740 \uD45C\uC900\uC774 \uC544\uB2C8\uBA70 \uC608\uACE0 \uC5C6\uC774 \uBCC0\uACBD\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4."},
{"appletviewer.main.err.unsupportedopt", "\uC9C0\uC6D0\uB418\uC9C0 \uC54A\uB294 \uC635\uC158: {0}"},
{"appletviewer.main.err.unrecognizedarg", "\uC54C \uC218 \uC5C6\uB294 \uC778\uC218: {0}"},
{"appletviewer.main.err.dupoption", "\uC911\uBCF5\uB41C \uC635\uC158 \uC0AC\uC6A9: {0}"},
{"appletviewer.main.err.inputfile", "\uC9C0\uC815\uB41C \uC785\uB825 \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},
{"appletviewer.main.err.badurl", "\uC798\uBABB\uB41C URL: {0}({1})"},
- {"appletviewer.main.err.io", "\uC77D\uB294 \uC911 I/O \uC608\uC678 \uC0AC\uD56D \uBC1C\uC0DD: {0}"},
+ {"appletviewer.main.err.io", "\uC77D\uB294 \uC911 I/O \uC608\uC678\uC0AC\uD56D \uBC1C\uC0DD: {0}"},
{"appletviewer.main.err.readablefile", "{0}\uC774(\uAC00) \uD30C\uC77C\uC774\uBA70 \uC77D\uAE30 \uAC00\uB2A5\uD55C \uC0C1\uD0DC\uC778\uC9C0 \uD655\uC778\uD558\uC2ED\uC2DC\uC624."},
{"appletviewer.main.err.correcturl", "{0}\uC774(\uAC00) \uC62C\uBC14\uB978 URL\uC785\uB2C8\uAE4C?"},
{"appletviewer.main.prop.store", "\uC0AC\uC6A9\uC790 \uAD00\uB828 AppletViewer \uC18D\uC131"},
@@ -88,7 +89,7 @@
{"appletviewer.main.warn.nosecmgr", "\uACBD\uACE0: \uBCF4\uC548\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD558\uB294 \uC911\uC785\uB2C8\uB2E4."},
{"appletviewer.main.debug.cantfinddebug", "\uB514\uBC84\uAC70\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4!"},
{"appletviewer.main.debug.cantfindmain", "\uB514\uBC84\uAC70\uC5D0\uC11C \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4!"},
- {"appletviewer.main.debug.exceptionindebug", "\uB514\uBC84\uAC70\uC5D0 \uC608\uC678 \uC0AC\uD56D\uC774 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4!"},
+ {"appletviewer.main.debug.exceptionindebug", "\uB514\uBC84\uAC70\uC5D0 \uC608\uC678\uC0AC\uD56D\uC774 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4!"},
{"appletviewer.main.debug.cantaccess", "\uB514\uBC84\uAC70\uC5D0 \uC561\uC138\uC2A4\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4!"},
{"appletviewer.main.nosecmgr", "\uACBD\uACE0: SecurityManager\uAC00 \uC124\uCE58\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4!"},
{"appletviewer.main.warning", "\uACBD\uACE0: \uC2DC\uC791\uB41C \uC560\uD50C\uB9BF\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. <applet> \uD0DC\uADF8\uAC00 \uC785\uB825\uB418\uC5C8\uB294\uC9C0 \uD655\uC778\uD558\uC2ED\uC2DC\uC624."},
@@ -98,9 +99,9 @@
{"appletioexception.loadclass.throw.notloaded", "\uD074\uB798\uC2A4\uAC00 \uB85C\uB4DC\uB418\uC9C0 \uC54A\uC74C: {0}"},
{"appletclassloader.loadcode.verbose", "{1}\uC744(\uB97C) \uAC00\uC838\uC624\uAE30 \uC704\uD574 {0}\uC5D0 \uB300\uD55C \uC2A4\uD2B8\uB9BC\uC744 \uC5EC\uB294 \uC911"},
{"appletclassloader.filenotfound", "{0}\uC744(\uB97C) \uAC80\uC0C9\uD558\uB294 \uC911 \uD30C\uC77C\uC744 \uCC3E\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."},
- {"appletclassloader.fileformat", "\uB85C\uB4DC \uC911 \uD30C\uC77C \uD615\uC2DD \uC608\uC678 \uC0AC\uD56D \uBC1C\uC0DD: {0}"},
- {"appletclassloader.fileioexception", "\uB85C\uB4DC \uC911 I/O \uC608\uC678 \uC0AC\uD56D \uBC1C\uC0DD: {0}"},
- {"appletclassloader.fileexception", "\uB85C\uB4DC \uC911 {0} \uC608\uC678 \uC0AC\uD56D \uBC1C\uC0DD: {1}"},
+ {"appletclassloader.fileformat", "\uB85C\uB4DC \uC911 \uD30C\uC77C \uD615\uC2DD \uC608\uC678\uC0AC\uD56D \uBC1C\uC0DD: {0}"},
+ {"appletclassloader.fileioexception", "\uB85C\uB4DC \uC911 I/O \uC608\uC678\uC0AC\uD56D \uBC1C\uC0DD: {0}"},
+ {"appletclassloader.fileexception", "\uB85C\uB4DC \uC911 {0} \uC608\uC678\uC0AC\uD56D \uBC1C\uC0DD: {1}"},
{"appletclassloader.filedeath", "\uB85C\uB4DC \uC911 {0}\uC774(\uAC00) \uC885\uB8CC\uB428: {1}"},
{"appletclassloader.fileerror", "\uB85C\uB4DC \uC911 {0} \uC624\uB958 \uBC1C\uC0DD: {1}"},
{"appletclassloader.findclass.verbose.openstream", "{1}\uC744(\uB97C) \uAC00\uC838\uC624\uAE30 \uC704\uD574 {0}\uC5D0 \uB300\uD55C \uC2A4\uD2B8\uB9BC\uC744 \uC5EC\uB294 \uC911"},
@@ -108,7 +109,7 @@
{"appletclassloader.getresource.verbose.found", "\uC2DC\uC2A4\uD15C \uB9AC\uC18C\uC2A4\uB85C {0} \uB9AC\uC18C\uC2A4\uB97C \uCC3E\uC558\uC2B5\uB2C8\uB2E4."},
{"appletclassloader.getresourceasstream.verbose", "\uC2DC\uC2A4\uD15C \uB9AC\uC18C\uC2A4\uB85C {0} \uB9AC\uC18C\uC2A4\uB97C \uCC3E\uC558\uC2B5\uB2C8\uB2E4."},
{"appletpanel.runloader.err", "\uAC1D\uCCB4 \uB610\uB294 \uCF54\uB4DC \uB9E4\uAC1C\uBCC0\uC218\uC785\uB2C8\uB2E4!"},
- {"appletpanel.runloader.exception", "{0}\uC758 \uC9C1\uB82C\uD654\uB97C \uD574\uC81C\uD558\uB294 \uC911 \uC608\uC678 \uC0AC\uD56D\uC774 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4."},
+ {"appletpanel.runloader.exception", "{0}\uC758 \uC9C1\uB82C\uD654\uB97C \uD574\uC81C\uD558\uB294 \uC911 \uC608\uC678\uC0AC\uD56D\uC774 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4."},
{"appletpanel.destroyed", "\uC560\uD50C\uB9BF\uC774 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
{"appletpanel.loaded", "\uC560\uD50C\uB9BF\uC774 \uB85C\uB4DC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
{"appletpanel.started", "\uC560\uD50C\uB9BF\uC774 \uC2DC\uC791\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
@@ -120,8 +121,8 @@
{"appletpanel.nocreate", "\uB85C\uB4DC: {0}\uC744(\uB97C) \uC778\uC2A4\uD134\uC2A4\uD654\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
{"appletpanel.noconstruct", "\uB85C\uB4DC: {0}\uC740(\uB294) \uACF5\uC6A9\uC774 \uC544\uB2C8\uAC70\uB098 \uACF5\uC6A9 \uC0DD\uC131\uC790\uB97C \uD3EC\uD568\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."},
{"appletpanel.death", "\uC885\uB8CC\uB428"},
- {"appletpanel.exception", "\uC608\uC678 \uC0AC\uD56D: {0}."},
- {"appletpanel.exception2", "\uC608\uC678 \uC0AC\uD56D: {0}: {1}."},
+ {"appletpanel.exception", "\uC608\uC678\uC0AC\uD56D: {0}."},
+ {"appletpanel.exception2", "\uC608\uC678\uC0AC\uD56D: {0}: {1}."},
{"appletpanel.error", "\uC624\uB958: {0}."},
{"appletpanel.error2", "\uC624\uB958: {0}: {1}."},
{"appletpanel.notloaded", "\uCD08\uAE30\uD654: \uC560\uD50C\uB9BF\uC774 \uB85C\uB4DC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."},
@@ -132,9 +133,9 @@
{"appletpanel.notdisposed", "\uB85C\uB4DC: \uC560\uD50C\uB9BF\uC774 \uBC30\uCE58\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."},
{"appletpanel.bail", "\uC911\uB2E8\uB428: \uC911\uB2E8\uD558\uB294 \uC911\uC785\uB2C8\uB2E4."},
{"appletpanel.filenotfound", "{0}\uC744(\uB97C) \uAC80\uC0C9\uD558\uB294 \uC911 \uD30C\uC77C\uC744 \uCC3E\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."},
- {"appletpanel.fileformat", "\uB85C\uB4DC \uC911 \uD30C\uC77C \uD615\uC2DD \uC608\uC678 \uC0AC\uD56D \uBC1C\uC0DD: {0}"},
- {"appletpanel.fileioexception", "\uB85C\uB4DC \uC911 I/O \uC608\uC678 \uC0AC\uD56D \uBC1C\uC0DD: {0}"},
- {"appletpanel.fileexception", "\uB85C\uB4DC \uC911 {0} \uC608\uC678 \uC0AC\uD56D \uBC1C\uC0DD: {1}"},
+ {"appletpanel.fileformat", "\uB85C\uB4DC \uC911 \uD30C\uC77C \uD615\uC2DD \uC608\uC678\uC0AC\uD56D \uBC1C\uC0DD: {0}"},
+ {"appletpanel.fileioexception", "\uB85C\uB4DC \uC911 I/O \uC608\uC678\uC0AC\uD56D \uBC1C\uC0DD: {0}"},
+ {"appletpanel.fileexception", "\uB85C\uB4DC \uC911 {0} \uC608\uC678\uC0AC\uD56D \uBC1C\uC0DD: {1}"},
{"appletpanel.filedeath", "\uB85C\uB4DC \uC911 {0}\uC774(\uAC00) \uC885\uB8CC\uB428: {1}"},
{"appletpanel.fileerror", "\uB85C\uB4DC \uC911 {0} \uC624\uB958 \uBC1C\uC0DD: {1}"},
{"appletpanel.badattribute.exception", "HTML \uAD6C\uBB38 \uBD84\uC11D \uC911: width/height \uC18D\uC131\uC5D0 \uB300\uD55C \uAC12\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."},
@@ -162,36 +163,36 @@
{"appletprops.button.ok", "\uD655\uC778"},
/* end 4066432 */
{"appletprops.prop.store", "\uC0AC\uC6A9\uC790 \uAD00\uB828 AppletViewer \uC18D\uC131"},
- {"appletsecurityexception.checkcreateclassloader", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uD074\uB798\uC2A4 \uB85C\uB354"},
- {"appletsecurityexception.checkaccess.thread", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uC2A4\uB808\uB4DC"},
- {"appletsecurityexception.checkaccess.threadgroup", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uC2A4\uB808\uB4DC \uADF8\uB8F9: {0}"},
- {"appletsecurityexception.checkexit", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uC885\uB8CC: {0}"},
- {"appletsecurityexception.checkexec", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uC2E4\uD589: {0}"},
- {"appletsecurityexception.checklink", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uB9C1\uD06C: {0}"},
- {"appletsecurityexception.checkpropsaccess", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uC18D\uC131"},
- {"appletsecurityexception.checkpropsaccess.key", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uC18D\uC131 \uC561\uC138\uC2A4 {0}"},
- {"appletsecurityexception.checkread.exception1", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: {0}, {1}"},
- {"appletsecurityexception.checkread.exception2", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: file.read: {0}"},
- {"appletsecurityexception.checkread", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: file.read: {0} == {1}"},
- {"appletsecurityexception.checkwrite.exception", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: {0}, {1}"},
- {"appletsecurityexception.checkwrite", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: file.write: {0} == {1}"},
- {"appletsecurityexception.checkread.fd", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: fd.read"},
- {"appletsecurityexception.checkwrite.fd", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: fd.write"},
- {"appletsecurityexception.checklisten", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: socket.listen: {0}"},
- {"appletsecurityexception.checkaccept", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: socket.accept: {0}:{1}"},
- {"appletsecurityexception.checkconnect.networknone", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: socket.connect: {0}->{1}"},
- {"appletsecurityexception.checkconnect.networkhost1", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: {1}\uC5D0\uC11C {0}\uC5D0 \uC811\uC18D\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"appletsecurityexception.checkconnect.networkhost2", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: {0} \uD638\uC2A4\uD2B8 \uB610\uB294 {1}\uC5D0 \uB300\uD55C IP\uB97C \uBD84\uC11D\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. "},
- {"appletsecurityexception.checkconnect.networkhost3", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: {0} \uD638\uC2A4\uD2B8\uC5D0 \uB300\uD55C IP\uB97C \uBD84\uC11D\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. trustProxy \uC18D\uC131\uC744 \uCC38\uC870\uD558\uC2ED\uC2DC\uC624."},
- {"appletsecurityexception.checkconnect", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uC811\uC18D: {0}->{1}"},
- {"appletsecurityexception.checkpackageaccess", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uD328\uD0A4\uC9C0\uC5D0 \uC561\uC138\uC2A4\uD560 \uC218 \uC5C6\uC74C: {0}"},
- {"appletsecurityexception.checkpackagedefinition", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uD328\uD0A4\uC9C0\uB97C \uC815\uC758\uD560 \uC218 \uC5C6\uC74C: {0}"},
- {"appletsecurityexception.cannotsetfactory", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uD329\uD1A0\uB9AC\uB97C \uC124\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"appletsecurityexception.checkmemberaccess", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uBA64\uBC84 \uC561\uC138\uC2A4\uB97C \uD655\uC778\uD558\uC2ED\uC2DC\uC624."},
- {"appletsecurityexception.checkgetprintjob", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: getPrintJob"},
- {"appletsecurityexception.checksystemclipboardaccess", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: getSystemClipboard"},
- {"appletsecurityexception.checkawteventqueueaccess", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: getEventQueue"},
- {"appletsecurityexception.checksecurityaccess", "\uBCF4\uC548 \uC608\uC678 \uC0AC\uD56D: \uBCF4\uC548 \uC791\uC5C5: {0}"},
+ {"appletsecurityexception.checkcreateclassloader", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uD074\uB798\uC2A4 \uB85C\uB354"},
+ {"appletsecurityexception.checkaccess.thread", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uC2A4\uB808\uB4DC"},
+ {"appletsecurityexception.checkaccess.threadgroup", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uC2A4\uB808\uB4DC \uADF8\uB8F9: {0}"},
+ {"appletsecurityexception.checkexit", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uC885\uB8CC: {0}"},
+ {"appletsecurityexception.checkexec", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uC2E4\uD589: {0}"},
+ {"appletsecurityexception.checklink", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uB9C1\uD06C: {0}"},
+ {"appletsecurityexception.checkpropsaccess", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uC18D\uC131"},
+ {"appletsecurityexception.checkpropsaccess.key", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uC18D\uC131 \uC561\uC138\uC2A4 {0}"},
+ {"appletsecurityexception.checkread.exception1", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: {0}, {1}"},
+ {"appletsecurityexception.checkread.exception2", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: file.read: {0}"},
+ {"appletsecurityexception.checkread", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: file.read: {0} == {1}"},
+ {"appletsecurityexception.checkwrite.exception", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: {0}, {1}"},
+ {"appletsecurityexception.checkwrite", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: file.write: {0} == {1}"},
+ {"appletsecurityexception.checkread.fd", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: fd.read"},
+ {"appletsecurityexception.checkwrite.fd", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: fd.write"},
+ {"appletsecurityexception.checklisten", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: socket.listen: {0}"},
+ {"appletsecurityexception.checkaccept", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: socket.accept: {0}:{1}"},
+ {"appletsecurityexception.checkconnect.networknone", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: socket.connect: {0}->{1}"},
+ {"appletsecurityexception.checkconnect.networkhost1", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: {1}\uC5D0\uC11C {0}\uC5D0 \uC811\uC18D\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
+ {"appletsecurityexception.checkconnect.networkhost2", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: {0} \uD638\uC2A4\uD2B8 \uB610\uB294 {1}\uC5D0 \uB300\uD55C IP\uB97C \uBD84\uC11D\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. "},
+ {"appletsecurityexception.checkconnect.networkhost3", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: {0} \uD638\uC2A4\uD2B8\uC5D0 \uB300\uD55C IP\uB97C \uBD84\uC11D\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. trustProxy \uC18D\uC131\uC744 \uCC38\uC870\uD558\uC2ED\uC2DC\uC624."},
+ {"appletsecurityexception.checkconnect", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uC811\uC18D: {0}->{1}"},
+ {"appletsecurityexception.checkpackageaccess", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uD328\uD0A4\uC9C0\uC5D0 \uC561\uC138\uC2A4\uD560 \uC218 \uC5C6\uC74C: {0}"},
+ {"appletsecurityexception.checkpackagedefinition", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uD328\uD0A4\uC9C0\uB97C \uC815\uC758\uD560 \uC218 \uC5C6\uC74C: {0}"},
+ {"appletsecurityexception.cannotsetfactory", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uD329\uD1A0\uB9AC\uB97C \uC124\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
+ {"appletsecurityexception.checkmemberaccess", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uBA64\uBC84 \uC561\uC138\uC2A4\uB97C \uD655\uC778\uD558\uC2ED\uC2DC\uC624."},
+ {"appletsecurityexception.checkgetprintjob", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: getPrintJob"},
+ {"appletsecurityexception.checksystemclipboardaccess", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: getSystemClipboard"},
+ {"appletsecurityexception.checkawteventqueueaccess", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: getEventQueue"},
+ {"appletsecurityexception.checksecurityaccess", "\uBCF4\uC548 \uC608\uC678\uC0AC\uD56D: \uBCF4\uC548 \uC791\uC5C5: {0}"},
{"appletsecurityexception.getsecuritycontext.unknown", "\uC54C \uC218 \uC5C6\uB294 \uD074\uB798\uC2A4 \uB85C\uB354 \uC720\uD615\uC785\uB2C8\uB2E4. getContext\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
{"appletsecurityexception.checkread.unknown", "\uC54C \uC218 \uC5C6\uB294 \uD074\uB798\uC2A4 \uB85C\uB354 \uC720\uD615\uC785\uB2C8\uB2E4. {0} \uC77D\uAE30\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
{"appletsecurityexception.checkconnect.unknown", "\uC54C \uC218 \uC5C6\uB294 \uD074\uB798\uC2A4 \uB85C\uB354 \uC720\uD615\uC785\uB2C8\uB2E4. \uC811\uC18D\uC744 \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
--- a/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_pt_BR.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_pt_BR.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,7 +73,8 @@
{"appletviewer.parse.warning.embed.requiresheight", "Advert\u00EAncia: a tag <embed> requer um atributo de altura."},
{"appletviewer.parse.warning.embed.requireswidth", "Advert\u00EAncia: a tag <embed> requer um atributo de largura."},
{"appletviewer.parse.warning.appnotLongersupported", "Advert\u00EAncia: a tag <app> n\u00E3o \u00E9 mais suportada; use <applet>:"},
- {"appletviewer.usage", "Uso: appletviewer <op\u00E7\u00F5es> url(s)\n\nem que as <op\u00E7\u00F5es> incluem:\n -debug Inicia o visualizador do applet no depurador Java\n -encoding <codifica\u00E7\u00E3o> Especifica a codifica\u00E7\u00E3o de caractere usada pelos arquivos HTML\n -J<flag de runtime> Informa o argumento ao intepretador java\n\nA op\u00E7\u00E3o -J n\u00E3o \u00E9 padr\u00E3o e est\u00E1 sujeita \u00E0 altera\u00E7\u00E3o sem notifica\u00E7\u00E3o."},
+ {"appletviewer.deprecated", "O AppletViewer est\u00E1 obsoleto."},
+ {"appletviewer.usage", "Uso: appletviewer <op\u00E7\u00F5es> url(s)\n\nem que as <op\u00E7\u00F5es> incluem:\n -encoding <codifica\u00E7\u00E3o> Especifica a codifica\u00E7\u00E3o de caractere usada pelos arquivos HTML\n -J<flag de runtime> Informa o argumento ao intepretador java\n\nA op\u00E7\u00E3o -J n\u00E3o \u00E9 padr\u00E3o e est\u00E1 sujeita \u00E0 altera\u00E7\u00E3o sem notifica\u00E7\u00E3o."},
{"appletviewer.main.err.unsupportedopt", "Op\u00E7\u00E3o n\u00E3o suportada: {0}"},
{"appletviewer.main.err.unrecognizedarg", "Argumento n\u00E3o reconhecido: {0}"},
{"appletviewer.main.err.dupoption", "Uso duplicado da op\u00E7\u00E3o: {0}"},
@@ -93,7 +94,7 @@
{"appletviewer.main.nosecmgr", "Advert\u00EAncia: SecurityManager n\u00E3o instalado!"},
{"appletviewer.main.warning", "Advert\u00EAncia: Nenhum applet iniciado. Certifique-se de que a entrada contenha uma tag <applet>."},
{"appletviewer.main.warn.prop.overwrite", "Advert\u00EAncia: Substituindo a propriedade do sistema temporariamente a pedido do usu\u00E1rio: chave: {0} valor antigo: {1} valor novo: {2}"},
- {"appletviewer.main.warn.cantreadprops", "Advert\u00EAncia: N\u00E3o \u00E9 poss\u00EDvel ler o arquivo de propriedades AppletViewer: {0} Usando defaults."},
+ {"appletviewer.main.warn.cantreadprops", "Advert\u00EAncia: N\u00E3o \u00E9 poss\u00EDvel ler o arquivo de propriedades AppletViewer: {0} Usando padr\u00F5es."},
{"appletioexception.loadclass.throw.interrupted", "carregamento de classe interrompido: {0}"},
{"appletioexception.loadclass.throw.notloaded", "classe n\u00E3o carregada: {0}"},
{"appletclassloader.loadcode.verbose", "Fluxo de abertura para: {0} para obter {1}"},
--- a/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_sv.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_sv.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,7 +73,8 @@
{"appletviewer.parse.warning.embed.requiresheight", "Varning: <embed>-taggen kr\u00E4ver ett h\u00F6jdattribut."},
{"appletviewer.parse.warning.embed.requireswidth", "Varning: <embed>-taggen kr\u00E4ver ett breddattribut."},
{"appletviewer.parse.warning.appnotLongersupported", "Varning: <app>-taggen st\u00F6ds inte l\u00E4ngre, anv\u00E4nd <applet> ist\u00E4llet:"},
- {"appletviewer.usage", "Syntax: appletviewer-<alternativ> url:er \n\nd\u00E4r <alternativ> inkluderar:\n -debug Startar appletvisning i Java-fels\u00F6kningen\n -encoding <kodning> Anger teckenkodning som anv\u00E4nds i HTML-filer\n -J<k\u00F6rningsflagga> \u00D6verf\u00F6r argument till Java-tolkningen\n\nAlternativet -J \u00E4r inte standard och kan \u00E4ndras utan f\u00F6reg\u00E5ende meddelande."},
+ {"appletviewer.deprecated", "AppletViewer \u00E4r inaktuellt."},
+ {"appletviewer.usage", "Syntax: appletviewer <options> url(s)\n\nd\u00E4r <options> \u00E4r:\n -encoding <encoding> Ange teckenkodning som anv\u00E4nds av HTML-filer\n -J<runtime flag> \u00D6verf\u00F6r argument till java-tolken\n\nAlternativet -J \u00E4r inte standard och kan \u00E4ndras utan f\u00F6reg\u00E5ende meddelande."},
{"appletviewer.main.err.unsupportedopt", "Alternativ som inte st\u00F6ds: {0}"},
{"appletviewer.main.err.unrecognizedarg", "Ok\u00E4nt argument: {0}"},
{"appletviewer.main.err.dupoption", "Duplicerat alternativ: {0}"},
@@ -85,17 +86,17 @@
{"appletviewer.main.prop.store", "Anv\u00E4ndarspecifika egenskaper f\u00F6r AppletViewer"},
{"appletviewer.main.err.prop.cantread", "Kan inte l\u00E4sa egenskapsfilen: {0}"},
{"appletviewer.main.err.prop.cantsave", "Kan inte spara egenskapsfilen: {0}"},
- {"appletviewer.main.warn.nosecmgr", "Varning: s\u00E4kerheten inaktiveras."},
+ {"appletviewer.main.warn.nosecmgr", "Varning! S\u00E4kerheten avaktiveras."},
{"appletviewer.main.debug.cantfinddebug", "Hittar inte fels\u00F6kningsprogrammet!"},
{"appletviewer.main.debug.cantfindmain", "Hittar inte huvudmetoden i fels\u00F6kningsprogrammet!"},
{"appletviewer.main.debug.exceptionindebug", "Undantag i fels\u00F6kningsprogrammet!"},
{"appletviewer.main.debug.cantaccess", "Det finns ingen \u00E5tkomst till fels\u00F6kningsprogrammet!"},
{"appletviewer.main.nosecmgr", "Varning: SecurityManager har inte installerats!"},
{"appletviewer.main.warning", "Varning: Inga appletar har startats. Kontrollera att indata inneh\u00E5ller <applet>-tagg."},
- {"appletviewer.main.warn.prop.overwrite", "Varning: Skriver tillf\u00E4lligt \u00F6ver systemegenskap enligt beg\u00E4ran fr\u00E5n anv\u00E4ndare: nyckel: {0} gammalt v\u00E4rde: {1} nytt v\u00E4rde: {2}"},
+ {"appletviewer.main.warn.prop.overwrite", "Varning: Skriver tillf\u00E4lligt \u00F6ver systemegenskap enligt beg\u00E4ran fr\u00E5n anv\u00E4ndare: nyckel: {0} tidigare v\u00E4rde: {1} nytt v\u00E4rde: {2}"},
{"appletviewer.main.warn.cantreadprops", "Varning: Kan inte l\u00E4sa egenskapsfil f\u00F6r AppletViewer: {0} Standardv\u00E4rden anv\u00E4nds."},
- {"appletioexception.loadclass.throw.interrupted", "klassinl\u00E4sning avbr\u00F6ts: {0}"},
- {"appletioexception.loadclass.throw.notloaded", "klass inte inl\u00E4st: {0}"},
+ {"appletioexception.loadclass.throw.interrupted", "klassladdning avbr\u00F6ts: {0}"},
+ {"appletioexception.loadclass.throw.notloaded", "klass inte laddad: {0}"},
{"appletclassloader.loadcode.verbose", "\u00D6ppnar str\u00F6m till: {0} f\u00F6r h\u00E4mtning av {1}"},
{"appletclassloader.filenotfound", "Hittade inte fil vid s\u00F6kning efter: {0}"},
{"appletclassloader.fileformat", "Undantag av filformat vid laddning av: {0}"},
@@ -124,7 +125,7 @@
{"appletpanel.exception2", "undantag: {0}: {1}."},
{"appletpanel.error", "fel: {0}."},
{"appletpanel.error2", "fel {0}: {1}."},
- {"appletpanel.notloaded", "Initiera: applet \u00E4r inte inl\u00E4st."},
+ {"appletpanel.notloaded", "Initiera: applet \u00E4r inte laddad."},
{"appletpanel.notinited", "Starta: applet \u00E4r inte initierad."},
{"appletpanel.notstarted", "Stoppa: applet har inte startats."},
{"appletpanel.notstopped", "Radera: applet har inte stoppats."},
--- a/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_zh_CN.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_zh_CN.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,7 +73,8 @@
{"appletviewer.parse.warning.embed.requiresheight", "\u8B66\u544A: <embed> \u6807\u8BB0\u9700\u8981\u9AD8\u5EA6\u5C5E\u6027\u3002"},
{"appletviewer.parse.warning.embed.requireswidth", "\u8B66\u544A: <embed> \u6807\u8BB0\u9700\u8981\u5BBD\u5EA6\u5C5E\u6027\u3002"},
{"appletviewer.parse.warning.appnotLongersupported", "\u8B66\u544A: \u4E0D\u518D\u652F\u6301 <app> \u6807\u8BB0, \u8BF7\u6539\u7528 <applet>:"},
- {"appletviewer.usage", "\u7528\u6CD5: appletviewer <options> url\n\n\u5176\u4E2D, <options> \u5305\u62EC:\n -debug \u5728 Java \u8C03\u8BD5\u5668\u4E2D\u542F\u52A8\u5C0F\u5E94\u7528\u7A0B\u5E8F\u67E5\u770B\u5668\n -encoding <encoding> \u6307\u5B9A HTML \u6587\u4EF6\u4F7F\u7528\u7684\u5B57\u7B26\u7F16\u7801\n -J<runtime flag> \u5C06\u53C2\u6570\u4F20\u9012\u5230 java \u89E3\u91CA\u5668\n\n-J \u9009\u9879\u662F\u975E\u6807\u51C6\u9009\u9879, \u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002"},
+ {"appletviewer.deprecated", "AppletViewer \u5DF2\u8FC7\u65F6\u3002"},
+ {"appletviewer.usage", "\u7528\u6CD5: appletviewer <options> url(s)\n\n\u5176\u4E2D <options> \u5305\u62EC:\n -encoding <encoding> \u6307\u5B9A HTML \u6587\u4EF6\u4F7F\u7528\u7684\u5B57\u7B26\u7F16\u7801\n -J<runtime flag> \u5C06\u53C2\u6570\u4F20\u9012\u5230 java \u89E3\u91CA\u5668\n\n-J \u9009\u9879\u662F\u975E\u6807\u51C6\u9009\u9879, \u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002"},
{"appletviewer.main.err.unsupportedopt", "\u4E0D\u652F\u6301\u7684\u9009\u9879: {0}"},
{"appletviewer.main.err.unrecognizedarg", "\u65E0\u6CD5\u8BC6\u522B\u7684\u53C2\u6570: {0}"},
{"appletviewer.main.err.dupoption", "\u91CD\u590D\u4F7F\u7528\u9009\u9879: {0}"},
--- a/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_zh_TW.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/applet/resources/MsgAppletViewer_zh_TW.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,7 +73,8 @@
{"appletviewer.parse.warning.embed.requiresheight", "\u8B66\u544A: <embed> \u6A19\u8A18\u9700\u8981\u9AD8\u5EA6\u5C6C\u6027\u3002"},
{"appletviewer.parse.warning.embed.requireswidth", "\u8B66\u544A: <embed> \u6A19\u8A18\u9700\u8981\u5BEC\u5EA6\u5C6C\u6027\u3002"},
{"appletviewer.parse.warning.appnotLongersupported", "\u8B66\u544A: \u4E0D\u518D\u652F\u63F4 <app> \u6A19\u8A18\uFF0C\u8ACB\u6539\u7528 <applet>:"},
- {"appletviewer.usage", "\u7528\u6CD5: appletviewer <options> url(s)\n\n\u5176\u4E2D\u7684 <options> \u5305\u62EC:\n -debug \u5728 Java \u9664\u932F\u7A0B\u5F0F\u4E2D\u555F\u52D5 Applet \u6AA2\u8996\u5668\n -encoding <encoding> \u6307\u5B9A HTML \u6A94\u6848\u4F7F\u7528\u7684\u5B57\u5143\u7DE8\u78BC\n -J<runtime flag> \u5C07\u5F15\u6578\u50B3\u9001\u81F3 java \u89E3\u8B6F\u5668\n\n -J \u9078\u9805\u4E0D\u662F\u6A19\u6E96\u9078\u9805\uFF0C\u82E5\u6709\u8B8A\u66F4\u4E0D\u53E6\u884C\u901A\u77E5\u3002"},
+ {"appletviewer.deprecated", "AppletViewer \u5DF2\u4E0D\u518D\u4F7F\u7528\u3002"},
+ {"appletviewer.usage", "\u7528\u6CD5: appletviewer <options> url(s)\n\n\u5176\u4E2D\u7684 <options> \u5305\u62EC:\n -encoding <encoding> \u6307\u5B9A HTML \u6A94\u6848\u4F7F\u7528\u7684\u5B57\u5143\u7DE8\u78BC\n -J<runtime flag> \u5C07\u5F15\u6578\u50B3\u9001\u81F3 Java \u89E3\u8B6F\u5668\n\n-J \u9078\u9805\u4E0D\u662F\u6A19\u6E96\u9078\u9805\uFF0C\u82E5\u6709\u8B8A\u66F4\u4E0D\u53E6\u884C\u901A\u77E5\u3002"},
{"appletviewer.main.err.unsupportedopt", "\u4E0D\u652F\u63F4\u7684\u9078\u9805: {0}"},
{"appletviewer.main.err.unrecognizedarg", "\u7121\u6CD5\u8FA8\u8B58\u7684\u5F15\u6578: {0}"},
{"appletviewer.main.err.dupoption", "\u91CD\u8907\u4F7F\u7528\u9078\u9805: {0}"},
--- a/jdk/src/java.desktop/share/classes/sun/awt/image/OffScreenImageSource.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/awt/image/OffScreenImageSource.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -186,8 +186,21 @@
theConsumer.setProperties(properties);
sendPixels();
theConsumer.imageComplete(ImageConsumer.SINGLEFRAMEDONE);
- theConsumer.imageComplete(ImageConsumer.STATICIMAGEDONE);
+
+ try {
+ theConsumer.imageComplete(ImageConsumer.STATICIMAGEDONE);
+ } catch (RuntimeException e) {
+ // We did not previously call this method here and
+ // some image consumer filters were not prepared for it to be
+ // called at this time. We allow them to have runtime issues
+ // for this one call only without triggering the IMAGEERROR
+ // condition below.
+ e.printStackTrace();
+ }
+
} catch (NullPointerException e) {
+ e.printStackTrace();
+
if (theConsumer != null) {
theConsumer.imageComplete(ImageConsumer.IMAGEERROR);
}
--- a/jdk/src/java.desktop/share/classes/sun/awt/resources/awt_de.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/awt/resources/awt_de.properties Thu Jun 16 20:56:45 2016 +0000
@@ -44,7 +44,7 @@
AWT.subtract=NumPad -
AWT.decimal=NumPad .
AWT.divide=NumPad /
-AWT.delete=Entf
+AWT.delete=L\u00F6schen
AWT.numLock=Num
AWT.scrollLock=Rollen
AWT.f1=F1
--- a/jdk/src/java.desktop/share/classes/sun/awt/resources/awt_pt_BR.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/awt/resources/awt_pt_BR.properties Thu Jun 16 20:56:45 2016 +0000
@@ -44,7 +44,7 @@
AWT.subtract=Teclado Num\u00E9rico -
AWT.decimal=Teclado Num\u00E9rico .
AWT.divide=Teclado Num\u00E9rico /
-AWT.delete=Deletar
+AWT.delete=Excluir
AWT.numLock=Num Lock
AWT.scrollLock=Scroll Lock
AWT.f1=F1
@@ -151,7 +151,7 @@
AWT.undefined=Indefinido
# Predefined cursor names
-AWT.DefaultCursor=Cursor Default
+AWT.DefaultCursor=Cursor Padr\u00E3o
AWT.CrosshairCursor=Cursor em Forma de Cruz
AWT.TextCursor=Cursor de Texto
AWT.WaitCursor=Cursor em Forma de Ampulheta
@@ -165,9 +165,9 @@
AWT.EResizeCursor=Cursor de Seta Que Aponta \u00E0 Direita
AWT.HandCursor=Cursor em Forma de M\u00E3o
AWT.MoveCursor=Cursor de Movimento
-AWT.DefaultDragCursor=Cursor Default de Arrastar
-AWT.DefaultNoDropCursor=Cursor Default sem Arrastar
-AWT.DefaultDropCursor=Cursor Default de Soltar
+AWT.DefaultDragCursor=Cursor Padr\u00E3o de Arrastar
+AWT.DefaultNoDropCursor=Cursor Padr\u00E3o sem Arrastar
+AWT.DefaultDropCursor=Cursor Padr\u00E3o de Soltar
# Input method related strings
AWT.CompositionWindowTitle=Janela de Entrada
--- a/jdk/src/java.desktop/share/classes/sun/awt/resources/awt_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/awt/resources/awt_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -19,14 +19,14 @@
AWT.pause=Paus
AWT.capsLock=Caps Lock
AWT.escape=Esc
-AWT.space=Mellanslag
-AWT.pgup=Page Up
-AWT.pgdn=Page Down
+AWT.space=Blanksteg
+AWT.pgup=Sida upp
+AWT.pgdn=Sida ned
AWT.end=End
AWT.home=Hem
-AWT.left=V\u00E4nsterpil
+AWT.left=V\u00E4nster
AWT.up=Upp
-AWT.right=H\u00F6gerpil
+AWT.right=H\u00F6ger
AWT.down=Nedpil
AWT.begin=Begin
AWT.comma=Kommatecken
@@ -114,7 +114,7 @@
AWT.minus=Minus
AWT.rightParenthesis=H\u00F6gerparentes
AWT.underscore=Understreck
-AWT.final=Slutgiltig
+AWT.final=Slutlig
AWT.convert=Konvertera
AWT.noconvert=Ingen konvertering
AWT.accept=Acceptera
--- a/jdk/src/java.desktop/share/classes/sun/font/FontFamily.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/font/FontFamily.java Thu Jun 16 20:56:45 2016 +0000
@@ -335,10 +335,10 @@
case Font.BOLD|Font.ITALIC:
if (bolditalic != null) {
return bolditalic;
+ } else if (bold != null && bold.canDoStyle(style)) {
+ return bold;
} else if (italic != null && italic.canDoStyle(style)) {
return italic;
- } else if (bold != null && bold.canDoStyle(style)) {
- return italic;
} else if (plain != null && plain.canDoStyle(style)) {
return plain;
} else {
--- a/jdk/src/java.desktop/share/classes/sun/java2d/HeadlessGraphicsEnvironment.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/HeadlessGraphicsEnvironment.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,27 +31,8 @@
import java.awt.HeadlessException;
import java.awt.image.BufferedImage;
import java.awt.Font;
-import java.text.AttributedCharacterIterator;
-import java.awt.print.PrinterJob;
-import java.util.Map;
-import java.util.Hashtable;
import java.util.Locale;
-import java.util.Vector;
-import java.util.StringTokenizer;
-import java.util.ResourceBundle;
-import java.util.MissingResourceException;
-import java.io.IOException;
-import java.io.FilenameFilter;
-import java.io.File;
-import java.util.NoSuchElementException;
import sun.awt.FontConfiguration;
-import java.util.TreeMap;
-import java.util.Set;
-import java.awt.font.TextAttribute;
-import java.io.InputStream;
-import java.io.FileInputStream;
-import java.io.BufferedInputStream;
-import java.util.Properties;
import java.awt.Point;
import java.awt.Rectangle;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/SunGraphics2D.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/SunGraphics2D.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1915,8 +1915,7 @@
sr.setOutputArea(devClip);
sr.appendPath(cpi);
sr.getPathBox(box);
- Region r = Region.getInstance(box);
- r.appendSpans(sr);
+ Region r = Region.getInstance(box, sr);
clipRegion = r;
clipState =
r.isRectangular() ? CLIP_RECTANGULAR : CLIP_SHAPE;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/cmm/lcms/LCMSImageLayout.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/cmm/lcms/LCMSImageLayout.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@
import java.awt.image.BufferedImage;
import java.awt.image.ComponentColorModel;
import java.awt.image.ComponentSampleModel;
-import java.awt.image.DataBuffer;
import java.awt.image.ColorModel;
import java.awt.image.Raster;
import java.awt.image.SampleModel;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/cmm/lcms/LCMSTransform.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/cmm/lcms/LCMSTransform.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,19 +36,14 @@
package sun.java2d.cmm.lcms;
import java.awt.color.ICC_Profile;
-import java.awt.color.ProfileDataException;
import java.awt.color.CMMException;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.awt.image.WritableRaster;
import java.awt.image.ColorModel;
-import java.awt.image.DirectColorModel;
-import java.awt.image.ComponentColorModel;
import java.awt.image.SampleModel;
import java.awt.image.DataBuffer;
-import java.awt.image.SinglePixelPackedSampleModel;
-import java.awt.image.ComponentSampleModel;
import sun.java2d.cmm.*;
import sun.java2d.cmm.lcms.*;
import static sun.java2d.cmm.lcms.LCMSImageLayout.ImageLayoutException;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/CompositeType.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/CompositeType.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
package sun.java2d.loops;
-import java.awt.image.BufferedImage;
import java.awt.AlphaComposite;
import java.util.HashMap;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/DrawGlyphListLCD.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/DrawGlyphListLCD.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
package sun.java2d.loops;
import sun.java2d.loops.GraphicsPrimitive;
-import sun.java2d.pipe.Region;
import sun.java2d.SunGraphics2D;
import sun.java2d.SurfaceData;
import sun.font.GlyphList;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/DrawLine.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/DrawLine.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,9 +30,6 @@
package sun.java2d.loops;
import sun.java2d.loops.GraphicsPrimitive;
-import java.awt.Color;
-import java.awt.image.ColorModel;
-import java.awt.image.Raster;
import sun.java2d.SunGraphics2D;
import sun.java2d.SurfaceData;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/DrawRect.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/DrawRect.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,9 +30,6 @@
package sun.java2d.loops;
import sun.java2d.loops.GraphicsPrimitive;
-import java.awt.Color;
-import java.awt.image.ColorModel;
-import java.awt.image.Raster;
import sun.java2d.SunGraphics2D;
import sun.java2d.SurfaceData;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/FillRect.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/FillRect.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,9 +30,6 @@
package sun.java2d.loops;
import sun.java2d.loops.GraphicsPrimitive;
-import java.awt.Color;
-import java.awt.image.ColorModel;
-import java.awt.image.Raster;
import sun.java2d.SunGraphics2D;
import sun.java2d.SurfaceData;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/FillSpans.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/FillSpans.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,9 +32,6 @@
import sun.java2d.loops.GraphicsPrimitive;
import sun.java2d.pipe.SpanIterator;
-import java.awt.Color;
-import java.awt.image.ColorModel;
-import java.awt.image.Raster;
import sun.java2d.SunGraphics2D;
import sun.java2d.SurfaceData;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/FontInfo.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/FontInfo.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,11 +26,9 @@
package sun.java2d.loops;
import java.awt.Font;
-import java.awt.geom.AffineTransform;
import sun.font.Font2D;
import sun.font.FontStrike;
-import sun.font.FontStrikeDesc;
/*
* A FontInfo object holds all calculated or derived data needed
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/GeneralRenderer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/GeneralRenderer.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,6 @@
import java.awt.image.DataBuffer;
import java.awt.image.ColorModel;
import java.awt.geom.Path2D;
-import java.awt.geom.PathIterator;
-import java.awt.geom.AffineTransform;
import sun.java2d.pipe.Region;
import sun.java2d.pipe.SpanIterator;
import sun.java2d.SunGraphics2D;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/MaskFill.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/MaskFill.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,13 +25,8 @@
package sun.java2d.loops;
-import java.awt.Paint;
-import java.awt.PaintContext;
import java.awt.Composite;
-import java.awt.Rectangle;
-import java.awt.image.ColorModel;
import java.awt.image.BufferedImage;
-import java.awt.image.WritableRaster;
import sun.awt.image.BufImgSurfaceData;
import sun.java2d.loops.GraphicsPrimitive;
import sun.java2d.SunGraphics2D;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/ScaledBlit.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/ScaledBlit.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
package sun.java2d.loops;
import java.awt.Composite;
-import java.lang.ref.WeakReference;
import sun.java2d.loops.GraphicsPrimitive;
import sun.java2d.SurfaceData;
import sun.java2d.pipe.Region;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/SurfaceType.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/SurfaceType.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
package sun.java2d.loops;
-import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import sun.awt.image.PixelConverter;
import java.util.HashMap;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/TransformBlit.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/TransformBlit.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@
import java.awt.Composite;
import java.awt.geom.AffineTransform;
-import java.lang.ref.WeakReference;
import sun.java2d.SurfaceData;
import sun.java2d.loops.GraphicsPrimitive;
import sun.java2d.pipe.Region;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/loops/TransformHelper.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/loops/TransformHelper.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@
import java.awt.Composite;
import java.awt.geom.AffineTransform;
-import java.lang.ref.WeakReference;
import sun.java2d.SurfaceData;
import sun.java2d.loops.GraphicsPrimitive;
import sun.java2d.pipe.Region;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/opengl/OGLMaskFill.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/opengl/OGLMaskFill.java Thu Jun 16 20:56:45 2016 +0000
@@ -26,6 +26,7 @@
package sun.java2d.opengl;
import java.awt.Composite;
+import sun.java2d.InvalidPipeException;
import sun.java2d.SunGraphics2D;
import sun.java2d.loops.GraphicsPrimitive;
import sun.java2d.loops.GraphicsPrimitiveMgr;
@@ -67,7 +68,14 @@
protected void validateContext(SunGraphics2D sg2d,
Composite comp, int ctxflags)
{
- OGLSurfaceData dstData = (OGLSurfaceData)sg2d.surfaceData;
+ OGLSurfaceData dstData;
+ try {
+ dstData = (OGLSurfaceData) sg2d.surfaceData;
+ } catch (ClassCastException e) {
+ throw new InvalidPipeException("wrong surface data type: " +
+ sg2d.surfaceData);
+ }
+
OGLContext.validateContext(dstData, dstData,
sg2d.getCompClip(), comp,
null, sg2d.paint, sg2d, ctxflags);
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/AATextRenderer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/AATextRenderer.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
package sun.java2d.pipe;
-import java.awt.font.GlyphVector;
import sun.java2d.SunGraphics2D;
import sun.font.GlyphList;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/BufferedContext.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/BufferedContext.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,6 +38,8 @@
import static sun.java2d.pipe.BufferedRenderPipe.BYTES_PER_SPAN;
import java.lang.annotation.Native;
+import java.lang.ref.Reference;
+import java.lang.ref.WeakReference;
/**
* Base context class for managing state in a single-threaded rendering
@@ -87,11 +89,11 @@
*/
protected static BufferedContext currentContext;
- private AccelSurface validatedSrcData;
- private AccelSurface validatedDstData;
- private Region validatedClip;
- private Composite validatedComp;
- private Paint validatedPaint;
+ private Reference<AccelSurface> validSrcDataRef = new WeakReference<>(null);
+ private Reference<AccelSurface> validDstDataRef = new WeakReference<>(null);
+ private Reference<Region> validClipRef = new WeakReference<>(null);
+ private Reference<Composite> validCompRef = new WeakReference<>(null);
+ private Reference<Paint> validPaintRef = new WeakReference<>(null);
// renamed from isValidatedPaintAColor as part of a work around for 6764257
private boolean isValidatedPaintJustAColor;
private int validatedRGB;
@@ -127,9 +129,9 @@
int flags)
{
// assert rq.lock.isHeldByCurrentThread();
- BufferedContext d3dc = dstData.getContext();
- d3dc.validate(srcData, dstData,
- clip, comp, xform, paint, sg2d, flags);
+ BufferedContext context = dstData.getContext();
+ context.validate(srcData, dstData,
+ clip, comp, xform, paint, sg2d, flags);
}
/**
@@ -200,13 +202,15 @@
updatePaint = true;
isValidatedPaintJustAColor = true;
}
- } else if (validatedPaint != paint) {
+ } else if (validPaintRef.get() != paint) {
updatePaint = true;
// this should be set when we are switching from paint to color
// in which case this condition will be true
isValidatedPaintJustAColor = false;
}
+ final AccelSurface validatedSrcData = validSrcDataRef.get();
+ final AccelSurface validatedDstData = validDstDataRef.get();
if ((currentContext != this) ||
(srcData != validatedSrcData) ||
(dstData != validatedDstData))
@@ -228,11 +232,12 @@
setSurfaces(srcData, dstData);
currentContext = this;
- validatedSrcData = srcData;
- validatedDstData = dstData;
+ validSrcDataRef = new WeakReference<>(srcData);
+ validDstDataRef = new WeakReference<>(dstData);
}
// validate clip
+ final Region validatedClip = validClipRef.get();
if ((clip != validatedClip) || updateClip) {
if (clip != null) {
if (updateClip ||
@@ -248,13 +253,13 @@
} else {
resetClip();
}
- validatedClip = clip;
+ validClipRef = new WeakReference<>(clip);
}
// validate composite (note that a change in the context flags
// may require us to update the composite state, even if the
// composite has not changed)
- if ((comp != validatedComp) || (flags != validatedFlags)) {
+ if ((comp != validCompRef.get()) || (flags != validatedFlags)) {
if (comp != null) {
setComposite(comp, flags);
} else {
@@ -263,7 +268,7 @@
// the paint state is dependent on the composite state, so make
// sure we update the color below
updatePaint = true;
- validatedComp = comp;
+ validCompRef = new WeakReference<>(comp);
validatedFlags = flags;
}
@@ -297,7 +302,7 @@
} else {
BufferedPaints.resetPaint(rq);
}
- validatedPaint = paint;
+ validPaintRef = new WeakReference<>(paint);
}
// mark dstData dirty
@@ -315,9 +320,9 @@
* @see RenderQueue#lock
* @see RenderQueue#unlock
*/
- public void invalidateSurfaces() {
- validatedSrcData = null;
- validatedDstData = null;
+ private void invalidateSurfaces() {
+ validSrcDataRef.clear();
+ validDstDataRef.clear();
}
private void setSurfaces(AccelSurface srcData,
@@ -434,9 +439,9 @@
resetClip();
BufferedPaints.resetPaint(rq);
invalidateSurfaces();
- validatedComp = null;
- validatedClip = null;
- validatedPaint = null;
+ validCompRef.clear();
+ validClipRef.clear();
+ validPaintRef.clear();
isValidatedPaintJustAColor = false;
xformInUse = false;
}
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/DrawImage.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/DrawImage.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -401,10 +401,10 @@
}
Region clip = sg.getCompClip();
- final int dx1 = Math.max((int) Math.floor(ddx1), clip.lox);
- final int dy1 = Math.max((int) Math.floor(ddy1), clip.loy);
- final int dx2 = Math.min((int) Math.ceil(ddx2), clip.hix);
- final int dy2 = Math.min((int) Math.ceil(ddy2), clip.hiy);
+ final int dx1 = Math.max((int) Math.floor(ddx1), clip.getLoX());
+ final int dy1 = Math.max((int) Math.floor(ddy1), clip.getLoY());
+ final int dx2 = Math.min((int) Math.ceil(ddx2), clip.getHiX());
+ final int dy2 = Math.min((int) Math.ceil(ddy2), clip.getHiY());
if (dx2 <= dx1 || dy2 <= dy1) {
// empty destination means no output
return;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/GlyphListLoopPipe.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/GlyphListLoopPipe.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
package sun.java2d.pipe;
-import java.awt.font.GlyphVector;
import sun.awt.SunHints;
import sun.java2d.SunGraphics2D;
import sun.font.GlyphList;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/GlyphListPipe.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/GlyphListPipe.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,14 +25,10 @@
package sun.java2d.pipe;
-import java.awt.Font;
-import java.awt.Rectangle;
-import java.awt.Shape;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.font.TextLayout;
-import sun.awt.SunHints;
import sun.java2d.SunGraphics2D;
import sun.java2d.SurfaceData;
import sun.font.GlyphList;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/LoopPipe.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/LoopPipe.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,22 +25,16 @@
package sun.java2d.pipe;
-import java.awt.Font;
import java.awt.Shape;
import java.awt.BasicStroke;
-import java.awt.Polygon;
import java.awt.geom.AffineTransform;
import java.awt.geom.PathIterator;
import java.awt.geom.RoundRectangle2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Arc2D;
-import java.awt.geom.IllegalPathStateException;
import java.awt.geom.Path2D;
-import java.awt.font.GlyphVector;
import sun.java2d.SunGraphics2D;
import sun.java2d.SurfaceData;
-import sun.java2d.loops.FontInfo;
-import sun.java2d.loops.DrawPolygons;
import sun.java2d.loops.FillParallelogram;
import sun.java2d.loops.DrawParallelogram;
import sun.awt.SunHints;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/OutlineTextRenderer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/OutlineTextRenderer.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@
import java.awt.font.GlyphVector;
import java.awt.font.TextLayout;
import sun.java2d.SunGraphics2D;
-import sun.font.GlyphList;
import sun.awt.SunHints;
import java.awt.Shape;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/Region.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/Region.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -62,37 +62,21 @@
* bands[rowstart+3+N*2] = ... // start of next Y row
* </pre>
*/
-public class Region {
- static final int INIT_SIZE = 50;
- static final int GROW_SIZE = 50;
+public final class Region {
+ private static final int INIT_SIZE = 50;
+ private static final int GROW_SIZE = 50;
- /**
- * Immutable Region.
- */
- private static final class ImmutableRegion extends Region {
- protected ImmutableRegion(int lox, int loy, int hix, int hiy) {
- super(lox, loy, hix, hiy);
- }
-
- // Override all the methods that mutate the object
- public void appendSpans(sun.java2d.pipe.SpanIterator si) {}
- public void setOutputArea(java.awt.Rectangle r) {}
- public void setOutputAreaXYWH(int x, int y, int w, int h) {}
- public void setOutputArea(int[] box) {}
- public void setOutputAreaXYXY(int lox, int loy, int hix, int hiy) {}
- }
-
- public static final Region EMPTY_REGION = new ImmutableRegion(0, 0, 0, 0);
- public static final Region WHOLE_REGION = new ImmutableRegion(
+ public static final Region EMPTY_REGION = new Region(0, 0, 0, 0);
+ public static final Region WHOLE_REGION = new Region(
Integer.MIN_VALUE,
Integer.MIN_VALUE,
Integer.MAX_VALUE,
Integer.MAX_VALUE);
- int lox;
- int loy;
- int hix;
- int hiy;
+ private int lox;
+ private int loy;
+ private int hix;
+ private int hiy;
int endIndex;
int[] bands;
@@ -155,7 +139,7 @@
return (int) Math.round(newv);
}
- protected Region(int lox, int loy, int hix, int hiy) {
+ private Region(int lox, int loy, int hix, int hiy) {
this.lox = lox;
this.loy = loy;
this.hix = hix;
@@ -258,9 +242,7 @@
sr.setOutputArea(devBounds);
sr.appendPath(s.getPathIterator(at));
sr.getPathBox(box);
- Region r = Region.getInstance(box);
- r.appendSpans(sr);
- return r;
+ return Region.getInstance(box, sr);
} finally {
sr.dispose();
}
@@ -349,56 +331,18 @@
}
/**
- * Sets the rectangle of interest for storing and returning
- * region bands.
- * <p>
- * This method can also be used to initialize a simple rectangular
- * region.
- */
- public void setOutputArea(Rectangle r) {
- setOutputAreaXYWH(r.x, r.y, r.width, r.height);
- }
-
- /**
- * Sets the rectangle of interest for storing and returning
- * region bands. The rectangle is specified in x, y, width, height
- * format and appropriate clipping is performed as per the method
- * {@code dimAdd}.
- * <p>
- * This method can also be used to initialize a simple rectangular
- * region.
+ * Returns a Region object with a rectangle of interest specified by the
+ * indicated rectangular area in lox, loy, hix, hiy format.
+ * <p/>
+ * Appends the list of spans returned from the indicated SpanIterator. Each
+ * span must be at a higher starting Y coordinate than the previous data or
+ * it must have a Y range equal to the highest Y band in the region and a
+ * higher X coordinate than any of the spans in that band.
*/
- public void setOutputAreaXYWH(int x, int y, int w, int h) {
- setOutputAreaXYXY(x, y, dimAdd(x, w), dimAdd(y, h));
- }
-
- /**
- * Sets the rectangle of interest for storing and returning
- * region bands. The rectangle is specified as a span array.
- * <p>
- * This method can also be used to initialize a simple rectangular
- * region.
- */
- public void setOutputArea(int box[]) {
- this.lox = box[0];
- this.loy = box[1];
- this.hix = box[2];
- this.hiy = box[3];
- }
-
- /**
- * Sets the rectangle of interest for storing and returning
- * region bands. The rectangle is specified in lox, loy,
- * hix, hiy format.
- * <p>
- * This method can also be used to initialize a simple rectangular
- * region.
- */
- public void setOutputAreaXYXY(int lox, int loy, int hix, int hiy) {
- this.lox = lox;
- this.loy = loy;
- this.hix = hix;
- this.hiy = hiy;
+ public static Region getInstance(int box[], SpanIterator si) {
+ Region ret = new Region(box[0], box[1], box[2], box[3]);
+ ret.appendSpans(si);
+ return ret;
}
/**
@@ -408,7 +352,7 @@
* Y range equal to the highest Y band in the region and a
* higher X coordinate than any of the spans in that band.
*/
- public void appendSpans(SpanIterator si) {
+ private void appendSpans(SpanIterator si) {
int[] box = new int[6];
while (si.nextSpan(box)) {
@@ -739,9 +683,9 @@
return ret;
}
- static final int INCLUDE_A = 1;
- static final int INCLUDE_B = 2;
- static final int INCLUDE_COMMON = 4;
+ private static final int INCLUDE_A = 1;
+ private static final int INCLUDE_B = 2;
+ private static final int INCLUDE_COMMON = 4;
private void filterSpans(Region ra, Region rb, int flags) {
int abands[] = ra.bands;
@@ -1080,35 +1024,35 @@
/**
* Returns the lowest X coordinate in the Region.
*/
- public final int getLoX() {
+ public int getLoX() {
return lox;
}
/**
* Returns the lowest Y coordinate in the Region.
*/
- public final int getLoY() {
+ public int getLoY() {
return loy;
}
/**
* Returns the highest X coordinate in the Region.
*/
- public final int getHiX() {
+ public int getHiX() {
return hix;
}
/**
* Returns the highest Y coordinate in the Region.
*/
- public final int getHiY() {
+ public int getHiY() {
return hiy;
}
/**
* Returns the width of this Region clipped to the range (0 - MAX_INT).
*/
- public final int getWidth() {
+ public int getWidth() {
if (hix < lox) return 0;
int w;
if ((w = hix - lox) < 0) {
@@ -1120,7 +1064,7 @@
/**
* Returns the height of this Region clipped to the range (0 - MAX_INT).
*/
- public final int getHeight() {
+ public int getHeight() {
if (hiy < loy) return 0;
int h;
if ((h = hiy - loy) < 0) {
@@ -1325,6 +1269,7 @@
return si;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Region[[");
@@ -1335,13 +1280,13 @@
sb.append(hix);
sb.append(", ");
sb.append(hiy);
- sb.append("]");
+ sb.append(']');
if (bands != null) {
int col = 0;
while (col < endIndex) {
sb.append("y{");
sb.append(bands[col++]);
- sb.append(",");
+ sb.append(',');
sb.append(bands[col++]);
sb.append("}[");
int end = bands[col++];
@@ -1351,20 +1296,25 @@
sb.append(bands[col++]);
sb.append(", ");
sb.append(bands[col++]);
- sb.append(")");
+ sb.append(')');
}
- sb.append("]");
+ sb.append(']');
}
}
- sb.append("]");
+ sb.append(']');
return sb.toString();
}
+ @Override
public int hashCode() {
return (isEmpty() ? 0 : (lox * 3 + loy * 5 + hix * 7 + hiy * 9));
}
+ @Override
public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
if (!(o instanceof Region)) {
return false;
}
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/RegionClipSpanIterator.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/RegionClipSpanIterator.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,6 @@
package sun.java2d.pipe;
-import java.awt.geom.PathIterator;
-import java.awt.Rectangle;
/**
* This class clips a SpanIterator to a Region and outputs the
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/RegionIterator.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/RegionIterator.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
package sun.java2d.pipe;
-import java.awt.Rectangle;
/**
* This class defines the API for iterating through the bands
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/ShapeSpanIterator.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/ShapeSpanIterator.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -131,7 +131,7 @@
* span segments to the bounds of the specified Region.
*/
public void setOutputArea(Region r) {
- setOutputAreaXYXY(r.lox, r.loy, r.hix, r.hiy);
+ setOutputAreaXYXY(r.getLoX(), r.getLoY(), r.getHiX(), r.getHiY());
}
/*
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/SolidTextRenderer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/SolidTextRenderer.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,6 @@
package sun.java2d.pipe;
-import java.awt.font.GlyphVector;
-import sun.awt.SunHints;
import sun.java2d.SunGraphics2D;
import sun.font.GlyphList;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/SpanClipRenderer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/SpanClipRenderer.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@
import java.awt.Rectangle;
import java.awt.Shape;
-import java.awt.geom.PathIterator;
import sun.java2d.SunGraphics2D;
/**
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/TextPipe.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/TextPipe.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,6 @@
import sun.java2d.SunGraphics2D;
import java.awt.font.GlyphVector;
-import java.awt.font.TextLayout;
/**
* This interface defines the set of calls that pipeline objects
--- a/jdk/src/java.desktop/share/classes/sun/java2d/pipe/TextRenderer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/pipe/TextRenderer.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,10 +27,7 @@
import java.awt.Rectangle;
import java.awt.Shape;
-import java.awt.Font;
-import java.awt.font.GlyphVector;
import sun.java2d.SunGraphics2D;
-import sun.java2d.loops.FontInfo;
import sun.font.GlyphList;
/*
--- a/jdk/src/java.desktop/share/classes/sun/print/PSPrinterJob.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/print/PSPrinterJob.java Thu Jun 16 20:56:45 2016 +0000
@@ -1933,6 +1933,14 @@
protected void deviceFill(PathIterator pathIter, Color color,
AffineTransform tx, Shape clip) {
+ if (Double.isNaN(tx.getScaleX()) ||
+ Double.isNaN(tx.getScaleY()) ||
+ Double.isNaN(tx.getShearX()) ||
+ Double.isNaN(tx.getShearY()) ||
+ Double.isNaN(tx.getTranslateX()) ||
+ Double.isNaN(tx.getTranslateY())) {
+ return;
+ }
setTransform(tx);
setClip(clip);
setColor(color);
--- a/jdk/src/java.desktop/share/classes/sun/print/ServiceDialog.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/print/ServiceDialog.java Thu Jun 16 20:56:45 2016 +0000
@@ -1632,10 +1632,13 @@
float hgt = mediaSize.getY(units);
float pax = lm;
float pay = tm;
+ float par = rm;
+ float pab = bm;
float paw = wid - lm - rm;
float pah = hgt - tm - bm;
if (paw <= 0f || pah <= 0f || pax < 0f || pay < 0f ||
+ par <= 0f || pab <= 0f ||
pax < mpaMax.getX(units) || paw > mpaMax.getWidth(units) ||
pay < mpaMax.getY(units) || pah > mpaMax.getHeight(units)) {
return null;
--- a/jdk/src/java.desktop/share/classes/sun/print/resources/serviceui_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/share/classes/sun/print/resources/serviceui_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -28,7 +28,7 @@
dialog.noprintermsg=Hittade ingen utskriftstj\u00E4nst.
dialog.writeerror=Kan inte skriva till filen:
#
-label.info=Information:
+label.info=Info:
label.jobname=&Utskrift:
label.numcopies=Antal e&xemplar:
label.priority=P&rioritet:
--- a/jdk/src/java.desktop/unix/classes/sun/awt/X11/XCheckboxMenuItemPeer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/unix/classes/sun/awt/X11/XCheckboxMenuItemPeer.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
import sun.awt.AWTAccessor;
-class XCheckboxMenuItemPeer extends XMenuItemPeer implements CheckboxMenuItemPeer {
+final class XCheckboxMenuItemPeer extends XMenuItemPeer
+ implements CheckboxMenuItemPeer {
/************************************************
*
@@ -49,6 +50,7 @@
************************************************/
//Prom CheckboxMenuItemtPeer
+ @Override
public void setState(boolean t) {
repaintIfShowing();
}
@@ -72,8 +74,10 @@
/**
* Toggles state and generates ItemEvent
*/
- void action(final long when) {
+ @Override
+ void action(long when, int modifiers) {
XToolkit.executeOnEventHandlerThread((CheckboxMenuItem)getTarget(), new Runnable() {
+ @Override
public void run() {
doToggleState(when);
}
--- a/jdk/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -174,27 +174,24 @@
cachedFocusableWindow = isFocusableWindow();
- Font f = target.getFont();
- if (f == null) {
- f = XWindow.getDefaultFont();
- target.setFont(f);
- // we should not call setFont because it will call a repaint
- // which the peer may not be ready to do yet.
+ if (!target.isFontSet()) {
+ target.setFont(XWindow.getDefaultFont());
+ // we should not call setFont because it will call a repaint
+ // which the peer may not be ready to do yet.
}
- Color c = target.getBackground();
- if (c == null) {
- Color background = SystemColor.window;
- target.setBackground(background);
- // we should not call setBackGround because it will call a repaint
- // which the peer may not be ready to do yet.
+ if (!target.isBackgroundSet()) {
+ target.setBackground(SystemColor.window);
+ // we should not call setBackGround because it will call a repaint
+ // which the peer may not be ready to do yet.
+
}
- c = target.getForeground();
- if (c == null) {
- target.setForeground(SystemColor.windowText);
- // we should not call setForeGround because it will call a repaint
- // which the peer may not be ready to do yet.
+ if (!target.isForegroundSet()) {
+ target.setForeground(SystemColor.windowText);
+ // we should not call setForeGround because it will call a repaint
+ // which the peer may not be ready to do yet.
}
+
alwaysOnTop = ((Window)target).isAlwaysOnTop() && ((Window)target).isAlwaysOnTopSupported();
GraphicsConfiguration gc = getGraphicsConfiguration();
--- a/jdk/src/java.desktop/unix/classes/sun/java2d/xr/XRRenderer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/unix/classes/sun/java2d/xr/XRRenderer.java Thu Jun 16 20:56:45 2016 +0000
@@ -28,6 +28,7 @@
import java.awt.*;
import java.awt.geom.*;
import sun.awt.SunToolkit;
+import sun.java2d.InvalidPipeException;
import sun.java2d.SunGraphics2D;
import sun.java2d.loops.*;
import sun.java2d.pipe.Region;
@@ -69,7 +70,12 @@
* destination context.
*/
private final void validateSurface(SunGraphics2D sg2d) {
- XRSurfaceData xrsd = (XRSurfaceData) sg2d.surfaceData;
+ XRSurfaceData xrsd;
+ try {
+ xrsd = (XRSurfaceData) sg2d.surfaceData;
+ } catch (ClassCastException e) {
+ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData);
+ }
xrsd.validateAsDestination(sg2d, sg2d.getCompClip());
xrsd.maskBuffer.validateCompositeState(sg2d.composite, sg2d.transform,
sg2d.paint, sg2d);
--- a/jdk/src/java.desktop/unix/native/common/awt/CUPSfuncs.c Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/unix/native/common/awt/CUPSfuncs.c Thu Jun 16 20:56:45 2016 +0000
@@ -371,6 +371,10 @@
ppd_option_t *option;
ppd_choice_t *choice;
ppd_size_t *size;
+ const char *filename = NULL;
+ int i;
+ jobjectArray sizeArray = NULL;
+ jfloat *dims;
const char *name = (*env)->GetStringUTFChars(env, printer, NULL);
if (name == NULL) {
@@ -378,10 +382,6 @@
JNU_ThrowOutOfMemoryError(env, "Could not create printer name");
return NULL;
}
- const char *filename;
- int i;
- jobjectArray sizeArray = NULL;
- jfloat *dims;
// NOTE: cupsGetPPD returns a pointer to a filename of a temporary file.
// unlink() must be called to remove the file after using it.
@@ -470,6 +470,8 @@
jclass intCls, cls;
jmethodID intCtr, arrListAddMID;
int i;
+ const char *name = NULL;
+ const char *filename = NULL;
intCls = (*env)->FindClass(env, "java/lang/Integer");
CHECK_NULL(intCls);
@@ -481,13 +483,13 @@
(*env)->GetMethodID(env, cls, "add", "(Ljava/lang/Object;)Z");
CHECK_NULL(arrListAddMID);
- const char *name = (*env)->GetStringUTFChars(env, printer, NULL);
+ name = (*env)->GetStringUTFChars(env, printer, NULL);
if (name == NULL) {
(*env)->ExceptionClear(env);
JNU_ThrowOutOfMemoryError(env, "Could not create printer name");
return;
}
- const char *filename;
+
// NOTE: cupsGetPPD returns a pointer to a filename of a temporary file.
// unlink() must be called to remove the file after using it.
--- a/jdk/src/java.desktop/unix/native/common/awt/fontpath.c Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/unix/native/common/awt/fontpath.c Thu Jun 16 20:56:45 2016 +0000
@@ -1012,17 +1012,20 @@
jfieldID familyNameID, styleNameID, fullNameID, fontFileID;
jmethodID fcFontCons;
char* debugMinGlyphsStr = getenv("J2D_DEBUG_MIN_GLYPHS");
+ jclass fcInfoClass;
+ jclass fcCompFontClass;
+ jclass fcFontClass;
CHECK_NULL(fcInfoObj);
CHECK_NULL(fcCompFontArray);
- jclass fcInfoClass =
+ fcInfoClass =
(*env)->FindClass(env, "sun/font/FontConfigManager$FontConfigInfo");
CHECK_NULL(fcInfoClass);
- jclass fcCompFontClass =
+ fcCompFontClass =
(*env)->FindClass(env, "sun/font/FontConfigManager$FcCompFont");
CHECK_NULL(fcCompFontClass);
- jclass fcFontClass =
+ fcFontClass =
(*env)->FindClass(env, "sun/font/FontConfigManager$FontConfigFont");
CHECK_NULL(fcFontClass);
@@ -1146,7 +1149,8 @@
int fn, j, fontCount, nfonts;
unsigned int minGlyphs;
FcChar8 **family, **styleStr, **fullname, **file;
- jarray fcFontArr;
+ jarray fcFontArr = NULL;
+ FcCharSet *unionCharset = NULL;
fcCompFontObj = (*env)->GetObjectArrayElement(env, fcCompFontArray, i);
fcNameStr =
@@ -1218,7 +1222,7 @@
minGlyphs = val;
}
}
- FcCharSet *unionCharset = NULL;
+
for (j=0; j<nfonts; j++) {
FcPattern *fontPattern = fontset->fonts[j];
FcChar8 *fontformat;
--- a/jdk/src/java.desktop/unix/native/libawt_xawt/awt/gtk_interface.c Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/unix/native/libawt_xawt/awt/gtk_interface.c Thu Jun 16 20:56:45 2016 +0000
@@ -43,7 +43,7 @@
gboolean (*check)(const char* lib_name, gboolean load);
} GtkLib;
-static GtkLib libs[] = {
+static GtkLib gtk_libs[] = {
{
GTK_2,
JNI_LIB_NAME("gtk-x11-2.0"),
@@ -57,26 +57,42 @@
VERSIONED_JNI_LIB_NAME("gtk-3", "0"),
>k3_load,
>k3_check
- },
- {
- 0,
- NULL,
- NULL,
- NULL,
- NULL
}
};
+static GtkLib** get_libs_order(GtkVersion version) {
+ static GtkLib** load_order;
+ static int n_libs = 0;
+ if (!n_libs) {
+ n_libs = sizeof(gtk_libs) / sizeof(GtkLib);
+ load_order = calloc(n_libs + 1, sizeof(GtkLib *));
+ }
+ int i, first = 0;
+ for (i = 0; i < n_libs; i++) {
+ load_order[i] = >k_libs[i];
+ if (load_order[i]->version == version) {
+ first = i;
+ }
+ }
+ if (first) {
+ for (i = first; i > 0; i--) {
+ load_order[i] = load_order[i - 1];
+ }
+ load_order[0] = >k_libs[first];
+ }
+ return load_order;
+}
+
static GtkLib* get_loaded() {
- GtkLib* lib = libs;
- while(!gtk && lib->version) {
+ GtkLib** libs = get_libs_order(GTK_ANY);
+ while(!gtk && *libs) {
+ GtkLib* lib = *libs++;
if (lib->check(lib->vname, /* load = */FALSE)) {
return lib;
}
if (lib->check(lib->name, /* load = */FALSE)) {
return lib;
}
- lib++;
}
return NULL;
}
@@ -85,23 +101,18 @@
if (gtk == NULL) {
GtkLib* lib = get_loaded();
if (lib) {
- if (version != GTK_ANY && lib->version != version) {
- if (verbose) {
- fprintf(stderr, "WARNING: Cannot load GTK%d library: \
- GTK%d has already been loaded\n", version, lib->version);
- }
- return FALSE;
- }
if (verbose) {
- fprintf(stderr, "Looking for GTK%d library...\n", version);
+ fprintf(stderr, "Looking for GTK%d library...\n",
+ lib->version);
}
gtk = lib->load(env, lib->vname);
if (!gtk) {
gtk = lib->load(env, lib->name);
}
} else {
- lib = libs;
- while (!gtk && lib->version) {
+ GtkLib** libs = get_libs_order(version);
+ while (!gtk && *libs) {
+ lib = *libs++;
if (version == GTK_ANY || lib->version == version) {
if (verbose) {
fprintf(stderr, "Looking for GTK%d library...\n",
@@ -115,9 +126,7 @@
fprintf(stderr, "Not found.\n");
}
}
- lib++;
}
- lib--;
}
if (verbose) {
if (gtk) {
@@ -131,23 +140,21 @@
}
static gboolean check_version(GtkVersion version) {
- GtkLib* lib = libs;
- while (lib->version) {
- if (version == GTK_ANY || lib->version == version) {
- if (lib->check(lib->vname, /* load = */TRUE)) {
- return TRUE;
- }
- if (lib->check(lib->name, /* load = */TRUE)) {
- return TRUE;
- }
+ GtkLib** libs = get_libs_order(version);
+ while (*libs) {
+ GtkLib* lib = *libs++;
+ if (lib->check(lib->vname, /* load = */TRUE)) {
+ return TRUE;
}
- lib++;
+ if (lib->check(lib->name, /* load = */TRUE)) {
+ return TRUE;
+ }
}
return FALSE;
}
gboolean gtk_check_version(GtkVersion version) {
- if (gtk) {
+ if (gtk || get_loaded()) {
return TRUE;
}
return check_version(version);
--- a/jdk/src/java.desktop/windows/classes/sun/awt/windows/WDialogPeer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/windows/classes/sun/awt/windows/WDialogPeer.java Thu Jun 16 20:56:45 2016 +0000
@@ -37,10 +37,6 @@
// target has none explicitly specified.
static final Color defaultBackground = SystemColor.control;
- // If target doesn't have its background color set, we set its
- // background to platform default.
- boolean needDefaultBackground;
-
WDialogPeer(Dialog target) {
super(target);
@@ -67,7 +63,7 @@
Dialog target = (Dialog)this.target;
// Need to set target's background to default _before_ a call
// to super.initialize.
- if (needDefaultBackground) {
+ if (!target.isBackgroundSet()) {
target.setBackground(defaultBackground);
}
@@ -133,19 +129,6 @@
}
}
- /* Native create() peeks at target's background and if it's null
- * calls this method to arrage for default background to be set on
- * target. Can't make the check in Java, since getBackground will
- * return owner's background if target has none set.
- */
- private void setDefaultColor() {
- // Can't call target.setBackground directly, since we are
- // called on toolkit thread. Can't schedule a Runnable on the
- // EventHandlerThread because of the race condition. So just
- // set a flag and call target.setBackground in initialize.
- needDefaultBackground = true;
- }
-
native void pSetIMMOption(String option);
void notifyIMMOptionChange(){
InputMethodManager.getInstance().notifyChangeRequest((Component)target);
--- a/jdk/src/java.desktop/windows/classes/sun/awt/windows/WFileDialogPeer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/windows/classes/sun/awt/windows/WFileDialogPeer.java Thu Jun 16 20:56:45 2016 +0000
@@ -328,4 +328,7 @@
FileDialog fileDialog = (FileDialog)target;
return AWTAccessor.getFileDialogAccessor().isMultipleMode(fileDialog);
}
+
+ @Override
+ public native Point getLocationOnScreen();
}
--- a/jdk/src/java.desktop/windows/classes/sun/awt/windows/WPrinterJob.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/windows/classes/sun/awt/windows/WPrinterJob.java Thu Jun 16 20:56:45 2016 +0000
@@ -1852,12 +1852,14 @@
setCollateAttrib(SheetCollate.UNCOLLATED, attributes);
}
- if ((flags & PD_PAGENUMS) != 0) {
- attributes.add(SunPageSelection.RANGE);
- } else if ((flags & PD_SELECTION) != 0) {
- attributes.add(SunPageSelection.SELECTION);
- } else {
- attributes.add(SunPageSelection.ALL);
+ if ((flags & PD_NOSELECTION) != PD_NOSELECTION) {
+ if ((flags & PD_PAGENUMS) != 0) {
+ attributes.add(SunPageSelection.RANGE);
+ } else if ((flags & PD_SELECTION) != 0) {
+ attributes.add(SunPageSelection.SELECTION);
+ } else {
+ attributes.add(SunPageSelection.ALL);
+ }
}
if ((fields & DM_ORIENTATION) != 0) {
--- a/jdk/src/java.desktop/windows/classes/sun/awt/windows/WWindowPeer.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/windows/classes/sun/awt/windows/WWindowPeer.java Thu Jun 16 20:56:45 2016 +0000
@@ -177,12 +177,17 @@
updateInsets(insets_);
- Font f = ((Window)target).getFont();
- if (f == null) {
- f = defaultFont;
- ((Window)target).setFont(f);
- setFont(f);
+ if (!((Window) target).isFontSet()) {
+ ((Window) target).setFont(defaultFont);
+ setFont(defaultFont);
}
+ if (!((Window) target).isForegroundSet()) {
+ ((Window) target).setForeground(SystemColor.windowText);
+ }
+ if (!((Window) target).isBackgroundSet()) {
+ ((Window) target).setBackground(SystemColor.window);
+ }
+
// Express our interest in display changes
GraphicsConfiguration gc = getGraphicsConfiguration();
((Win32GraphicsDevice)gc.getDevice()).addDisplayChangedListener(this);
--- a/jdk/src/java.desktop/windows/classes/sun/java2d/d3d/D3DMaskFill.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/windows/classes/sun/java2d/d3d/D3DMaskFill.java Thu Jun 16 20:56:45 2016 +0000
@@ -26,6 +26,7 @@
package sun.java2d.d3d;
import java.awt.Composite;
+import sun.java2d.InvalidPipeException;
import sun.java2d.SunGraphics2D;
import sun.java2d.loops.GraphicsPrimitive;
import sun.java2d.loops.GraphicsPrimitiveMgr;
@@ -67,7 +68,13 @@
protected void validateContext(SunGraphics2D sg2d,
Composite comp, int ctxflags)
{
- D3DSurfaceData dstData = (D3DSurfaceData)sg2d.surfaceData;
+ D3DSurfaceData dstData;
+ try {
+ dstData = (D3DSurfaceData) sg2d.surfaceData;
+ } catch (ClassCastException e) {
+ throw new InvalidPipeException("wrong surface data type: " +
+ sg2d.surfaceData);
+ }
D3DContext.validateContext(dstData, dstData,
sg2d.getCompClip(), comp,
null, sg2d.paint, sg2d, ctxflags);
--- a/jdk/src/java.desktop/windows/native/libawt/windows/awt_Component.cpp Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/windows/native/libawt/windows/awt_Component.cpp Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -3781,7 +3781,10 @@
HWND hWnd = GetHWnd();
HWND hTop = GetTopLevelParentForWindow(hWnd);
::ClientToScreen(hTop, &p);
-
+ if (!m_bitsCandType) {
+ SetCandidateWindow(m_bitsCandType, x - p.x, y - p.y);
+ return;
+ }
for (int iCandType=0; iCandType<32; iCandType++, bits<<=1) {
if ( m_bitsCandType & bits )
SetCandidateWindow(iCandType, x - p.x, y - p.y);
@@ -3799,7 +3802,7 @@
HIMC hIMC = ImmGetContext(hwnd);
CANDIDATEFORM cf;
cf.dwIndex = iCandType;
- cf.dwStyle = CFS_CANDIDATEPOS;
+ cf.dwStyle = CFS_POINT;
cf.ptCurrentPos.x = x;
cf.ptCurrentPos.y = y;
@@ -3831,8 +3834,12 @@
MsgRouting AwtComponent::WmImeNotify(WPARAM subMsg, LPARAM bitsCandType)
{
- if (!m_useNativeCompWindow && subMsg == IMN_OPENCANDIDATE) {
- m_bitsCandType = bitsCandType;
+ if (!m_useNativeCompWindow) {
+ if (subMsg == IMN_OPENCANDIDATE) {
+ m_bitsCandType = subMsg;
+ } else if (subMsg != IMN_SETCANDIDATEPOS) {
+ m_bitsCandType = 0;
+ }
InquireCandidatePosition();
return mrConsume;
}
@@ -4100,12 +4107,7 @@
if (mr != mrConsume) {
HWND proxy = GetProxyFocusOwner();
if (proxy != NULL && ::IsWindowEnabled(proxy)) {
- if (proxy != GetHWnd()) {
- retVal = ::SendMessage(proxy, message, wParam, lParam);
- } else {
- retVal = ComCtl32Util::GetInstance().DefWindowProc(NULL,
- proxy, message, wParam, lParam);
- }
+ retVal = ::DefWindowProc(proxy, message, wParam, lParam);
mr = mrConsume;
}
}
--- a/jdk/src/java.desktop/windows/native/libawt/windows/awt_Dialog.cpp Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/windows/native/libawt/windows/awt_Dialog.cpp Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -100,7 +100,6 @@
{
JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
- jobject background = NULL;
jobject target = NULL;
AwtDialog* dialog = NULL;
@@ -181,22 +180,13 @@
}
dialog->DoUpdateIcon();
-
- background = env->GetObjectField(target,
- AwtComponent::backgroundID);
- if (background == NULL) {
- JNU_CallMethodByName(env, NULL,
- peer, "setDefaultColor", "()V");
- }
}
} catch (...) {
- env->DeleteLocalRef(background);
env->DeleteLocalRef(target);
throw;
}
done:
- env->DeleteLocalRef(background);
env->DeleteLocalRef(target);
return dialog;
--- a/jdk/src/java.desktop/windows/native/libawt/windows/awt_FileDialog.cpp Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/windows/native/libawt/windows/awt_FileDialog.cpp Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -107,6 +107,9 @@
}
break;
}
+ case WM_SETICON: {
+ return 0;
+ }
}
WNDPROC lpfnWndProc = (WNDPROC)(::GetProp(hWnd, NativeDialogWndProcProp));
@@ -140,6 +143,11 @@
::SendMessage(parent, WM_SETICON, (WPARAM)ICON_BIG,
(LPARAM)AwtToolkit::GetInstance().GetAwtIcon());
} else {
+ AwtWindow *awtWindow = (AwtWindow *)JNI_GET_PDATA(awtParent);
+ ::SendMessage(parent, WM_SETICON, (WPARAM)ICON_BIG,
+ (LPARAM)(awtWindow->GetHIcon()));
+ ::SendMessage(parent, WM_SETICON, (WPARAM)ICON_SMALL,
+ (LPARAM)(awtWindow->GetHIconSm()));
env->DeleteLocalRef(awtParent);
}
@@ -644,4 +652,72 @@
CATCH_BAD_ALLOC;
}
+int ScaleDownX(int x, HWND hwnd) {
+ int screen = AwtWin32GraphicsDevice::DeviceIndexForWindow(hwnd);
+ Devices::InstanceAccess devices;
+ AwtWin32GraphicsDevice* device = devices->GetDevice(screen);
+ return device == NULL ? x : device->ScaleDownX(x);
+}
+
+int ScaleDownY(int y, HWND hwnd) {
+ int screen = AwtWin32GraphicsDevice::DeviceIndexForWindow(hwnd);
+ Devices::InstanceAccess devices;
+ AwtWin32GraphicsDevice* device = devices->GetDevice(screen);
+ return device == NULL ? y : device->ScaleDownY(y);
+}
+
+jobject AwtFileDialog::_GetLocationOnScreen(void *param)
+{
+ JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
+
+ jobject result = NULL;
+ HWND hwnd = (HWND)env->GetLongField((jobject)param, AwtComponent::hwndID);
+
+ if (::IsWindow(hwnd))
+ {
+ RECT rect;
+ VERIFY(::GetWindowRect(hwnd, &rect));
+ result = JNU_NewObjectByName(env, "java/awt/Point", "(II)V",
+ ScaleDownX(rect.left, hwnd), ScaleDownY(rect.top, hwnd));
+ }
+
+ if (result != NULL)
+ {
+ jobject resultRef = env->NewGlobalRef(result);
+ env->DeleteLocalRef(result);
+ return resultRef;
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+/*
+ * Class: sun_awt_windows_WFileDialogPeer
+ * Method: getLocationOnScreen
+ * Signature: ()Ljava/awt/Point;
+ */
+JNIEXPORT jobject JNICALL
+Java_sun_awt_windows_WFileDialogPeer_getLocationOnScreen(JNIEnv *env,
+ jobject peer) {
+ TRY;
+
+ jobject peerRef = env->NewGlobalRef(peer);
+ jobject resultRef = (jobject)AwtToolkit::GetInstance().SyncCall(
+ (void*(*)(void*))AwtFileDialog::_GetLocationOnScreen, (void *)peerRef);
+ env->DeleteLocalRef(peerRef);
+
+ if (resultRef != NULL)
+ {
+ jobject result = env->NewLocalRef(resultRef);
+ env->DeleteGlobalRef(resultRef);
+ return result;
+ }
+
+ return NULL;
+
+ CATCH_BAD_ALLOC_RET(NULL);
+}
+
} /* extern "C" */
--- a/jdk/src/java.desktop/windows/native/libawt/windows/awt_FileDialog.h Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/windows/native/libawt/windows/awt_FileDialog.h Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -69,6 +69,7 @@
static void _DisposeOrHide(void *param);
static void _ToFront(void *param);
static void _ToBack(void *param);
+ static jobject _GetLocationOnScreen(void *param);
private:
static UINT GetBufferLength(LPTSTR buffer, UINT limit);
--- a/jdk/src/java.desktop/windows/native/libawt/windows/awt_Win32GraphicsDevice.cpp Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.desktop/windows/native/libawt/windows/awt_Win32GraphicsDevice.cpp Thu Jun 16 20:56:45 2016 +0000
@@ -929,6 +929,9 @@
// Only want to call this once per session
make_uns_ordered_dither_array(img_oda_alpha, 256);
+ // workaround JDK-6477756, ignore return value to keep dll in memory
+ JDK_LoadSystemLibrary("opengl32.dll");
+
CATCH_BAD_ALLOC;
}
--- a/jdk/src/java.httpclient/share/classes/java/net/http/SSLConnection.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.httpclient/share/classes/java/net/http/SSLConnection.java Thu Jun 16 20:56:45 2016 +0000
@@ -142,6 +142,9 @@
// TODO: check for closure
String s = "Receive) ";
//debugPrint(s, r.buf);
+ if (r.result.bytesProduced() > 0) {
+ assert buf == r.buf;
+ }
return r.result.bytesProduced();
}
--- a/jdk/src/java.httpclient/share/classes/java/net/http/SSLDelegate.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.httpclient/share/classes/java/net/http/SSLDelegate.java Thu Jun 16 20:56:45 2016 +0000
@@ -344,8 +344,8 @@
/* we wait until some user data arrives */
int mark = dst.position();
WrapperResult r = null;
- assert dst.position() == 0;
- while (dst.position() == 0) {
+ int pos = dst.position();
+ while (dst.position() == pos) {
r = wrapper.recvAndUnwrap (dst);
dst = (r.buf != dst) ? r.buf: dst;
Status status = r.result.getStatus();
--- a/jdk/src/java.httpclient/share/classes/java/net/http/SSLTunnelConnection.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.httpclient/share/classes/java/net/http/SSLTunnelConnection.java Thu Jun 16 20:56:45 2016 +0000
@@ -150,6 +150,10 @@
// TODO: check for closure
String s = "Receive) ";
//debugPrint(s, r.buf);
+ if (r.result.bytesProduced() > 0) {
+ assert buf == r.buf;
+ }
+
return r.result.bytesProduced();
}
--- a/jdk/src/java.management/share/classes/sun/management/resources/agent_de.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.management/share/classes/sun/management/resources/agent_de.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,5 @@
#
-#
-# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,9 +23,6 @@
# questions.
#
-# Localizations for Level names. For the US locale
-# these are the same as the non-localized level name.
-
agent.err.error = Fehler
agent.err.exception = Ausnahme von Agent ausgel\u00F6st
agent.err.warning = Warnung
@@ -43,7 +39,7 @@
agent.err.premain.notfound = premain(String) ist in Agent-Klasse nicht vorhanden
agent.err.agentclass.access.denied = Zugriff auf premain(String) wurde abgelehnt
agent.err.invalid.agentclass = Ung\u00FCltiger Eigenschaftswert f\u00FCr com.sun.management.agent.class
-agent.err.invalid.state = Ung\u00FCltiger Agent-Zustand
+agent.err.invalid.state = Ung\u00FCltiger Agent-Zustand: {0}
agent.err.invalid.jmxremote.port = Ung\u00FCltige Nummer f\u00FCr com.sun.management.jmxremote.port
agent.err.invalid.jmxremote.rmi.port = Ung\u00FCltige Nummer f\u00FCr com.sun.management.jmxremote.rmi.port
@@ -67,27 +63,9 @@
agent.err.connector.server.io.error = Fehler bei JMX-Connector-Serverkommunikation
agent.err.invalid.option = Ung\u00FCltige Option angegeben
-agent.err.invalid.snmp.port = Ung\u00FCltige Nummer f\u00FCr com.sun.management.snmp.port
-agent.err.invalid.snmp.trap.port = Ung\u00FCltige Nummer f\u00FCr com.sun.management.snmp.trap
-agent.err.unknown.snmp.interface = Unbekannte SNMP-Schnittstelle
-agent.err.acl.file.notset = Es wurde keine SNMP-ACL-Datei angegeben, obwohl com.sun.management.snmp.acl auf "true" gesetzt ist
-agent.err.acl.file.notfound = SNMP-ACL-Datei konnte nicht gefunden werden
-agent.err.acl.file.not.readable = SNMP-ACL-Datei kann nicht gelesen werden
-agent.err.acl.file.read.failed = SNMP-ACL-Datei konnte nicht gelesen werden
-agent.err.acl.file.access.notrestricted = Lesezugriff auf Kennwortdatei muss eingeschr\u00E4nkt werden
-
-agent.err.snmp.adaptor.start.failed = Fehler beim Starten des SNMP-Adaptors mit Adresse
-agent.err.snmp.mib.init.failed = Initialisierung von SNMP-MIB nicht erfolgreich mit Fehler
jmxremote.ConnectorBootstrap.starting = JMX-Connector-Server starten:
jmxremote.ConnectorBootstrap.noAuthentication = Keine Authentifizierung
jmxremote.ConnectorBootstrap.ready = JMX-Connector bereit unter: {0}
jmxremote.ConnectorBootstrap.password.readonly = Lesezugriff auf Kennwortdatei muss eingeschr\u00E4nkt werden: {0}
jmxremote.ConnectorBootstrap.file.readonly = Lesezugriff auf Datei muss eingeschr\u00E4nkt werden: {0}
-
-jmxremote.AdaptorBootstrap.getTargetList.processing = ACL wird verarbeitet
-jmxremote.AdaptorBootstrap.getTargetList.adding = Ziel hinzuf\u00FCgen: {0}
-jmxremote.AdaptorBootstrap.getTargetList.starting = Adaptor-Server starten:
-jmxremote.AdaptorBootstrap.getTargetList.initialize1 = Adaptor bereit.
-jmxremote.AdaptorBootstrap.getTargetList.initialize2 = SNMP-Adaptor bereit unter: {0}:{1}
-jmxremote.AdaptorBootstrap.getTargetList.terminate = {0} beenden
--- a/jdk/src/java.management/share/classes/sun/management/resources/agent_es.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.management/share/classes/sun/management/resources/agent_es.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,5 @@
#
-#
-# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,9 +23,6 @@
# questions.
#
-# Localizations for Level names. For the US locale
-# these are the same as the non-localized level name.
-
agent.err.error = Error
agent.err.exception = Excepci\u00F3n devuelta por el agente
agent.err.warning = Advertencia
@@ -43,7 +39,7 @@
agent.err.premain.notfound = premain(String) no existe en la clase del agente
agent.err.agentclass.access.denied = Acceso denegado a premain(String)
agent.err.invalid.agentclass = Valor de propiedad com.sun.management.agent.class no v\u00E1lido
-agent.err.invalid.state = Estado del agente no v\u00E1lido
+agent.err.invalid.state = Estado de agente no v\u00E1lido: {0}
agent.err.invalid.jmxremote.port = N\u00FAmero com.sun.management.jmxremote.port no v\u00E1lido
agent.err.invalid.jmxremote.rmi.port = N\u00FAmero com.sun.management.jmxremote.rmi.port no v\u00E1lido
@@ -67,27 +63,9 @@
agent.err.connector.server.io.error = Error de comunicaci\u00F3n con el servidor de conector JMX
agent.err.invalid.option = Opci\u00F3n especificada no v\u00E1lida
-agent.err.invalid.snmp.port = N\u00FAmero de com.sun.management.snmp.port no v\u00E1lido
-agent.err.invalid.snmp.trap.port = N\u00FAmero de com.sun.management.snmp.trap no v\u00E1lido
-agent.err.unknown.snmp.interface = Interfaz SNMP desconocida
-agent.err.acl.file.notset = No se ha especificado ning\u00FAn archivo ACL de SNMP, pero com.sun.management.snmp.acl=true
-agent.err.acl.file.notfound = Archivo ACL de SNMP no encontrado
-agent.err.acl.file.not.readable = No se puede leer el archivo ACL de SNMP
-agent.err.acl.file.read.failed = Fallo al leer el archivo ACL de SNMP
-agent.err.acl.file.access.notrestricted = Se debe restringir el acceso de lectura al archivo de contrase\u00F1as
-
-agent.err.snmp.adaptor.start.failed = Fallo al iniciar el adaptador de SNMP con la direcci\u00F3n
-agent.err.snmp.mib.init.failed = Fallo al inicializar el MIB de SNMP con error
jmxremote.ConnectorBootstrap.starting = Iniciando servidor de conector JMX:
jmxremote.ConnectorBootstrap.noAuthentication = Sin autenticaci\u00F3n
jmxremote.ConnectorBootstrap.ready = Conector JMX listo en: {0}
jmxremote.ConnectorBootstrap.password.readonly = Se debe restringir el acceso de lectura al archivo de contrase\u00F1as: {0}
jmxremote.ConnectorBootstrap.file.readonly = El acceso de lectura al archivo debe ser restringido: {0}
-
-jmxremote.AdaptorBootstrap.getTargetList.processing = Procesando ACL
-jmxremote.AdaptorBootstrap.getTargetList.adding = Agregando destino: {0}
-jmxremote.AdaptorBootstrap.getTargetList.starting = Iniciando servidor de adaptador:
-jmxremote.AdaptorBootstrap.getTargetList.initialize1 = Adaptador listo.
-jmxremote.AdaptorBootstrap.getTargetList.initialize2 = Adaptador SNMP listo en: {0}:{1}
-jmxremote.AdaptorBootstrap.getTargetList.terminate = terminar {0}
--- a/jdk/src/java.management/share/classes/sun/management/resources/agent_fr.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.management/share/classes/sun/management/resources/agent_fr.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,5 @@
#
-#
-# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,9 +23,6 @@
# questions.
#
-# Localizations for Level names. For the US locale
-# these are the same as the non-localized level name.
-
agent.err.error = Erreur
agent.err.exception = Exception envoy\u00E9e par l'agent
agent.err.warning = Avertissement
@@ -43,7 +39,7 @@
agent.err.premain.notfound = premain(String) n'existe pas dans la classe d'agents
agent.err.agentclass.access.denied = Acc\u00E8s \u00E0 premain(String) refus\u00E9
agent.err.invalid.agentclass = Valeur de propri\u00E9t\u00E9 com.sun.management.agent.class incorrecte
-agent.err.invalid.state = Etat de l'agent non valide
+agent.err.invalid.state = Etat de l''agent non valide : {0}
agent.err.invalid.jmxremote.port = Num\u00E9ro com.sun.management.jmxremote.port incorrect
agent.err.invalid.jmxremote.rmi.port = Num\u00E9ro com.sun.management.jmxremote.rmi.port non valide
@@ -67,27 +63,9 @@
agent.err.connector.server.io.error = Erreur de communication avec le serveur du connecteur JMX
agent.err.invalid.option = Option sp\u00E9cifi\u00E9e non valide
-agent.err.invalid.snmp.port = Num\u00E9ro com.sun.management.snmp.port incorrect
-agent.err.invalid.snmp.trap.port = Num\u00E9ro com.sun.management.snmp.trap incorrect
-agent.err.unknown.snmp.interface = Interface SNMP inconnue
-agent.err.acl.file.notset = Aucun fichier de liste de contr\u00F4le d'acc\u00E8s (ACL) SNMP n'est sp\u00E9cifi\u00E9 mais com.sun.management.snmp.acl=true
-agent.err.acl.file.notfound = Fichier de liste de contr\u00F4le d'acc\u00E8s (ACL) SNMP introuvable
-agent.err.acl.file.not.readable = Fichier de liste de contr\u00F4le d'acc\u00E8s (ACL) SNMP illisible
-agent.err.acl.file.read.failed = Impossible de lire le fichier de liste de contr\u00F4le d'acc\u00E8s (ACL) SNMP
-agent.err.acl.file.access.notrestricted = L'acc\u00E8s en lecture au fichier de mots de passe doit \u00EAtre limit\u00E9
-
-agent.err.snmp.adaptor.start.failed = Impossible de d\u00E9marrer l'adaptateur SNMP avec l'adresse
-agent.err.snmp.mib.init.failed = Impossible d'initialiser SNMP MIB avec l'erreur
jmxremote.ConnectorBootstrap.starting = D\u00E9marrage du serveur du connecteur JMX :
jmxremote.ConnectorBootstrap.noAuthentication = Pas d'authentification
jmxremote.ConnectorBootstrap.ready = Connecteur JMX pr\u00EAt \u00E0 : {0}
jmxremote.ConnectorBootstrap.password.readonly = L''acc\u00E8s en lecture au fichier de mots de passe doit \u00EAtre limit\u00E9 : {0}
jmxremote.ConnectorBootstrap.file.readonly = L''acc\u00E8s en lecture au fichier doit \u00EAtre limit\u00E9 : {0}
-
-jmxremote.AdaptorBootstrap.getTargetList.processing = Traitement de la liste de contr\u00F4le d'acc\u00E8s (ACL)
-jmxremote.AdaptorBootstrap.getTargetList.adding = Ajout de la cible : {0}
-jmxremote.AdaptorBootstrap.getTargetList.starting = D\u00E9marrage du serveur de l'adaptateur :
-jmxremote.AdaptorBootstrap.getTargetList.initialize1 = Adaptateur pr\u00EAt.
-jmxremote.AdaptorBootstrap.getTargetList.initialize2 = Adaptateur SNMP pr\u00EAt sur : {0}:{1}
-jmxremote.AdaptorBootstrap.getTargetList.terminate = terminer {0}
--- a/jdk/src/java.management/share/classes/sun/management/resources/agent_it.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.management/share/classes/sun/management/resources/agent_it.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,5 @@
#
-#
-# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,9 +23,6 @@
# questions.
#
-# Localizations for Level names. For the US locale
-# these are the same as the non-localized level name.
-
agent.err.error = Errore
agent.err.exception = Eccezione dell'agente
agent.err.warning = Avvertenza
@@ -43,7 +39,7 @@
agent.err.premain.notfound = premain(String) non esiste nella classe agente
agent.err.agentclass.access.denied = Accesso negato a premain(String)
agent.err.invalid.agentclass = Valore propriet\u00E0 com.sun.management.agent.class non valido
-agent.err.invalid.state = Stato agente non valido
+agent.err.invalid.state = Stato agente non valido: {0}
agent.err.invalid.jmxremote.port = Numero com.sun.management.jmxremote.port non valido
agent.err.invalid.jmxremote.rmi.port = Numero com.sun.management.jmxremote.rmi.port non valido
@@ -67,27 +63,9 @@
agent.err.connector.server.io.error = Errore di comunicazione server del connettore JMX
agent.err.invalid.option = Specificata opzione non valida
-agent.err.invalid.snmp.port = Numero com.sun.management.snmp.port non valido
-agent.err.invalid.snmp.trap.port = Numero com.sun.management.snmp.trap non valido
-agent.err.unknown.snmp.interface = Interfaccia SNMP sconosciuta
-agent.err.acl.file.notset = Nessun file SNMP ACL specificato ma com.sun.management.snmp.acl=true
-agent.err.acl.file.notfound = File SNMP ACL non trovato
-agent.err.acl.file.not.readable = File SNMP ACL non leggibile
-agent.err.acl.file.read.failed = Errore di lettura file SNMP ACL
-agent.err.acl.file.access.notrestricted = Limitare l'accesso in lettura al password file
-
-agent.err.snmp.adaptor.start.failed = Impossibile avviare l'adattatore SNMP con indirizzo
-agent.err.snmp.mib.init.failed = Impossibile inizializzare MIB SNMP con errore
jmxremote.ConnectorBootstrap.starting = Avvio del server connettore JMX:
jmxremote.ConnectorBootstrap.noAuthentication = Nessuna autenticazione
jmxremote.ConnectorBootstrap.ready = Connettore JMX pronto in: {0}
jmxremote.ConnectorBootstrap.password.readonly = Limitare l''accesso in lettura al password file: {0}
jmxremote.ConnectorBootstrap.file.readonly = Limitare l''accesso in lettura al file: {0}
-
-jmxremote.AdaptorBootstrap.getTargetList.processing = Elaborazione ACL
-jmxremote.AdaptorBootstrap.getTargetList.adding = Aggiunta destinazione: {0}
-jmxremote.AdaptorBootstrap.getTargetList.starting = Avvio del server adattatore:
-jmxremote.AdaptorBootstrap.getTargetList.initialize1 = Adattatore pronto.
-jmxremote.AdaptorBootstrap.getTargetList.initialize2 = Adattatore SNMP pronto in: {0}:{1}
-jmxremote.AdaptorBootstrap.getTargetList.terminate = interrompere {0}
--- a/jdk/src/java.management/share/classes/sun/management/resources/agent_ja.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.management/share/classes/sun/management/resources/agent_ja.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,5 @@
#
-#
-# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,9 +23,6 @@
# questions.
#
-# Localizations for Level names. For the US locale
-# these are the same as the non-localized level name.
-
agent.err.error = \u30A8\u30E9\u30FC
agent.err.exception = \u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u304C\u4F8B\u5916\u3092\u30B9\u30ED\u30FC\u3057\u307E\u3057\u305F
agent.err.warning = \u8B66\u544A
@@ -36,14 +32,14 @@
agent.err.configfile.closed.failed = \u69CB\u6210\u30D5\u30A1\u30A4\u30EB\u3092\u9589\u3058\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
agent.err.configfile.access.denied = \u69CB\u6210\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F
-agent.err.exportaddress.failed = JMX\u30B3\u30CD\u30AF\u30BF\u30FB\u30A2\u30C9\u30EC\u30B9\u306E\u8A08\u6E2C\u30D0\u30C3\u30D5\u30A1\u3078\u306E\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F
+agent.err.exportaddress.failed = JMX\u30B3\u30CD\u30AF\u30BF\u30FB\u30A2\u30C9\u30EC\u30B9\u306E\u8A08\u6E2C\u30D0\u30C3\u30D5\u30A1\u3078\u306E\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u304C\u5931\u6557\u3057\u307E\u3057\u305F
agent.err.agentclass.notfound = \u7BA1\u7406\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
agent.err.agentclass.failed = \u7BA1\u7406\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30AF\u30E9\u30B9\u304C\u5931\u6557\u3057\u307E\u3057\u305F
agent.err.premain.notfound = premain(String)\u304C\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30AF\u30E9\u30B9\u306B\u5B58\u5728\u3057\u307E\u305B\u3093
agent.err.agentclass.access.denied = premain(String)\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F
agent.err.invalid.agentclass = com.sun.management.agent.class\u30D7\u30ED\u30D1\u30C6\u30A3\u306E\u5024\u304C\u7121\u52B9\u3067\u3059
-agent.err.invalid.state = \u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306E\u72B6\u614B\u304C\u7121\u52B9\u3067\u3059
+agent.err.invalid.state = \u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306E\u72B6\u614B\u304C\u7121\u52B9\u3067\u3059: {0}
agent.err.invalid.jmxremote.port = com.sun.management.jmxremote.port\u306E\u756A\u53F7\u304C\u7121\u52B9\u3067\u3059
agent.err.invalid.jmxremote.rmi.port = com.sun.management.jmxremote.rmi.port\u306E\u756A\u53F7\u304C\u7121\u52B9\u3067\u3059
@@ -67,27 +63,9 @@
agent.err.connector.server.io.error = JMX\u30B3\u30CD\u30AF\u30BF\u30FB\u30B5\u30FC\u30D0\u30FC\u306E\u901A\u4FE1\u30A8\u30E9\u30FC
agent.err.invalid.option = \u7121\u52B9\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F
-agent.err.invalid.snmp.port = com.sun.management.snmp.port\u306E\u756A\u53F7\u304C\u7121\u52B9\u3067\u3059
-agent.err.invalid.snmp.trap.port = com.sun.management.snmp.trap\u306E\u756A\u53F7\u304C\u7121\u52B9\u3067\u3059
-agent.err.unknown.snmp.interface = \u4E0D\u660E\u306ASNMP\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059
-agent.err.acl.file.notset = SNMP ACL\u30D5\u30A1\u30A4\u30EB\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u304C\u3001com.sun.management.snmp.acl=true\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059
-agent.err.acl.file.notfound = SNMP ACL\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
-agent.err.acl.file.not.readable = SNMP ACL\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u53D6\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093
-agent.err.acl.file.read.failed = SNMP ACL\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u53D6\u308A\u306B\u5931\u6557\u3057\u307E\u3057\u305F
-agent.err.acl.file.access.notrestricted = \u30D1\u30B9\u30EF\u30FC\u30C9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u53D6\u308A\u30A2\u30AF\u30BB\u30B9\u306F\u5236\u9650\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
-
-agent.err.snmp.adaptor.start.failed = \u3053\u306E\u30A2\u30C9\u30EC\u30B9\u3067SNMP\u30A2\u30C0\u30D7\u30BF\u3092\u958B\u59CB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
-agent.err.snmp.mib.init.failed = \u30A8\u30E9\u30FC\u3067SNMP MIB\u3092\u521D\u671F\u5316\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
jmxremote.ConnectorBootstrap.starting = JMX\u30B3\u30CD\u30AF\u30BF\u30FB\u30B5\u30FC\u30D0\u30FC\u3092\u8D77\u52D5\u3057\u3066\u3044\u307E\u3059:
jmxremote.ConnectorBootstrap.noAuthentication = \u8A8D\u8A3C\u306A\u3057
jmxremote.ConnectorBootstrap.ready = JMX\u30B3\u30CD\u30AF\u30BF\u306E\u6E96\u5099\u304C\u3067\u304D\u307E\u3057\u305F: {0}
jmxremote.ConnectorBootstrap.password.readonly = \u30D1\u30B9\u30EF\u30FC\u30C9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u53D6\u308A\u30A2\u30AF\u30BB\u30B9\u306F\u5236\u9650\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059: {0}
jmxremote.ConnectorBootstrap.file.readonly = \u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u53D6\u308A\u30A2\u30AF\u30BB\u30B9\u306F\u5236\u9650\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059: {0}
-
-jmxremote.AdaptorBootstrap.getTargetList.processing = ACL\u3092\u51E6\u7406\u3057\u3066\u3044\u307E\u3059
-jmxremote.AdaptorBootstrap.getTargetList.adding = \u30BF\u30FC\u30B2\u30C3\u30C8\u3092\u8FFD\u52A0\u3057\u3066\u3044\u307E\u3059: {0}
-jmxremote.AdaptorBootstrap.getTargetList.starting = \u30A2\u30C0\u30D7\u30BF\u30FB\u30B5\u30FC\u30D0\u30FC\u3092\u8D77\u52D5\u3057\u3066\u3044\u307E\u3059:
-jmxremote.AdaptorBootstrap.getTargetList.initialize1 = \u30A2\u30C0\u30D7\u30BF\u306E\u6E96\u5099\u304C\u3067\u304D\u307E\u3057\u305F\u3002
-jmxremote.AdaptorBootstrap.getTargetList.initialize2 = SNMP\u30A2\u30C0\u30D7\u30BF\u306E\u6E96\u5099\u304C\u3067\u304D\u307E\u3057\u305F: {0}:{1}
-jmxremote.AdaptorBootstrap.getTargetList.terminate = {0}\u3092\u7D42\u4E86\u3057\u307E\u3059
--- a/jdk/src/java.management/share/classes/sun/management/resources/agent_ko.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.management/share/classes/sun/management/resources/agent_ko.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,5 @@
#
-#
-# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,11 +23,8 @@
# questions.
#
-# Localizations for Level names. For the US locale
-# these are the same as the non-localized level name.
-
agent.err.error = \uC624\uB958
-agent.err.exception = \uC5D0\uC774\uC804\uD2B8\uC5D0 \uC608\uC678 \uC0AC\uD56D\uC774 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.
+agent.err.exception = \uC5D0\uC774\uC804\uD2B8\uC5D0 \uC608\uC678\uC0AC\uD56D\uC774 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.
agent.err.warning = \uACBD\uACE0
agent.err.configfile.notfound = \uAD6C\uC131 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
@@ -43,7 +39,7 @@
agent.err.premain.notfound = \uC5D0\uC774\uC804\uD2B8 \uD074\uB798\uC2A4\uC5D0 premain(\uBB38\uC790\uC5F4)\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
agent.err.agentclass.access.denied = premain(\uBB38\uC790\uC5F4)\uC5D0 \uB300\uD55C \uC561\uC138\uC2A4\uAC00 \uAC70\uBD80\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
agent.err.invalid.agentclass = com.sun.management.agent.class \uC18D\uC131 \uAC12\uC774 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
-agent.err.invalid.state = \uBD80\uC801\uD569\uD55C \uC5D0\uC774\uC804\uD2B8 \uC0C1\uD0DC
+agent.err.invalid.state = \uBD80\uC801\uD569\uD55C \uC5D0\uC774\uC804\uD2B8 \uC0C1\uD0DC: {0}
agent.err.invalid.jmxremote.port = com.sun.management.jmxremote.port \uBC88\uD638\uAC00 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
agent.err.invalid.jmxremote.rmi.port = \uBD80\uC801\uD569\uD55C com.sun.management.jmxremote.rmi.port \uBC88\uD638
@@ -67,27 +63,9 @@
agent.err.connector.server.io.error = JMX \uCEE4\uB125\uD130 \uC11C\uBC84 \uD1B5\uC2E0 \uC624\uB958
agent.err.invalid.option = \uBD80\uC801\uD569\uD55C \uC635\uC158\uC774 \uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
-agent.err.invalid.snmp.port = com.sun.management.snmp.port \uBC88\uD638\uAC00 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
-agent.err.invalid.snmp.trap.port = com.sun.management.snmp.trap \uBC88\uD638\uAC00 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
-agent.err.unknown.snmp.interface = \uC54C \uC218 \uC5C6\uB294 SNMP \uC778\uD130\uD398\uC774\uC2A4
-agent.err.acl.file.notset = SNMP ACL \uD30C\uC77C\uC774 \uC9C0\uC815\uB418\uC9C0 \uC54A\uC558\uC9C0\uB9CC com.sun.management.snmp.acl=true\uC785\uB2C8\uB2E4.
-agent.err.acl.file.notfound = SNMP ACL \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
-agent.err.acl.file.not.readable = SNMP ACL \uD30C\uC77C\uC744 \uC77D\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
-agent.err.acl.file.read.failed = SNMP ACL \uD30C\uC77C \uC77D\uAE30\uB97C \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
-agent.err.acl.file.access.notrestricted = \uBE44\uBC00\uBC88\uD638 \uD30C\uC77C \uC77D\uAE30 \uC561\uC138\uC2A4\uB294 \uC81C\uD55C\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
-
-agent.err.snmp.adaptor.start.failed = \uC8FC\uC18C\uAC00 \uC788\uB294 SNMP \uC5B4\uB311\uD130 \uC2DC\uC791\uC744 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
-agent.err.snmp.mib.init.failed = \uC624\uB958\uB85C \uC778\uD574 SNMP MIB \uCD08\uAE30\uD654\uB97C \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
jmxremote.ConnectorBootstrap.starting = JMX \uCEE4\uB125\uD130 \uC11C\uBC84\uB97C \uC2DC\uC791\uD558\uB294 \uC911:
jmxremote.ConnectorBootstrap.noAuthentication = \uC778\uC99D \uC5C6\uC74C
jmxremote.ConnectorBootstrap.ready = {0}\uC5D0\uC11C JMX \uCEE4\uB125\uD130\uAC00 \uC900\uBE44\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
jmxremote.ConnectorBootstrap.password.readonly = \uBE44\uBC00\uBC88\uD638 \uD30C\uC77C \uC77D\uAE30 \uC561\uC138\uC2A4\uB294 \uC81C\uD55C\uB418\uC5B4\uC57C \uD568: {0}
jmxremote.ConnectorBootstrap.file.readonly = \uD30C\uC77C \uC77D\uAE30 \uC561\uC138\uC2A4\uB294 \uC81C\uD55C\uB418\uC5B4\uC57C \uD568: {0}
-
-jmxremote.AdaptorBootstrap.getTargetList.processing = ACL\uC744 \uCC98\uB9AC\uD558\uB294 \uC911
-jmxremote.AdaptorBootstrap.getTargetList.adding = \uB300\uC0C1\uC744 \uCD94\uAC00\uD558\uB294 \uC911: {0}
-jmxremote.AdaptorBootstrap.getTargetList.starting = \uC5B4\uB311\uD130 \uC11C\uBC84\uB97C \uC2DC\uC791\uD558\uB294 \uC911:
-jmxremote.AdaptorBootstrap.getTargetList.initialize1 = \uC5B4\uB311\uD130\uAC00 \uC900\uBE44\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
-jmxremote.AdaptorBootstrap.getTargetList.initialize2 = {0}:{1}\uC5D0\uC11C SNMP \uC5B4\uB311\uD130\uAC00 \uC900\uBE44\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
-jmxremote.AdaptorBootstrap.getTargetList.terminate = {0} \uC885\uB8CC
--- a/jdk/src/java.management/share/classes/sun/management/resources/agent_pt_BR.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.management/share/classes/sun/management/resources/agent_pt_BR.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,5 @@
#
-#
-# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,9 +23,6 @@
# questions.
#
-# Localizations for Level names. For the US locale
-# these are the same as the non-localized level name.
-
agent.err.error = Erro
agent.err.exception = Exce\u00E7\u00E3o gerada pelo agente
agent.err.warning = Advert\u00EAncia
@@ -43,7 +39,7 @@
agent.err.premain.notfound = premain(String) n\u00E3o existe na classe do agente
agent.err.agentclass.access.denied = Acesso negado a premain(String)
agent.err.invalid.agentclass = Valor inv\u00E1lido da propriedade com.sun.management.agent.class
-agent.err.invalid.state = Estado de agente inv\u00E1lido
+agent.err.invalid.state = Estado inv\u00E1lido do agente: {0}
agent.err.invalid.jmxremote.port = N\u00FAmero inv\u00E1lido de com.sun.management.jmxremote.port
agent.err.invalid.jmxremote.rmi.port = N\u00FAmero inv\u00E1lido do com.sun.management.jmxremote.rmi.port
@@ -67,27 +63,9 @@
agent.err.connector.server.io.error = Erro de comunica\u00E7\u00E3o do servidor do conector JMX
agent.err.invalid.option = Op\u00E7\u00E3o especificada inv\u00E1lida
-agent.err.invalid.snmp.port = N\u00FAmero inv\u00E1lido de com.sun.management.snmp.port
-agent.err.invalid.snmp.trap.port = N\u00FAmero inv\u00E1lido de com.sun.management.snmp.trap
-agent.err.unknown.snmp.interface = Interface SNMP desconhecida
-agent.err.acl.file.notset = N\u00E3o h\u00E1 um arquivo ACL SNMP especificado, mas com.sun.management.snmp.acl=true
-agent.err.acl.file.notfound = Arquivo ACL SNMP n\u00E3o encontrado
-agent.err.acl.file.not.readable = Arquivo ACL SNMP ileg\u00EDvel
-agent.err.acl.file.read.failed = Falha ao ler o arquivo ACL SNMP
-agent.err.acl.file.access.notrestricted = O acesso de leitura do arquivo de senha deve ser limitado
-
-agent.err.snmp.adaptor.start.failed = Falha ao iniciar o adaptador SNMP com endere\u00E7o
-agent.err.snmp.mib.init.failed = Falha ao inicializar o MIB SNMP com erro
jmxremote.ConnectorBootstrap.starting = Iniciando o Servidor do Conector JMX:
jmxremote.ConnectorBootstrap.noAuthentication = Sem autentica\u00E7\u00E3o
jmxremote.ConnectorBootstrap.ready = Conector JMX pronto em: {0}
jmxremote.ConnectorBootstrap.password.readonly = O acesso de leitura do arquivo de senha deve ser limitado: {0}
jmxremote.ConnectorBootstrap.file.readonly = O acesso de leitura do arquivo deve ser limitado: {0}
-
-jmxremote.AdaptorBootstrap.getTargetList.processing = Processando ACL
-jmxremote.AdaptorBootstrap.getTargetList.adding = Adicionando destino: {0}
-jmxremote.AdaptorBootstrap.getTargetList.starting = Iniciando o Servidor do Adaptador:
-jmxremote.AdaptorBootstrap.getTargetList.initialize1 = Adaptador pronto.
-jmxremote.AdaptorBootstrap.getTargetList.initialize2 = Adaptador SNMP pronto em: {0}:{1}
-jmxremote.AdaptorBootstrap.getTargetList.terminate = encerrar {0}
--- a/jdk/src/java.management/share/classes/sun/management/resources/agent_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.management/share/classes/sun/management/resources/agent_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,5 @@
#
-#
-# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,9 +23,6 @@
# questions.
#
-# Localizations for Level names. For the US locale
-# these are the same as the non-localized level name.
-
agent.err.error = Fel
agent.err.exception = Agenten orsakade ett undantag
agent.err.warning = Varning
@@ -43,7 +39,7 @@
agent.err.premain.notfound = premain(String) finns inte i agentklassen
agent.err.agentclass.access.denied = \u00C5tkomst till premain(String) nekad
agent.err.invalid.agentclass = Ogiltigt egenskapsv\u00E4rde f\u00F6r com.sun.management.agent.class
-agent.err.invalid.state = Ogiltig agentstatus
+agent.err.invalid.state = Ogiltig agentstatus: {0}
agent.err.invalid.jmxremote.port = Ogiltigt com.sun.management.jmxremote.port-nummer
agent.err.invalid.jmxremote.rmi.port = Ogiltigt com.sun.management.jmxremote.rmi.port-nummer
@@ -67,27 +63,9 @@
agent.err.connector.server.io.error = Serverkommunikationsfel f\u00F6r JMX-anslutning
agent.err.invalid.option = Det angivna alternativet \u00E4r ogiltigt
-agent.err.invalid.snmp.port = Ogiltigt com.sun.management.snmp.port-nummer
-agent.err.invalid.snmp.trap.port = Ogiltigt com.sun.management.snmp.trap-nummer
-agent.err.unknown.snmp.interface = Ok\u00E4nt SNMP-gr\u00E4nssnitt
-agent.err.acl.file.notset = Ingen SNMP ACL-fil har angetts, men com.sun.management.snmp.acl=true
-agent.err.acl.file.notfound = SNMP ACL-filen hittades inte
-agent.err.acl.file.not.readable = SNMP ACL-filen \u00E4r inte l\u00E4sbar
-agent.err.acl.file.read.failed = Kunde inte l\u00E4sa filen SNMP ACL
-agent.err.acl.file.access.notrestricted = L\u00E4sbeh\u00F6righeten f\u00F6r filen m\u00E5ste begr\u00E4nsas
-
-agent.err.snmp.adaptor.start.failed = Kunde inte starta SNMP-adaptern med adressen
-agent.err.snmp.mib.init.failed = Kunde inte initiera SNMP MIB. Returnerade felet
jmxremote.ConnectorBootstrap.starting = Startar server f\u00F6r JMX-anslutning:
jmxremote.ConnectorBootstrap.noAuthentication = Ingen autentisering
jmxremote.ConnectorBootstrap.ready = JMX-anslutning redo p\u00E5: {0}
jmxremote.ConnectorBootstrap.password.readonly = L\u00E4sbeh\u00F6righeten f\u00F6r l\u00F6senordsfilen m\u00E5ste begr\u00E4nsas: {0}
jmxremote.ConnectorBootstrap.file.readonly = Fill\u00E4snings\u00E5tkomst m\u00E5ste begr\u00E4nsas {0}
-
-jmxremote.AdaptorBootstrap.getTargetList.processing = ACL bearbetas
-jmxremote.AdaptorBootstrap.getTargetList.adding = M\u00E5l l\u00E4ggs till: {0}
-jmxremote.AdaptorBootstrap.getTargetList.starting = Adapterservern startas:
-jmxremote.AdaptorBootstrap.getTargetList.initialize1 = Adaptern redo.
-jmxremote.AdaptorBootstrap.getTargetList.initialize2 = SNMP-adaptern redo p\u00E5: {0}:{1}
-jmxremote.AdaptorBootstrap.getTargetList.terminate = avsluta {0}
--- a/jdk/src/java.management/share/classes/sun/management/resources/agent_zh_CN.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.management/share/classes/sun/management/resources/agent_zh_CN.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,5 @@
#
-#
-# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,9 +23,6 @@
# questions.
#
-# Localizations for Level names. For the US locale
-# these are the same as the non-localized level name.
-
agent.err.error = \u9519\u8BEF
agent.err.exception = \u4EE3\u7406\u629B\u51FA\u5F02\u5E38\u9519\u8BEF
agent.err.warning = \u8B66\u544A
@@ -43,7 +39,7 @@
agent.err.premain.notfound = \u4EE3\u7406\u7C7B\u4E2D\u4E0D\u5B58\u5728 premain(String)
agent.err.agentclass.access.denied = \u62D2\u7EDD\u8BBF\u95EE premain(String)
agent.err.invalid.agentclass = com.sun.management.agent.class \u5C5E\u6027\u503C\u65E0\u6548
-agent.err.invalid.state = \u4EE3\u7406\u72B6\u6001\u65E0\u6548
+agent.err.invalid.state = \u65E0\u6548\u7684\u4EE3\u7406\u72B6\u6001: {0}
agent.err.invalid.jmxremote.port = com.sun.management.jmxremote.port \u7F16\u53F7\u65E0\u6548
agent.err.invalid.jmxremote.rmi.port = com.sun.management.jmxremote.rmi.port \u7F16\u53F7\u65E0\u6548
@@ -67,27 +63,9 @@
agent.err.connector.server.io.error = JMX \u8FDE\u63A5\u5668\u670D\u52A1\u5668\u901A\u4FE1\u9519\u8BEF
agent.err.invalid.option = \u6307\u5B9A\u7684\u9009\u9879\u65E0\u6548
-agent.err.invalid.snmp.port = com.sun.management.snmp.port number \u65E0\u6548
-agent.err.invalid.snmp.trap.port = com.sun.management.snmp.trap number \u65E0\u6548
-agent.err.unknown.snmp.interface = \u672A\u77E5 SNMP \u63A5\u53E3
-agent.err.acl.file.notset = \u672A\u6307\u5B9A SNMP ACL \u6587\u4EF6, \u4F46 com.sun.management.snmp.acl=true
-agent.err.acl.file.notfound = \u627E\u4E0D\u5230 SNMP ACL \u6587\u4EF6
-agent.err.acl.file.not.readable = SNMP ACL \u6587\u4EF6\u4E0D\u53EF\u8BFB\u53D6
-agent.err.acl.file.read.failed = \u672A\u80FD\u8BFB\u53D6 SNMP ACL \u6587\u4EF6
-agent.err.acl.file.access.notrestricted = \u5FC5\u987B\u9650\u5236\u53E3\u4EE4\u6587\u4EF6\u8BFB\u53D6\u8BBF\u95EE\u6743\u9650
-
-agent.err.snmp.adaptor.start.failed = \u65E0\u6CD5\u542F\u52A8\u5E26\u6709\u5730\u5740\u7684 SNMP \u9002\u914D\u5668
-agent.err.snmp.mib.init.failed = \u65E0\u6CD5\u521D\u59CB\u5316\u5E26\u6709\u9519\u8BEF\u7684 SNMP MIB
jmxremote.ConnectorBootstrap.starting = \u6B63\u5728\u542F\u52A8 JMX \u8FDE\u63A5\u5668\u670D\u52A1\u5668:
jmxremote.ConnectorBootstrap.noAuthentication = \u65E0\u9A8C\u8BC1
jmxremote.ConnectorBootstrap.ready = \u4F4D\u4E8E{0}\u7684 JMX \u8FDE\u63A5\u5668\u5DF2\u5C31\u7EEA
jmxremote.ConnectorBootstrap.password.readonly = \u5FC5\u987B\u9650\u5236\u53E3\u4EE4\u6587\u4EF6\u8BFB\u53D6\u8BBF\u95EE\u6743\u9650: {0}
jmxremote.ConnectorBootstrap.file.readonly = \u5FC5\u987B\u9650\u5236\u6587\u4EF6\u8BFB\u53D6\u8BBF\u95EE\u6743\u9650: {0}
-
-jmxremote.AdaptorBootstrap.getTargetList.processing = \u6B63\u5728\u5904\u7406 ACL
-jmxremote.AdaptorBootstrap.getTargetList.adding = \u6B63\u5728\u6DFB\u52A0\u76EE\u6807: {0}
-jmxremote.AdaptorBootstrap.getTargetList.starting = \u6B63\u5728\u542F\u52A8\u9002\u914D\u5668\u670D\u52A1\u5668:
-jmxremote.AdaptorBootstrap.getTargetList.initialize1 = \u9002\u914D\u5668\u5C31\u7EEA\u3002
-jmxremote.AdaptorBootstrap.getTargetList.initialize2 = \u4F4D\u4E8E {0}:{1} \u7684 SNMP \u9002\u914D\u5668\u5C31\u7EEA
-jmxremote.AdaptorBootstrap.getTargetList.terminate = \u7EC8\u6B62{0}
--- a/jdk/src/java.management/share/classes/sun/management/resources/agent_zh_TW.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.management/share/classes/sun/management/resources/agent_zh_TW.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,5 @@
#
-#
-# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,17 +23,14 @@
# questions.
#
-# Localizations for Level names. For the US locale
-# these are the same as the non-localized level name.
-
agent.err.error = \u932F\u8AA4
agent.err.exception = \u4EE3\u7406\u7A0B\u5F0F\u767C\u751F\u7570\u5E38
agent.err.warning = \u8B66\u544A
-agent.err.configfile.notfound = \u627E\u4E0D\u5230\u914D\u7F6E\u6A94\u6848
-agent.err.configfile.failed = \u7121\u6CD5\u8B80\u53D6\u914D\u7F6E\u6A94\u6848
-agent.err.configfile.closed.failed = \u7121\u6CD5\u95DC\u9589\u914D\u7F6E\u6A94\u6848
-agent.err.configfile.access.denied = \u5B58\u53D6\u914D\u7F6E\u6A94\u6848\u906D\u5230\u62D2\u7D55
+agent.err.configfile.notfound = \u627E\u4E0D\u5230\u8A2D\u5B9A\u6A94\u6848
+agent.err.configfile.failed = \u7121\u6CD5\u8B80\u53D6\u8A2D\u5B9A\u6A94\u6848
+agent.err.configfile.closed.failed = \u7121\u6CD5\u95DC\u9589\u8A2D\u5B9A\u6A94\u6848
+agent.err.configfile.access.denied = \u5B58\u53D6\u8A2D\u5B9A\u6A94\u6848\u906D\u5230\u62D2\u7D55
agent.err.exportaddress.failed = \u5C07 JMX \u9023\u63A5\u5668\u4F4D\u5740\u532F\u51FA\u81F3\u8A2D\u5099\u7DE9\u885D\u5340\u5931\u6557
@@ -43,7 +39,7 @@
agent.err.premain.notfound = \u4EE3\u7406\u7A0B\u5F0F\u985E\u5225\u4E2D\u4E0D\u5B58\u5728 premain(String)
agent.err.agentclass.access.denied = \u5B58\u53D6 premain(String) \u906D\u5230\u62D2\u7D55
agent.err.invalid.agentclass = com.sun.management.agent.class \u5C6C\u6027\u503C\u7121\u6548
-agent.err.invalid.state = \u7121\u6548\u7684\u4EE3\u7406\u7A0B\u5F0F\u72C0\u614B
+agent.err.invalid.state = \u7121\u6548\u7684\u4EE3\u7406\u7A0B\u5F0F\u72C0\u614B: {0}
agent.err.invalid.jmxremote.port = com.sun.management.jmxremote.port \u865F\u78BC\u7121\u6548
agent.err.invalid.jmxremote.rmi.port = com.sun.management.jmxremote.rmi.port \u865F\u78BC\u7121\u6548
@@ -67,27 +63,9 @@
agent.err.connector.server.io.error = JMX \u9023\u63A5\u5668\u4F3A\u670D\u5668\u901A\u8A0A\u932F\u8AA4
agent.err.invalid.option = \u6307\u5B9A\u7684\u9078\u9805\u7121\u6548
-agent.err.invalid.snmp.port = com.sun.management.snmp.port \u865F\u78BC\u7121\u6548
-agent.err.invalid.snmp.trap.port = com.sun.management.snmp.trap \u7DE8\u865F\u7121\u6548
-agent.err.unknown.snmp.interface = \u4E0D\u660E\u7684 SNMP \u4ECB\u9762
-agent.err.acl.file.notset = \u672A\u6307\u5B9A SNMP ACL \u6A94\u6848\uFF0C\u4F46 com.sun.management.snmp.acl=true
-agent.err.acl.file.notfound = \u627E\u4E0D\u5230 SNMP ACL \u6A94\u6848
-agent.err.acl.file.not.readable = SNMP ACL \u6A94\u6848\u7121\u6CD5\u8B80\u53D6
-agent.err.acl.file.read.failed = \u7121\u6CD5\u8B80\u53D6 SNMP ACL \u6A94\u6848
-agent.err.acl.file.access.notrestricted = \u5FC5\u9808\u9650\u5236\u5BC6\u78BC\u6A94\u6848\u8B80\u53D6\u5B58\u53D6
-
-agent.err.snmp.adaptor.start.failed = \u7121\u6CD5\u4F7F\u7528\u4F4D\u5740\u555F\u52D5 SNMP \u914D\u63A5\u5361
-agent.err.snmp.mib.init.failed = \u7121\u6CD5\u521D\u59CB\u5316 SNMP MIB\uFF0C\u51FA\u73FE\u932F\u8AA4
jmxremote.ConnectorBootstrap.starting = \u6B63\u5728\u555F\u52D5 JMX \u9023\u63A5\u5668\u4F3A\u670D\u5668:
jmxremote.ConnectorBootstrap.noAuthentication = \u7121\u8A8D\u8B49
jmxremote.ConnectorBootstrap.ready = JMX \u9023\u63A5\u5668\u5C31\u7DD2\uFF0C\u4F4D\u65BC: {0}
jmxremote.ConnectorBootstrap.password.readonly = \u5FC5\u9808\u9650\u5236\u5BC6\u78BC\u6A94\u6848\u8B80\u53D6\u5B58\u53D6: {0}
jmxremote.ConnectorBootstrap.file.readonly = \u5FC5\u9808\u9650\u5236\u6A94\u6848\u8B80\u53D6\u5B58\u53D6\u6B0A: {0}
-
-jmxremote.AdaptorBootstrap.getTargetList.processing = \u6B63\u5728\u8655\u7406 ACL
-jmxremote.AdaptorBootstrap.getTargetList.adding = \u6B63\u5728\u65B0\u589E\u76EE\u6A19: {0}
-jmxremote.AdaptorBootstrap.getTargetList.starting = \u6B63\u5728\u555F\u52D5\u914D\u63A5\u5361\u4F3A\u670D\u5668:
-jmxremote.AdaptorBootstrap.getTargetList.initialize1 = \u914D\u63A5\u5361\u5C31\u7DD2\u3002
-jmxremote.AdaptorBootstrap.getTargetList.initialize2 = SNMP \u914D\u63A5\u5361\u5C31\u7DD2\uFF0C\u4F4D\u65BC: {0}:{1}
-jmxremote.AdaptorBootstrap.getTargetList.terminate = \u7D42\u6B62 {0}
--- a/jdk/src/java.rmi/share/classes/sun/rmi/server/resources/rmid_ko.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.rmi/share/classes/sun/rmi/server/resources/rmid_ko.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,6 @@
#
#
-# Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
# {0} = the (string) reason text that came with a thrown exception
# "Activation.main" should not be translated, because it's a codepoint
-rmid.unexpected.exception=Activation.main: \uC608\uC678 \uC0AC\uD56D \uBC1C\uC0DD: {0}
+rmid.unexpected.exception=Activation.main: \uC608\uC678\uC0AC\uD56D \uBC1C\uC0DD: {0}
# "java.home" should not be translated, because it's a property name
# "ActivatorImpl" should not be translated, because it's a codepoint
@@ -60,7 +60,7 @@
rmid.exec.policy.invalid=Activation.main: \uC2E4\uD589 \uC815\uCC45 \uD074\uB798\uC2A4\uAC00 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
# "rmid" should not be translated
-rmid.exec.policy.exception=rmid: \uC2E4\uD589 \uC815\uCC45\uC744 \uAC00\uC838\uC624\uB824\uB294 \uC2DC\uB3C4\uB85C \uBC1C\uC0DD\uD55C \uC608\uC678 \uC0AC\uD56D:
+rmid.exec.policy.exception=rmid: \uC2E4\uD589 \uC815\uCC45\uC744 \uAC00\uC838\uC624\uB824\uB294 \uC2DC\uB3C4\uB85C \uBC1C\uC0DD\uD55C \uC608\uC678\uC0AC\uD56D:
# "rmid" should not be translated
rmid.exec.command=rmid: debugExec: "{0}" \uC2E4\uD589 \uC911
--- a/jdk/src/java.rmi/share/classes/sun/rmi/server/resources/rmid_zh_TW.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.rmi/share/classes/sun/rmi/server/resources/rmid_zh_TW.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,6 @@
#
#
-# Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -71,7 +71,7 @@
# "Activation.main", "sun.rmi.activation.execPolicy", "ExecPermission" and
# "ExecOptionPermission" should not be translated, since they refer to
# class/permission names.
-rmid.exec.perms.inadequate=Activation.main: \u8B66\u544A: sun.rmi.activation.execPolicy \u7CFB\u7D71\n\u5C6C\u6027\u672A\u6307\u5B9A\uFF0C\u4E26\u4E14\u672A\u6388\u4E88 ExecPermissions/ExecOptionPermissions; \n\u5F8C\u7E8C\u7684\u555F\u52D5\u5617\u8A66\u53EF\u80FD\u6703\u56E0\u70BA\u672A\u6210\u529F\u7684\nExecPermission/ExecOptionPermission \u6B0A\u9650\u6AA2\u67E5\u800C\u5931\u6557\u3002\u5982\u9700\n\u95DC\u65BC\u5982\u4F55\u914D\u7F6E rmid \u5B89\u5168\u7684\u8AAA\u660E\u6587\u4EF6\uFF0C\u8ACB\u53C3\u8003:\n\nhttp://java.sun.com/j2se/1.4/docs/tooldocs/solaris/rmid.html\nhttp://java.sun.com/j2se/1.4/docs/tooldocs/win32/rmid.html\n
+rmid.exec.perms.inadequate=Activation.main: \u8B66\u544A: sun.rmi.activation.execPolicy \u7CFB\u7D71\n\u5C6C\u6027\u672A\u6307\u5B9A\uFF0C\u4E26\u4E14\u672A\u6388\u4E88 ExecPermissions/ExecOptionPermissions; \n\u5F8C\u7E8C\u7684\u555F\u52D5\u5617\u8A66\u53EF\u80FD\u6703\u56E0\u70BA\u672A\u6210\u529F\u7684\nExecPermission/ExecOptionPermission \u6B0A\u9650\u6AA2\u67E5\u800C\u5931\u6557\u3002\u5982\u9700\n\u95DC\u65BC\u5982\u4F55\u8A2D\u5B9A rmid \u5B89\u5168\u7684\u8AAA\u660E\u6587\u4EF6\uFF0C\u8ACB\u53C3\u8003:\n\nhttp://java.sun.com/j2se/1.4/docs/tooldocs/solaris/rmid.html\nhttp://java.sun.com/j2se/1.4/docs/tooldocs/win32/rmid.html\n
# "rmid", "-port", "-log", "-stop", "-C" and "-J" should not be translated,
# because they are syntax
--- a/jdk/src/java.sql.rowset/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.sql.rowset/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,7 @@
cachedrowsetimpl.accfailed = acceptChanges nicht erfolgreich
cachedrowsetimpl.invalidcp = Ung\u00FCltige Cursorposition
cachedrowsetimpl.illegalop = Ung\u00FCltiger Vorgang bei nicht eingef\u00FCgter Zeile
-cachedrowsetimpl.clonefail = Clonen nicht erfolgreich: {0}
+cachedrowsetimpl.clonefail = Klonen nicht erfolgreich: {0}
cachedrowsetimpl.invalidcol = Ung\u00FCltiger Spaltenindex
cachedrowsetimpl.invalcolnm = Ung\u00FCltiger Spaltenname
cachedrowsetimpl.boolfail = getBoolen bei Wert ( {0} ) in Spalte {1} nicht erfolgreich
@@ -140,7 +140,7 @@
#WebRowSetXmlReader exception
wrsxmlreader.invalidcp = Ende von RowSet wurde erreicht. Ung\u00FCltige Cursorposition
wrsxmlreader.readxml = readXML: {0}
-wrsxmlreader.parseerr = ** Parsing-Fehler: {0}, Zeile: {1} , URI: {2}
+wrsxmlreader.parseerr = ** Parsingfehler: {0}, Zeile: {1} , URI: {2}
#WebRowSetXmlWriter exceptions
wrsxmlwriter.ioex = IOException: {0}
--- a/jdk/src/java.sql.rowset/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.sql.rowset/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -51,8 +51,8 @@
cachedrowsetimpl.last = last: TYPE_FORWARD_ONLY
cachedrowsetimpl.absolute = absolute: \u7121\u52B9\u306A\u30AB\u30FC\u30BD\u30EB\u4F4D\u7F6E
cachedrowsetimpl.relative = relative: \u7121\u52B9\u306A\u30AB\u30FC\u30BD\u30EB\u4F4D\u7F6E
-cachedrowsetimpl.asciistream = ascii\u30B9\u30C8\u30EA\u30FC\u30E0\u306E\u8AAD\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F
-cachedrowsetimpl.binstream = \u30D0\u30A4\u30CA\u30EA\u30FB\u30B9\u30C8\u30EA\u30FC\u30E0\u306E\u8AAD\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F
+cachedrowsetimpl.asciistream = ascii\u30B9\u30C8\u30EA\u30FC\u30E0\u306E\u8AAD\u8FBC\u307F\u304C\u5931\u6557\u3057\u307E\u3057\u305F
+cachedrowsetimpl.binstream = \u30D0\u30A4\u30CA\u30EA\u30FB\u30B9\u30C8\u30EA\u30FC\u30E0\u306E\u8AAD\u8FBC\u307F\u304C\u5931\u6557\u3057\u307E\u3057\u305F
cachedrowsetimpl.failedins = \u884C\u306E\u633F\u5165\u306B\u5931\u6557
cachedrowsetimpl.updateins = \u633F\u5165\u884C\u306B\u304A\u3044\u3066updateRow\u304C\u547C\u3073\u51FA\u3055\u308C\u307E\u3057\u305F
cachedrowsetimpl.movetoins = moveToInsertRow: CONCUR_READ_ONLY
@@ -101,7 +101,7 @@
#JdbcRowSetImpl exceptions
jdbcrowsetimpl.invalstate = \u7121\u52B9\u306A\u72B6\u614B
-jdbcrowsetimpl.connect = JdbcRowSet(connect): JNDI\u304C\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093
+jdbcrowsetimpl.connect = JdbcRowSet (connect): JNDI\u304C\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093
jdbcrowsetimpl.paramtype = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30BF\u30A4\u30D7\u3092\u63A8\u5B9A\u3067\u304D\u307E\u305B\u3093
jdbcrowsetimpl.matchcols = \u4E00\u81F4\u5217\u304C\u5217\u306E\u30BB\u30C3\u30C8\u3068\u540C\u3058\u3067\u306F\u3042\u308A\u307E\u305B\u3093
jdbcrowsetimpl.setmatchcols = \u4E00\u81F4\u5217\u3092\u53D6\u5F97\u3059\u308B\u524D\u306B\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
--- a/jdk/src/java.sql.rowset/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.sql.rowset/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -52,11 +52,11 @@
cachedrowsetimpl.absolute = \uC808\uB300: \uCEE4\uC11C \uC704\uCE58\uAC00 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
cachedrowsetimpl.relative = \uC0C1\uB300: \uCEE4\uC11C \uC704\uCE58\uAC00 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
cachedrowsetimpl.asciistream = ASCII \uC2A4\uD2B8\uB9BC\uC5D0 \uB300\uD55C \uC77D\uAE30\uB97C \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
-cachedrowsetimpl.binstream = \uC774\uC9C4 \uC2A4\uD2B8\uB9BC\uC5D0\uC11C \uC77D\uAE30\uB97C \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
+cachedrowsetimpl.binstream = \uBC14\uC774\uB108\uB9AC \uC2A4\uD2B8\uB9BC\uC5D0\uC11C \uC77D\uAE30\uB97C \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
cachedrowsetimpl.failedins = \uD589 \uC0BD\uC785\uC744 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
cachedrowsetimpl.updateins = \uD589\uC744 \uC0BD\uC785\uD558\uB294 \uC911 updateRow\uAC00 \uD638\uCD9C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
cachedrowsetimpl.movetoins = moveToInsertRow: CONCUR_READ_ONLY
-cachedrowsetimpl.movetoins1 = moveToInsertRow: \uBA54\uD0C0 \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
+cachedrowsetimpl.movetoins1 = moveToInsertRow: \uBA54\uD0C0\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
cachedrowsetimpl.movetoins2 = moveToInsertRow: \uC5F4 \uC218\uAC00 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
cachedrowsetimpl.tablename = \uD14C\uC774\uBE14 \uC774\uB984\uC740 \uB110\uC77C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
cachedrowsetimpl.keycols = \uD0A4 \uC5F4\uC774 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
@@ -150,7 +150,7 @@
#XmlReaderContentHandler exceptions
xmlrch.errmap = \uB9F5\uC744 \uC124\uC815\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD: {0}
-xmlrch.errmetadata = \uBA54\uD0C0 \uB370\uC774\uD130\uB97C \uC124\uC815\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD: {0}
+xmlrch.errmetadata = \uBA54\uD0C0\uB370\uC774\uD130\uB97C \uC124\uC815\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD: {0}
xmlrch.errinsertval = \uAC12\uC744 \uC0BD\uC785\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD: {0}
xmlrch.errconstr = \uD589\uC744 \uC0DD\uC131\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD: {0}
xmlrch.errdel = \uD589\uC744 \uC0AD\uC81C\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD: {0}
@@ -160,7 +160,7 @@
xmlrch.errupdrow = \uD589\uC744 \uC5C5\uB370\uC774\uD2B8\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD: {0}
xmlrch.chars = \uBB38\uC790:
xmlrch.badvalue = \uC798\uBABB\uB41C \uAC12: \uB110\uC77C \uC218 \uC5C6\uB294 \uC18D\uC131\uC785\uB2C8\uB2E4.
-xmlrch.badvalue1 = \uC798\uBABB\uB41C \uAC12: \uB110\uC77C \uC218 \uC5C6\uB294 \uBA54\uD0C0 \uB370\uC774\uD130\uC785\uB2C8\uB2E4.
+xmlrch.badvalue1 = \uC798\uBABB\uB41C \uAC12: \uB110\uC77C \uC218 \uC5C6\uB294 \uBA54\uD0C0\uB370\uC774\uD130\uC785\uB2C8\uB2E4.
xmlrch.warning = ** \uACBD\uACE0: {0}, \uD589: {1}, URI: {2}
#RIOptimisticProvider Exceptions
--- a/jdk/src/java.sql.rowset/share/classes/com/sun/rowset/RowSetResourceBundle_pt_BR.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.sql.rowset/share/classes/com/sun/rowset/RowSetResourceBundle_pt_BR.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -153,7 +153,7 @@
xmlrch.errmetadata = Erro ao definir metadados : {0}
xmlrch.errinsertval = Erro ao inserir valores : {0}
xmlrch.errconstr = Erro ao construir a linha : {0}
-xmlrch.errdel = Erro ao deletar a linha : {0}
+xmlrch.errdel = Erro ao excluir a linha : {0}
xmlrch.errinsert = Erro ao construir a linha de inser\u00E7\u00E3o : {0}
xmlrch.errinsdel = Erro ao construir a linha insdel : {0}
xmlrch.errupdate = Erro ao construir a linha de atualiza\u00E7\u00E3o : {0}
--- a/jdk/src/java.sql.rowset/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/java.sql.rowset/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -29,11 +29,11 @@
cachedrowsetimpl.nullhash = Kan inte instansiera CachedRowSetImpl. Null-hashtabell skickades till konstruktor
cachedrowsetimpl.invalidop = En ogiltig \u00E5tg\u00E4rd utf\u00F6rdes p\u00E5 infogad rad
cachedrowsetimpl.accfailed = acceptChanges utf\u00F6rdes inte
-cachedrowsetimpl.invalidcp = Mark\u00F6rpositionen \u00E4r ogiltig
+cachedrowsetimpl.invalidcp = Ogiltigt mark\u00F6rl\u00E4ge
cachedrowsetimpl.illegalop = En otill\u00E5ten \u00E5tg\u00E4rd utf\u00F6rdes p\u00E5 en icke infogad rad
cachedrowsetimpl.clonefail = Kloningen utf\u00F6rdes inte: {0}
-cachedrowsetimpl.invalidcol = Kolumnindexet \u00E4r ogiltigt
-cachedrowsetimpl.invalcolnm = Kolumnnamnet \u00E4r ogiltigt
+cachedrowsetimpl.invalidcol = Ogiltigt kolumnindex
+cachedrowsetimpl.invalcolnm = Ogiltigt kolumnnamn
cachedrowsetimpl.boolfail = getBoolen utf\u00F6rdes inte f\u00F6r v\u00E4rdet ({0}) i kolumnen {1}
cachedrowsetimpl.bytefail = getByte utf\u00F6rdes inte f\u00F6r v\u00E4rdet ({0}) i kolumnen {1}
cachedrowsetimpl.shortfail = getShort utf\u00F6rdes inte f\u00F6r v\u00E4rdet ({0}) i kolumnen {1}
@@ -60,7 +60,7 @@
cachedrowsetimpl.movetoins2 = moveToInsertRow: ogiltigt antal kolumner
cachedrowsetimpl.tablename = Tabellnamnet kan inte vara null
cachedrowsetimpl.keycols = Ogiltiga nyckelkolumner
-cachedrowsetimpl.invalidcol = Kolumnindexet \u00E4r ogiltigt
+cachedrowsetimpl.invalidcol = Ogiltigt kolumnindex
cachedrowsetimpl.opnotsupp = Databasen har inte st\u00F6d f\u00F6r denna \u00E5tg\u00E4rd
cachedrowsetimpl.matchcols = Matchningskolumnerna \u00E4r inte samma som de som st\u00E4llts in
cachedrowsetimpl.setmatchcols = St\u00E4ll in matchningskolumnerna innan du h\u00E4mtar dem
@@ -77,11 +77,11 @@
cachedrowsetimpl.fwdonly = ResultSet kan endast g\u00E5 fram\u00E5t
cachedrowsetimpl.type = Typ: {0}
cachedrowsetimpl.opnotysupp = Det finns \u00E4nnu inget st\u00F6d f\u00F6r denna \u00E5tg\u00E4rd
-cachedrowsetimpl.featnotsupp = Det finns inget st\u00F6d f\u00F6r denna funktion
+cachedrowsetimpl.featnotsupp = Funktionen st\u00F6ds inte
# WebRowSetImpl exceptions
webrowsetimpl.nullhash = Kan inte instansiera WebRowSetImpl. Null-hashtabell skickades till konstruktor.
-webrowsetimpl.invalidwr = Ogiltig f\u00F6rfattare
+webrowsetimpl.invalidwr = Ogiltig skrivfunktion
webrowsetimpl.invalidrd = Ogiltig l\u00E4sare
#FilteredRowSetImpl exceptions
@@ -100,7 +100,7 @@
joinrowsetimpl.emptyrowset = Tomma radupps\u00E4ttningar kan inte l\u00E4ggas till i denna JoinRowSet
#JdbcRowSetImpl exceptions
-jdbcrowsetimpl.invalstate = Ogiltig status
+jdbcrowsetimpl.invalstate = Ogiltigt tillst\u00E5nd
jdbcrowsetimpl.connect = JdbcRowSet (anslut) JNDI kan inte anslutas
jdbcrowsetimpl.paramtype = Kan inte h\u00E4rleda parametertypen
jdbcrowsetimpl.matchcols = Matchningskolumnerna \u00E4r inte samma som de som st\u00E4llts in
@@ -112,7 +112,7 @@
jdbcrowsetimpl.usecolid = Anv\u00E4nd kolumn-id som argument f\u00F6r unsetMatchColumn
jdbcrowsetimpl.resnotupd = ResultSet \u00E4r inte uppdateringsbart
jdbcrowsetimpl.opnotysupp = Det finns \u00E4nnu inget st\u00F6d f\u00F6r denna \u00E5tg\u00E4rd
-jdbcrowsetimpl.featnotsupp = Det finns inget st\u00F6d f\u00F6r denna funktion
+jdbcrowsetimpl.featnotsupp = Funktionen st\u00F6ds inte
#CachedRowSetReader exceptions
crsreader.connect = (JNDI) kan inte anslutas
@@ -149,15 +149,15 @@
wsrxmlwriter.notproper = Ingen riktig typ
#XmlReaderContentHandler exceptions
-xmlrch.errmap = Fel uppstod vid inst\u00E4llning av mappning: {0}
-xmlrch.errmetadata = Fel uppstod vid inst\u00E4llning av metadata: {0}
-xmlrch.errinsertval = Fel uppstod vid infogning av v\u00E4rden: {0}
-xmlrch.errconstr = Fel uppstod vid konstruktion av rad: {0}
-xmlrch.errdel = Fel uppstod vid borttagning av rad: {0}
-xmlrch.errinsert = Fel uppstod vid konstruktion av infogad rad: {0}
-xmlrch.errinsdel = Fel uppstod vid konstruktion av insdel-rad: {0}
-xmlrch.errupdate = Fel uppstod vid konstruktion av uppdateringsrad: {0}
-xmlrch.errupdrow = Fel uppstod vid uppdatering av rad: {0}
+xmlrch.errmap = Ett fel intr\u00E4ffade vid inst\u00E4llning av mappning: {0}
+xmlrch.errmetadata = Ett fel intr\u00E4ffade vid inst\u00E4llning av metadata: {0}
+xmlrch.errinsertval = Ett fel intr\u00E4ffade vid infogning av v\u00E4rden: {0}
+xmlrch.errconstr = Ett fel intr\u00E4ffade vid konstruktion av rad: {0}
+xmlrch.errdel = Ett fel intr\u00E4ffade vid borttagning av rad: {0}
+xmlrch.errinsert = Ett fel intr\u00E4ffade vid konstruktion av infogad rad: {0}
+xmlrch.errinsdel = Ett fel intr\u00E4ffade vid konstruktion av insdel-rad: {0}
+xmlrch.errupdate = Ett fel intr\u00E4ffade vid konstruktion av uppdateringsrad: {0}
+xmlrch.errupdrow = Ett fel intr\u00E4ffade vid uppdatering av rad: {0}
xmlrch.chars = tecken:
xmlrch.badvalue = Felaktigt v\u00E4rde; egenskapen kan inte ha ett tomt v\u00E4rde
xmlrch.badvalue1 = Felaktigt v\u00E4rde; metadatan kan inte ha ett tomt v\u00E4rde
--- a/jdk/src/jdk.compiler/share/classes/sun/tools/serialver/resources/serialver_zh_CN.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.compiler/share/classes/sun/tools/serialver/resources/serialver_zh_CN.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,6 @@
NotSerializable=\u7C7B{0}\u65E0\u6CD5\u5E8F\u5217\u5316\u3002
ClassNotFound=\u627E\u4E0D\u5230\u7C7B{0}\u3002
-error.parsing.classpath=\u89E3\u6790\u7C7B\u8DEF\u5F84 {0} \u65F6\u51FA\u9519\u3002
+error.parsing.classpath=\u5BF9\u7C7B\u8DEF\u5F84 {0} \u8FDB\u884C\u89E3\u6790\u65F6\u51FA\u9519\u3002
error.missing.classpath=\u7F3A\u5C11 -classpath \u9009\u9879\u7684\u53C2\u6570
invalid.flag=\u65E0\u6548\u6807\u8BB0{0}\u3002
-usage=\u7528\u6CD5: serialver [-classpath \u7C7B\u8DEF\u5F84] [\u7C7B\u540D\u79F0...]
+usage=\u7528\u6CD5: serialver [-classpath classpath] [classname...]
--- a/jdk/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,6 +44,7 @@
{"signerClass.is.not.a.signing.mechanism", "{0}\u306F\u7F72\u540D\u30E1\u30AB\u30CB\u30BA\u30E0\u3067\u306F\u3042\u308A\u307E\u305B\u3093"},
{"jarsigner.error.", "jarsigner\u30A8\u30E9\u30FC: "},
{"Illegal.option.", "\u4E0D\u6B63\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: "},
+ {"This.option.is.deprecated", "\u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u975E\u63A8\u5968\u3067\u3059: "},
{".keystore.must.be.NONE.if.storetype.is.{0}",
"-storetype\u304C{0}\u306E\u5834\u5408\u3001-keystore\u306FNONE\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
{".keypass.can.not.be.specified.if.storetype.is.{0}",
@@ -73,7 +74,7 @@
{".digestalg.algorithm.name.of.digest.algorithm",
"[-digestalg <algorithm>] \u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306E\u540D\u524D"},
{".sigalg.algorithm.name.of.signature.algorithm",
- "[-sigalg <algorithm>] \u30B7\u30B0\u30CD\u30C1\u30E3\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306E\u540D\u524D"},
+ "[-sigalg <algorithm>] \u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306E\u540D\u524D"},
{".verify.verify.a.signed.JAR.file",
"[-verify] \u7F72\u540D\u4ED8\u304DJAR\u30D5\u30A1\u30A4\u30EB\u306E\u691C\u8A3C"},
{".verbose.suboptions.verbose.output.when.signing.verifying.",
@@ -88,12 +89,14 @@
"[-tsacert <alias>] \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306E\u516C\u958B\u9375\u8A3C\u660E\u66F8"},
{".tsapolicyid.tsapolicyid.for.Timestamping.Authority",
"[-tsapolicyid <oid>] \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306ETSAPolicyID"},
+ {".tsadigestalg.algorithm.of.digest.data.in.timestamping.request",
+ "[-tsadigestalg <algorithm>] \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u30FB\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u30FB\u30C7\u30FC\u30BF\u306E\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0"},
{".altsigner.class.class.name.of.an.alternative.signing.mechanism",
- "[-altsigner <class>] \u4EE3\u66FF\u7F72\u540D\u30E1\u30AB\u30CB\u30BA\u30E0\u306E\u30AF\u30E9\u30B9\u540D"},
+ "[-altsigner <class>] \u4EE3\u66FF\u7F72\u540D\u30E1\u30AB\u30CB\u30BA\u30E0\u306E\u30AF\u30E9\u30B9\u540D\n (\u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u975E\u63A8\u5968\u306B\u306A\u308A\u307E\u3057\u305F\u3002)"},
{".altsignerpath.pathlist.location.of.an.alternative.signing.mechanism",
- "[-altsignerpath <pathlist>] \u4EE3\u66FF\u7F72\u540D\u30E1\u30AB\u30CB\u30BA\u30E0\u306E\u5834\u6240"},
+ "[-altsignerpath <pathlist>] \u4EE3\u66FF\u7F72\u540D\u30E1\u30AB\u30CB\u30BA\u30E0\u306E\u5834\u6240\n (\u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u975E\u63A8\u5968\u306B\u306A\u308A\u307E\u3057\u305F\u3002)"},
{".internalsf.include.the.SF.file.inside.the.signature.block",
- "[-internalsf] \u30B7\u30B0\u30CD\u30C1\u30E3\u30FB\u30D6\u30ED\u30C3\u30AF\u306B.SF\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3081\u308B"},
+ "[-internalsf] \u7F72\u540D\u30D6\u30ED\u30C3\u30AF\u306B.SF\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3081\u308B"},
{".sectionsonly.don.t.compute.hash.of.entire.manifest",
"[-sectionsonly] \u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u5168\u4F53\u306E\u30CF\u30C3\u30B7\u30E5\u306F\u8A08\u7B97\u3057\u306A\u3044"},
{".protected.keystore.has.protected.authentication.path",
@@ -106,6 +109,8 @@
" [-providerArg <arg>]] ... \u30DE\u30B9\u30BF\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3068\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u5F15\u6570"},
{".strict.treat.warnings.as.errors",
"[-strict] \u8B66\u544A\u3092\u30A8\u30E9\u30FC\u3068\u3057\u3066\u51E6\u7406"},
+ {".conf.url.specify.a.pre.configured.options.file",
+ "[-conf <url>] \u4E8B\u524D\u69CB\u6210\u6E08\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3059\u308B"},
{"Option.lacks.argument", "\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u5F15\u6570\u304C\u3042\u308A\u307E\u305B\u3093"},
{"Please.type.jarsigner.help.for.usage", "\u4F7F\u7528\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306Fjarsigner -help\u3068\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"},
{"Please.specify.jarfile.name", "jarfile\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
@@ -121,7 +126,7 @@
{"i", "i"},
{".and.d.more.", "(\u4ED6\u306B\u3082%d\u500B)"},
{".s.signature.was.verified.",
- " s=\u30B7\u30B0\u30CD\u30C1\u30E3\u304C\u691C\u8A3C\u3055\u308C\u307E\u3057\u305F "},
+ " s=\u7F72\u540D\u304C\u691C\u8A3C\u3055\u308C\u307E\u3057\u305F "},
{".m.entry.is.listed.in.manifest",
" m=\u30A8\u30F3\u30C8\u30EA\u304C\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u5185\u306B\u30EA\u30B9\u30C8\u3055\u308C\u307E\u3059"},
{".k.at.least.one.certificate.was.found.in.keystore",
@@ -131,14 +136,17 @@
{".X.not.signed.by.specified.alias.es.",
" X =\u6307\u5B9A\u3057\u305F\u5225\u540D\u3067\u7F72\u540D\u3055\u308C\u3066\u3044\u307E\u305B\u3093"},
{"no.manifest.", "\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002"},
- {".Signature.related.entries.","(\u30B7\u30B0\u30CD\u30C1\u30E3\u95A2\u9023\u30A8\u30F3\u30C8\u30EA)"},
+ {".Signature.related.entries.","(\u7F72\u540D\u95A2\u9023\u30A8\u30F3\u30C8\u30EA)"},
{".Unsigned.entries.", "(\u672A\u7F72\u540D\u306E\u30A8\u30F3\u30C8\u30EA)"},
{"jar.is.unsigned.signatures.missing.or.not.parsable.",
- "jar\u306F\u7F72\u540D\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002(\u30B7\u30B0\u30CD\u30C1\u30E3\u304C\u898B\u3064\u304B\u3089\u306A\u3044\u304B\u3001\u69CB\u6587\u89E3\u6790\u3067\u304D\u307E\u305B\u3093)"},
+ "jar\u306F\u7F72\u540D\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002(\u7F72\u540D\u304C\u898B\u3064\u304B\u3089\u306A\u3044\u304B\u3001\u69CB\u6587\u89E3\u6790\u3067\u304D\u307E\u305B\u3093)"},
+ {"jar.signed.", "jar\u306F\u7F72\u540D\u3055\u308C\u307E\u3057\u305F\u3002"},
+ {"jar.signed.with.signer.errors.", "jar\u306F\u7F72\u540D\u3055\u308C\u307E\u3057\u305F - \u7F72\u540D\u8005\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3059\u3002"},
{"jar.verified.", "jar\u304C\u691C\u8A3C\u3055\u308C\u307E\u3057\u305F\u3002"},
+ {"jar.verified.with.signer.errors.", "jar\u306F\u691C\u8A3C\u3055\u308C\u307E\u3057\u305F - \u7F72\u540D\u8005\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3059\u3002"},
{"jarsigner.", "jarsigner: "},
{"signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.",
- "\u30B7\u30B0\u30CD\u30C1\u30E3\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u4F7F\u7528\u3067\u304D\u308B\u6587\u5B57\u306F\u3001A-Z\u30010-9\u3001_\u3001- \u306E\u307F\u3067\u3059\u3002"},
+ "\u7F72\u540D\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u4F7F\u7528\u3067\u304D\u308B\u6587\u5B57\u306F\u3001A-Z\u30010-9\u3001_\u3001- \u306E\u307F\u3067\u3059\u3002"},
{"unable.to.open.jar.file.", "\u6B21\u306Ejar\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093: "},
{"unable.to.create.", "\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093: "},
{".adding.", " \u8FFD\u52A0\u4E2D: "},
@@ -179,7 +187,7 @@
{"certificate.will.expire.on", "\u8A3C\u660E\u66F8\u306F{0}\u306B\u5931\u52B9\u3057\u307E\u3059"},
{".CertPath.not.validated.", "[CertPath\u304C\u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093: "},
{"requesting.a.signature.timestamp",
- "\u30B7\u30B0\u30CD\u30C1\u30E3\u30FB\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306E\u30EA\u30AF\u30A8\u30B9\u30C8"},
+ "\u7F72\u540D\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306E\u30EA\u30AF\u30A8\u30B9\u30C8"},
{"TSA.location.", "TSA\u306E\u5834\u6240: "},
{"TSA.certificate.", "TSA\u8A3C\u660E\u66F8: "},
{"no.response.from.the.Timestamping.Authority.",
@@ -191,6 +199,7 @@
"\u4EE3\u66FF\u7F72\u540D\u30E1\u30AB\u30CB\u30BA\u30E0\u306E\u4F7F\u7528"},
{"entry.was.signed.on", "\u30A8\u30F3\u30C8\u30EA\u306F{0}\u306B\u7F72\u540D\u3055\u308C\u307E\u3057\u305F"},
{"Warning.", "\u8B66\u544A: "},
+ {"Error.", "\u30A8\u30E9\u30FC: "},
{"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.",
"\u3053\u306Ejar\u306B\u306F\u3001\u6574\u5408\u6027\u30C1\u30A7\u30C3\u30AF\u3092\u3057\u3066\u3044\u306A\u3044\u672A\u7F72\u540D\u306E\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 "},
{"This.jar.contains.entries.whose.signer.certificate.has.expired.",
@@ -199,6 +208,8 @@
"\u3053\u306Ejar\u306B\u306F\u3001\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u304C6\u304B\u6708\u4EE5\u5185\u306B\u671F\u9650\u5207\u308C\u3068\u306A\u308B\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 "},
{"This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.",
"\u3053\u306Ejar\u306B\u306F\u3001\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u304C\u307E\u3060\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u306A\u3044\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 "},
+ {"This.jar.contains.entries.whose.signer.certificate.is.self.signed.",
+ "\u3053\u306Ejar\u306B\u306F\u3001\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u304C\u81EA\u5DF1\u7F72\u540D\u3055\u308C\u3066\u3044\u308B\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 "},
{"Re.run.with.the.verbose.option.for.more.details.",
"\u8A73\u7D30\u306F\u3001-verbose\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
{"Re.run.with.the.verbose.and.certs.options.for.more.details.",
@@ -223,10 +234,18 @@
"\u3053\u306Ejar\u306B\u306F\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306ENetscapeCertType\u62E1\u5F35\u6A5F\u80FD\u304C\u30B3\u30FC\u30C9\u7F72\u540D\u3092\u8A31\u53EF\u3057\u306A\u3044\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002"},
{".{0}.extension.does.not.support.code.signing.",
"[{0}\u62E1\u5F35\u6A5F\u80FD\u306F\u30B3\u30FC\u30C9\u7F72\u540D\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093]"},
- {"The.signer.s.certificate.chain.is.not.validated.",
- "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u307E\u3060\u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
- {"This.jar.contains.entries.whose.certificate.chain.is.not.validated.",
- "\u3053\u306Ejar\u306B\u306F\u3001\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u307E\u3060\u691C\u8A3C\u3055\u308C\u3066\u3044\u306A\u3044\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002"},
+ {"The.signer.s.certificate.chain.is.not.validated.reason.1",
+ "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u307E\u3060\u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u7406\u7531: %s"},
+ {"The.signer.s.certificate.is.self.signed.",
+ "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F\u81EA\u5DF1\u7F72\u540D\u3055\u308C\u3066\u3044\u307E\u3059\u3002"},
+ {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.",
+ "%1$s\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0(%2$s\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u6307\u5B9A)\u306F\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002"},
+ {"This.jar.contains.entries.whose.certificate.chain.is.not.validated.reason.1",
+ "\u3053\u306Ejar\u306B\u306F\u3001\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u307E\u3060\u691C\u8A3C\u3055\u308C\u3066\u3044\u306A\u3044\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u7406\u7531: %s"},
+ {"no.timestamp.signing",
+ "-tsa\u307E\u305F\u306F-tsacert\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u3053\u306Ejar\u306B\u306F\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u4ED8\u52A0\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650(%1$tY-%1$tm-%1$td)\u5F8C\u307E\u305F\u306F\u5C06\u6765\u306E\u5931\u52B9\u65E5\u5F8C\u306B\u3001\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
+ {"no.timestamp.verifying",
+ "\u3053\u306Ejar\u306B\u306F\u3001\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u7F72\u540D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650(%1$tY-%1$tm-%1$td)\u5F8C\u307E\u305F\u306F\u5C06\u6765\u306E\u5931\u52B9\u65E5\u5F8C\u306B\u3001\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
{"Unknown.password.type.", "\u4E0D\u660E\u306A\u30D1\u30B9\u30EF\u30FC\u30C9\u30FB\u30BF\u30A4\u30D7: "},
{"Cannot.find.environment.variable.",
"\u74B0\u5883\u5909\u6570\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: "},
--- a/jdk/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,6 +44,7 @@
{"signerClass.is.not.a.signing.mechanism", "{0}\u4E0D\u662F\u7B7E\u540D\u673A\u5236"},
{"jarsigner.error.", "jarsigner \u9519\u8BEF: "},
{"Illegal.option.", "\u975E\u6CD5\u9009\u9879: "},
+ {"This.option.is.deprecated", "\u6B64\u9009\u9879\u5DF2\u8FC7\u65F6: "},
{".keystore.must.be.NONE.if.storetype.is.{0}",
"\u5982\u679C -storetype \u4E3A {0}, \u5219 -keystore \u5FC5\u987B\u4E3A NONE"},
{".keypass.can.not.be.specified.if.storetype.is.{0}",
@@ -65,7 +66,7 @@
{".keypass.password.password.for.private.key.if.different.",
"[-keypass <\u53E3\u4EE4>] \u79C1\u6709\u5BC6\u94A5\u7684\u53E3\u4EE4 (\u5982\u679C\u4E0D\u540C)"},
{".certchain.file.name.of.alternative.certchain.file",
- "[-certchain <\u6587\u4EF6>] \u66FF\u4EE3 certchain \u6587\u4EF6\u7684\u540D\u79F0"},
+ "[-certchain <\u6587\u4EF6>] \u66FF\u4EE3\u8BC1\u4E66\u94FE\u6587\u4EF6\u7684\u540D\u79F0"},
{".sigfile.file.name.of.SF.DSA.file",
"[-sigfile <\u6587\u4EF6>] .SF/.DSA \u6587\u4EF6\u7684\u540D\u79F0"},
{".signedjar.file.name.of.signed.JAR.file",
@@ -88,10 +89,12 @@
"[-tsacert <\u522B\u540D>] \u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u7684\u516C\u5171\u5BC6\u94A5\u8BC1\u4E66"},
{".tsapolicyid.tsapolicyid.for.Timestamping.Authority",
"[-tsapolicyid <oid>] \u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u7684 TSAPolicyID"},
+ {".tsadigestalg.algorithm.of.digest.data.in.timestamping.request",
+ "[-tsadigestalg <\u7B97\u6CD5>] \u65F6\u95F4\u6233\u8BF7\u6C42\u4E2D\u7684\u6458\u8981\u6570\u636E\u7684\u7B97\u6CD5"},
{".altsigner.class.class.name.of.an.alternative.signing.mechanism",
- "[-altsigner <\u7C7B>] \u66FF\u4EE3\u7684\u7B7E\u540D\u673A\u5236\u7684\u7C7B\u540D"},
+ "[-altsigner <\u7C7B>] \u66FF\u4EE3\u7684\u7B7E\u540D\u673A\u5236\u7684\u7C7B\u540D\n (\u6B64\u9009\u9879\u5DF2\u8FC7\u65F6\u3002)"},
{".altsignerpath.pathlist.location.of.an.alternative.signing.mechanism",
- "[-altsignerpath <\u8DEF\u5F84\u5217\u8868>] \u66FF\u4EE3\u7684\u7B7E\u540D\u673A\u5236\u7684\u4F4D\u7F6E"},
+ "[-altsignerpath <\u8DEF\u5F84\u5217\u8868>] \u66FF\u4EE3\u7684\u7B7E\u540D\u673A\u5236\u7684\u4F4D\u7F6E\n (\u6B64\u9009\u9879\u5DF2\u8FC7\u65F6\u3002)"},
{".internalsf.include.the.SF.file.inside.the.signature.block",
"[-internalsf] \u5728\u7B7E\u540D\u5757\u5185\u5305\u542B .SF \u6587\u4EF6"},
{".sectionsonly.don.t.compute.hash.of.entire.manifest",
@@ -106,6 +109,8 @@
" [-providerArg <\u53C2\u6570>]]... \u4E3B\u7C7B\u6587\u4EF6\u548C\u6784\u9020\u5668\u53C2\u6570"},
{".strict.treat.warnings.as.errors",
"[-strict] \u5C06\u8B66\u544A\u89C6\u4E3A\u9519\u8BEF"},
+ {".conf.url.specify.a.pre.configured.options.file",
+ "[-conf <url>] \u6307\u5B9A\u9884\u914D\u7F6E\u7684\u9009\u9879\u6587\u4EF6"},
{"Option.lacks.argument", "\u9009\u9879\u7F3A\u5C11\u53C2\u6570"},
{"Please.type.jarsigner.help.for.usage", "\u8BF7\u952E\u5165 jarsigner -help \u4EE5\u4E86\u89E3\u7528\u6CD5"},
{"Please.specify.jarfile.name", "\u8BF7\u6307\u5B9A jarfile \u540D\u79F0"},
@@ -134,8 +139,11 @@
{".Signature.related.entries.","(\u4E0E\u7B7E\u540D\u76F8\u5173\u7684\u6761\u76EE)"},
{".Unsigned.entries.", "(\u672A\u7B7E\u540D\u6761\u76EE)"},
{"jar.is.unsigned.signatures.missing.or.not.parsable.",
- "jar \u672A\u7B7E\u540D\u3002(\u7F3A\u5C11\u7B7E\u540D\u6216\u65E0\u6CD5\u89E3\u6790\u7B7E\u540D)"},
+ "jar \u672A\u7B7E\u540D\u3002(\u7F3A\u5C11\u7B7E\u540D\u6216\u65E0\u6CD5\u5BF9\u7B7E\u540D\u8FDB\u884C\u89E3\u6790)"},
+ {"jar.signed.", "jar \u5DF2\u7B7E\u540D\u3002"},
+ {"jar.signed.with.signer.errors.", "jar \u5DF2\u7B7E\u540D, \u4F46\u51FA\u73B0\u7B7E\u540D\u8005\u9519\u8BEF\u3002"},
{"jar.verified.", "jar \u5DF2\u9A8C\u8BC1\u3002"},
+ {"jar.verified.with.signer.errors.", "jar \u5DF2\u9A8C\u8BC1, \u4F46\u51FA\u73B0\u7B7E\u540D\u8005\u9519\u8BEF\u3002"},
{"jarsigner.", "jarsigner: "},
{"signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.",
"\u7B7E\u540D\u6587\u4EF6\u540D\u5FC5\u987B\u5305\u542B\u4EE5\u4E0B\u5B57\u7B26: A-Z, 0-9, _ \u6216 -"},
@@ -191,6 +199,7 @@
"\u6B63\u5728\u4F7F\u7528\u66FF\u4EE3\u7684\u7B7E\u540D\u673A\u5236"},
{"entry.was.signed.on", "\u6761\u76EE\u7684\u7B7E\u540D\u65E5\u671F\u4E3A {0}"},
{"Warning.", "\u8B66\u544A: "},
+ {"Error.", "\u9519\u8BEF: "},
{"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.",
"\u6B64 jar \u5305\u542B\u5C1A\u672A\u8FDB\u884C\u5B8C\u6574\u6027\u68C0\u67E5\u7684\u672A\u7B7E\u540D\u6761\u76EE\u3002 "},
{"This.jar.contains.entries.whose.signer.certificate.has.expired.",
@@ -199,6 +208,8 @@
"\u6B64 jar \u5305\u542B\u7B7E\u540D\u8005\u8BC1\u4E66\u5C06\u5728\u516D\u4E2A\u6708\u5185\u8FC7\u671F\u7684\u6761\u76EE\u3002 "},
{"This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.",
"\u6B64 jar \u5305\u542B\u7B7E\u540D\u8005\u8BC1\u4E66\u4ECD\u65E0\u6548\u7684\u6761\u76EE\u3002 "},
+ {"This.jar.contains.entries.whose.signer.certificate.is.self.signed.",
+ "\u6B64 jar \u5305\u542B\u5176\u7B7E\u540D\u8005\u8BC1\u4E66\u4E3A\u81EA\u7B7E\u540D\u8BC1\u4E66\u7684\u6761\u76EE\u3002"},
{"Re.run.with.the.verbose.option.for.more.details.",
"\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u4F7F\u7528 -verbose \u9009\u9879\u91CD\u65B0\u8FD0\u884C\u3002"},
{"Re.run.with.the.verbose.and.certs.options.for.more.details.",
@@ -223,10 +234,18 @@
"\u6B64 jar \u5305\u542B\u7531\u4E8E\u7B7E\u540D\u8005\u8BC1\u4E66\u7684 NetscapeCertType \u6269\u5C55\u800C\u65E0\u6CD5\u8FDB\u884C\u4EE3\u7801\u7B7E\u540D\u7684\u6761\u76EE\u3002"},
{".{0}.extension.does.not.support.code.signing.",
"[{0} \u6269\u5C55\u4E0D\u652F\u6301\u4EE3\u7801\u7B7E\u540D]"},
- {"The.signer.s.certificate.chain.is.not.validated.",
- "\u7B7E\u540D\u8005\u7684\u8BC1\u4E66\u94FE\u672A\u9A8C\u8BC1\u3002"},
- {"This.jar.contains.entries.whose.certificate.chain.is.not.validated.",
- "\u6B64 jar \u5305\u542B\u8BC1\u4E66\u94FE\u672A\u9A8C\u8BC1\u7684\u6761\u76EE\u3002"},
+ {"The.signer.s.certificate.chain.is.not.validated.reason.1",
+ "\u7B7E\u540D\u8005\u8BC1\u4E66\u94FE\u672A\u7ECF\u8FC7\u9A8C\u8BC1\u3002\u539F\u56E0: %s"},
+ {"The.signer.s.certificate.is.self.signed.",
+ "\u7B7E\u540D\u8005\u8BC1\u4E66\u4E3A\u81EA\u7B7E\u540D\u8BC1\u4E66\u3002"},
+ {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.",
+ "\u4E3A %2$s \u9009\u9879\u6307\u5B9A\u7684 %1$s \u7B97\u6CD5\u88AB\u89C6\u4E3A\u5B58\u5728\u5B89\u5168\u98CE\u9669\u3002"},
+ {"This.jar.contains.entries.whose.certificate.chain.is.not.validated.reason.1",
+ "\u6B64 jar \u5305\u542B\u5176\u8BC1\u4E66\u94FE\u672A\u7ECF\u8FC7\u9A8C\u8BC1\u7684\u6761\u76EE\u3002\u539F\u56E0: %s"},
+ {"no.timestamp.signing",
+ "\u672A\u63D0\u4F9B -tsa \u6216 -tsacert, \u6B64 jar \u6CA1\u6709\u65F6\u95F4\u6233\u3002\u5982\u679C\u6CA1\u6709\u65F6\u95F4\u6233, \u5219\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u7684\u5230\u671F\u65E5\u671F (%1$tY-%1$tm-%1$td) \u6216\u4EE5\u540E\u7684\u4EFB\u4F55\u64A4\u9500\u65E5\u671F\u4E4B\u540E, \u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002"},
+ {"no.timestamp.verifying",
+ "\u6B64 jar \u5305\u542B\u7684\u7B7E\u540D\u6CA1\u6709\u65F6\u95F4\u6233\u3002\u5982\u679C\u6CA1\u6709\u65F6\u95F4\u6233, \u5219\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u7684\u5230\u671F\u65E5\u671F (%1$tY-%1$tm-%1$td) \u6216\u4EE5\u540E\u7684\u4EFB\u4F55\u64A4\u9500\u65E5\u671F\u4E4B\u540E, \u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002"},
{"Unknown.password.type.", "\u672A\u77E5\u53E3\u4EE4\u7C7B\u578B: "},
{"Cannot.find.environment.variable.",
"\u627E\u4E0D\u5230\u73AF\u5883\u53D8\u91CF: "},
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_de.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_de.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,12 @@
# questions.
#
-error.cant.open=\u00D6ffnen nicht m\u00F6glich: {0}
+error.multiple.main.operations=Sie k\u00F6nnen nicht mehrere "-cuxti"-Optionen angeben
+error.cant.open=\u00D6ffnen nicht m\u00F6glich: {0}
error.illegal.option=Ung\u00FCltige Option: {0}
+error.unrecognized.option=Unbekannte Option: {0}
+error.missing.arg=F\u00FCr die Option {0} ist ein Argument erforderlich
+error.bad.file.arg=Fehler beim Parsen der Dateiargumente
error.bad.option=Eine der Optionen -{ctxu} muss angegeben werden.
error.bad.cflag=Kennzeichen "c" erfordert Angabe von Manifest oder Eingabedateien.
error.bad.uflag=Kennzeichen "u" erfordert Angabe von Manifest, Kennzeichen "e" oder Eingabedateien.
@@ -34,8 +38,15 @@
error.create.dir={0}: Verzeichnis konnte nicht erstellt werden
error.incorrect.length=Falsche L\u00E4nge bei der Verarbeitung: {0}
error.create.tempfile=Es konnte keine tempor\u00E4re Datei erstellt werden
+error.hash.dep=Abh\u00E4ngigkeiten bei Hashing-Modul {0}. Modul {1} kann nicht im Modulpfad gefunden werden
+error.module.options.without.info=--module-version oder --hash-dependencies ohne module-info.class
+error.unexpected.module-info=Unerwarteter Moduldeskriptor {0}
+error.module.descriptor.not.found=Moduldeskriptor nicht gefunden
+error.missing.provider=Serviceprovider nicht gefunden: {0}
out.added.manifest=Manifest wurde hinzugef\u00FCgt
+out.added.module-info=module-info.class hinzugef\u00FCgt
out.update.manifest=Manifest wurde aktualisiert
+out.update.module-info=module-info.class aktualisiert
out.ignore.entry=Eintrag {0} wird ignoriert
out.adding={0} wird hinzugef\u00FCgt
out.deflated=({0} % verkleinert)
@@ -45,4 +56,33 @@
out.inflated=\ vergr\u00F6\u00DFert: {0}
out.size=(ein = {0}) (aus = {1})
-usage=Verwendung: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] Dateien ...\nOptionen:\n -c Neues Archiv erstellen\n -t Inhaltsverzeichnis f\u00FCr Archiv anzeigen\n -x Benannte (oder alle) Dateien aus dem Archiv extrahieren\n -u Vorhandenes Archiv aktualisieren\n -v Ausgabe im Verbose-Modus aus Standard-Ausgabe generieren\n -f Dateinamen f\u00FCr Archiv angeben\n -m Manifest-Informationen aus angegebener Manifest-Datei einschlie\u00DFen\n -n Pack200-Normalisierung nach Erstellung eines neuen Archivs ausf\u00FChren\n -e Anwendungs-Einstiegspunkt f\u00FCr alleinstehende Anwendung angeben\n in einer ausf\u00FChrbaren JAR-Datei geb\u00FCndelt\n -0 nur speichern; keine ZIP-Komprimierung verwenden\n -M keine Manifest-Datei f\u00FCr die Eintr\u00E4ge erstellen\n -i Index-Informationen f\u00FCr die angegebenen JAR-Dateien generieren\n -C zu angegebenem Verzeichnis wechseln und die folgende Datei einschlie\u00DFen\nDateien, die Verzeichnisse sind, werden rekursiv verarbeitet.\nDie Namen der Manifest-Datei, der Archiv-Datei und des Einstiegspunkts sind\nin derselben Reihenfolge wie die Kennzeichen f\u00FCr "m", "f" und "e" angegeben.\n\nBeispiel 1: Archivieren von zwei Klassendateien in einem Archiv mit dem Namen "classes.jar": \n jar cvf classes.jar Foo.class Bar.class \nBeispiel 2: Verwenden einer vorhandenen Manifest-Datei mit dem Namen "mymanifest" und Archivieren aller\n Dateien im Verzeichnis mit dem Namen "foo/" in die Archiv-Datei "classes.jar": \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=Kompatibilit\u00E4tsschnittstelle:\nVerwendung: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] Dateien...\nOptionen:\n -c Neues Archiv erstellen\n -t Inhaltsverzeichnis f\u00FCr Archiv anzeigen\n -x Benannte (oder alle) Dateien aus Archiv extrahieren\n -u Vorhandenes Archiv aktualisieren\n -v Ausgabe im Verbose-Modus aus Standardausgabe generieren\n -f Dateinamen f\u00FCr Archiv angeben\n -m Manifestinformationen aus angegebener Manifestdatei einschlie\u00DFen\n -n Pack200-Normalisierung nach Erstellung eines neuen Archivs ausf\u00FChren\n -e Anwendungseinstiegspunkt f\u00FCr Standalone-Anwendung angeben, \n die in einer ausf\u00FChrbaren JAR-Datei geb\u00FCndelt ist\n -0 Nur speichern; keine ZIP-Komprimierung verwenden\n -P Komponenten mit vorangestelltem "/" (absoluter Pfad) und ".." (\u00FCbergeordnetes Verzeichnis) aus Dateinamen beibehalten\n -M Keine Manifestdatei f\u00FCr die Eintr\u00E4ge erstellen\n -i Indexinformationen f\u00FCr die angegebenen JAR-Dateien erstellen\n -C Zum angegebenen Verzeichnis wechseln und folgende Datei einschlie\u00DFen\nFalls eine Datei ein Verzeichnis ist, wird dieses rekursiv verarbeitet.\nDer Name der Manifestdatei, der Name der Archivdatei und der Name des Einstiegspunkts werden\nin derselben Reihenfolge wie die Kennzeichen "m", "f" und "e" angegeben.\n\nBeispiel 1: Archivieren Sie zwei Klassendateien in ein Archiv mit Namen "classes.jar": \n jar cvf classes.jar Foo.class Bar.class \nBeispiel 2: Verwenden Sie die vorhandene Manifestdatei "mymanifest", und archivieren Sie alle\n Dateien im Verzeichnis foo/ in "classes.jar": \n jar cvfm classes.jar mymanifest -C foo/ .\n
+
+main.usage.summary=jar: Sie m\u00FCssen eine -ctxui-Option angeben.
+main.usage.summary.try=Verwenden Sie "jar --help", um weitere Informationen anzuzeigen.
+
+main.help.preopt=Verwendung: jar [OPTION...] [-C dir] files ...\njar erstellt ein Archiv f\u00FCr Klassen und Ressourcen und kann individuelle\nKlassen oder Ressourcen aus einem Archiv bearbeiten oder wiederherstellen.\n\n Beispiele:\n # Ein Archiv namens classes.jar mit zwei Klassendateien erstellen:\n jar --create --file classes.jar Foo.class Bar.class\n # Ein Archiv mit einem vorhandenen Manifest mit allen Dateien in foo/ erstellen:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Ein modulares JAR-Archiv erstellen, dessen Moduldeskriptor sich in\n # classes/module-info.class befindet:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Ein vorhandenes nicht modulares JAR-Archiv in ein modulares JAR-Archiv aktualisieren:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.opt.main=\ Hauptvorgangsmodus:\n
+main.help.opt.main.create=\ -c, --create Archiv erstellen
+main.help.opt.main.generate-index=\ -i, --generate-index=FILE Indexinformationen f\u00FCr die angegebenen JAR-\n Archive generieren
+main.help.opt.main.list=\ -t, --list Das Inhaltsverzeichnis f\u00FCr das Archiv auflisten
+main.help.opt.main.update=\ -u, --update Ein vorhandenes JAR-Archiv aktualisieren
+main.help.opt.main.extract=\ -x, --extract Benannte (oder alle) Dateien aus dem Archiv extrahieren
+main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Moduldeskriptor drucken
+main.help.opt.any=\ In jedem Modus g\u00FCltige Vorgangsmodifikatoren:\n\n -C DIR Zum angegebenen Verzeichnis wechseln und die folgende\n Datei aufnehmen
+main.help.opt.any.file=\ -f, --file=FILE Der Archivdateiname
+main.help.opt.any.verbose=\ -v, --verbose Verbose-Ausgabe bei Standardausgabe generieren
+main.help.opt.create.update=\ Vorgangsmodifikatoren, die nur im Erstellungs- und Aktualisierungsmodus g\u00FCltig sind:\n
+main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME Der Anwendungseinstiegspunkt f\u00FCr Standalone-\n Anwendungen, die in einem modularen oder ausf\u00FChrbaren\n JAR-Archiv geb\u00FCndelt sind
+main.help.opt.create.update.manifest=\ -m, --manifest=FILE Die Manifestinformationen aus der angegebenen\n Manifestdatei aufnehmen
+main.help.opt.create.update.no-manifest=\ -M, --no-manifest Keine Manifestdatei f\u00FCr die Eintr\u00E4ge erstellen
+main.help.opt.create.update.module-version=\ --module-version=VERSION Die Modulversion beim Erstellen eines modularen\n JAR-Archivs oder Aktualisieren eines nicht modularen JAR-Archivs
+main.help.opt.create.update.hash-dependencies=\ --hash-dependencies=PATTERN Die Hashes von Modulabh\u00E4ngigkeiten\n entsprechend dem angegebenen Muster beim Erstellen eines\n modularen JAR-Archivs oder Aktualisieren eines nicht modularen\n JAR-Archivs berechnen und aufzeichnen
+main.help.opt.create.update.modulepath=\ --modulepath Ort von Modulabh\u00E4ngigkeit zum Generieren
+\ des Hash
+main.help.opt.create.update.index=\ Vorgangsmodifikatoren, die nur im Erstellungs-, Aktualisierungs- und Indexgenerierungsmodus g\u00FCltig sind:\n
+main.help.opt.create.update.index.no-compress=\ -0, --no-compress Nur speichern, keine ZIP-Komprimierung verwenden
+main.help.opt.other=\ Weitere Optionen:\n
+main.help.opt.other.help=\ -?, --help[:compat] Diese Meldung oder optional die Kompatibilit\u00E4t, Hilfe angeben
+main.help.opt.other.version=\ --version Programmversion ausgeben
+main.help.postopt=\ Ein Archiv ist ein modulares JAR-Archiv, wenn der Moduldeskriptor "module-info.class"\n in der Root der angegebenen Verzeichnisse oder in der Root des JAR-Archivs selbst\n vorhanden ist. Die folgenden Vorg\u00E4nge sind nur g\u00FCltig, wenn Sie ein modulares JAR-Archiv\n erstellen oder ein vorhandenes nicht modulares JAR-Archiv aktualisieren: "--module-version",\n "--hash-dependencies" und "--modulepath".\n\n Obligatorische oder optionale Argumente zu langen Optionen sind auch f\u00FCr die jeweils\n zugeh\u00F6rigen kurzen Optionen obligatorisch oder optional.
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_es.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_es.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,12 @@
# questions.
#
-error.cant.open=no se puede abrir: {0}
+error.multiple.main.operations=No se puede especificar m\u00E1s de una opci\u00F3n '-cuxti'
+error.cant.open=no se puede abrir: {0}
error.illegal.option=Opci\u00F3n no permitida: {0}
+error.unrecognized.option=opci\u00F3n no reconocida: {0}
+error.missing.arg=la opci\u00F3n {0} necesita un argumento
+error.bad.file.arg=Error al analizar los argumentos de archivo
error.bad.option=Se debe especificar una de las opciones -{ctxu}.
error.bad.cflag=El indicador 'c' necesita la especificaci\u00F3n de archivos de manifiesto o de entrada.
error.bad.uflag=El indicador 'u' necesita la especificaci\u00F3n de archivos de manifiesto, de entrada o indicador 'e'.
@@ -34,8 +38,15 @@
error.create.dir={0} : no se ha podido crear el directorio
error.incorrect.length=longitud incorrecta al procesar: {0}
error.create.tempfile=No se ha podido crear el archivo temporal
+error.hash.dep=Aplicando hash a las dependencias del m\u00F3dulo {0}, no se ha encontrado el m\u00F3dulo {1} en la ruta del m\u00F3dulo
+error.module.options.without.info=Una de las dependencias --module-version o --hash-dependencies sin module-info.class
+error.unexpected.module-info=Descriptor de m\u00F3dulo inesperado {0}
+error.module.descriptor.not.found=No se ha encontrado el descriptor de m\u00F3dulo
+error.missing.provider=No se ha encontrado el proveedor de servicios: {0}
out.added.manifest=manifiesto agregado
+out.added.module-info=module-info.class agregado
out.update.manifest=manifiesto actualizado
+out.update.module-info=module-info.class actualizado
out.ignore.entry=ignorando entrada {0}
out.adding=agregando: {0}
out.deflated=(desinflado {0}%)
@@ -45,4 +56,33 @@
out.inflated=\ inflado: {0}
out.size=(entrada = {0}) (salida = {1})
-usage=Sintaxis: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] archivos...\nOpciones:\n -c crear nuevo archivo\n -t crear la tabla de contenido del archivo\n -x extraer el archive mencionado (o todos) del archivo\n -u actualizar archive existente\n -v generar salida detallada de los datos de salida est\u00E1ndar\n -f especificar nombre de archive de almacenamiento\n -m incluir informaci\u00F3n de manifiesto del archive de manifiesto especificado\n -n realizar normalizaci\u00F3n de Pack200 despu\u00E9s de crear un nuevo archivo\n -e especificar punto de entrada de la aplicaci\u00F3n para la aplicaci\u00F3n aut\u00F3noma \n que se incluye dentro de un archive jar ejecutable\n -0 s\u00F3lo almacenar; no utilizar compresi\u00F3n ZIP\n -M no crear un archive de manifiesto para las entradas\n -i generar informaci\u00F3n de \u00EDndice para los archives jar especificados\n -C cambiar al directorio especificado e incluir el archivo siguiente\nSi alg\u00FAn archivo es un directorio, se procesar\u00E1 de forma recurrente.\nEl nombre del archivo de manifiesto, el nombre del archivo de almacenamiento y el nombre del punto de entrada se\nespecifican en el mismo orden que los indicadores 'm', 'f' y 'e'.\n\nEjemplo 1: para archivar archivos de dos clases en un archivo llamado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEjemplo 2: utilice un archivo de manifiesto existente 'mymanifest' y archive todos los\n archivos del directorio foo/ en 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=Interfaz de compatibilidad:\nSintaxis: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\nOpciones:\n -c crear nuevo archivo\n -t crear la tabla de contenido del archivo\n -x extraer el archivo mencionado (o todos) del archivo\n -u actualizar archivo existente\n -v generar salida detallada de los datos de salida est\u00E1ndar\n -f especificar nombre de archivo de almacenamiento\n -m incluir informaci\u00F3n de manifiesto del archivo de manifiesto especificado\n -e especificar punto de entrada de la aplicaci\u00F3n para la aplicaci\u00F3n aut\u00F3noma \n que se incluye dentro de un archivo jar ejecutable\n -0 s\u00F3lo almacenar; no utilizar compresi\u00F3n ZIP\n -P conservar componentes iniciales '/' (ruta absoluta) y ".." (directorio principal) en los nombres de archivo\n -M no crear un archivo de manifiesto para las entradas\n -i generar informaci\u00F3n de \u00EDndice para los archivos jar especificados\n -C cambiar al directorio especificado e incluir el archivo siguiente\nSi alg\u00FAn archivo es un directorio, se procesar\u00E1 de forma recurrente.\nEl nombre del archivo de manifiesto, el nombre del archivo de almacenamiento y el nombre del punto de entrada se\nespecifican en el mismo orden que los indicadores 'm', 'f' y 'e'.\n\nEjemplo 1: para archivar archivos de dos clases en un archivo llamado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEjemplo 2: utilice un archivo de manifiesto existente 'mymanifest' y archive todos los\n archivos del directorio foo/ en 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+
+main.usage.summary=jar: Debe especificar una de las opciones -ctxui.
+main.usage.summary.try=Intente `jar --help' para obtener m\u00E1s informaci\u00F3n.
+
+main.help.preopt=Sintaxis: archivos jar [OPTION...] [-C dir] ...\njar crea un archivo para las clases y recursos y puede manipular o\nrestaurar clases individuales o recursos de un archivo.\n\n Ejemplos:\n # Crear un archivo denominado classes.jar con dos archivos de clase:\n jar --create --file classes.jar Foo.class Bar.class\n # Crear un archivo con un manifiesto existente, con todos los archivos en foo/:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Crear un archivo jar modular, donde el descriptor de m\u00F3dulo est\u00E1 en\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # actualizar un jar no modular en un jar modular:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.opt.main=\ Modo de operaci\u00F3n principal:\n
+main.help.opt.main.create=\ -c, --create Crear el archivo
+main.help.opt.main.generate-index=\ -i, --generate-index=FILE Generar informaci\u00F3n de \u00EDndice para los archivos jar\n especificados
+main.help.opt.main.list=\ -t, --list Mostrar la tabla de contenido del archivo
+main.help.opt.main.update=\ -u, --update Actualizar un archivo jar existente
+main.help.opt.main.extract=\ -x, --extract Extraer determinados (o todos) los archivos del archivo
+main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Imprimir el descriptor de m\u00F3dulo
+main.help.opt.any=\ Modificadores de operaci\u00F3n v\u00E1lidos en cualquier modo:\n\n -C DIR Cambiar al directorio especificado e incluir el\n siguiente archivo
+main.help.opt.any.file=\ -f, --file=FILE Nombre del archivo
+main.help.opt.any.verbose=\ -v, --verbose Generar salida verbose en salida est\u00E1ndar
+main.help.opt.create.update=\ Modificadores de operaci\u00F3n v\u00E1lidos solo en el modo de creaci\u00F3n y de actualizaci\u00F3n:\n
+main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME Punto de entrada de la aplicaci\u00F3n para aplicaciones\n aut\u00F3nomas agrupadas en un archivo jar modular o\n ejecutable
+main.help.opt.create.update.manifest=\ -m, --manifest=FILE Incluir la informaci\u00F3n de manifiesto del archivo\n de manifiesto proporcionado
+main.help.opt.create.update.no-manifest=\ -M, --no-manifest No crear ning\u00FAn archivo de manifiesto para las entradas
+main.help.opt.create.update.module-version=\ --module-version=VERSION Versi\u00F3n del m\u00F3dulo, si se va a crear un archivo jar modular\n o actualizar un archivo jar no modular
+main.help.opt.create.update.hash-dependencies=\ --hash-dependencies=PATTERN Calcular y registrar los hash de dependencias\n de m\u00F3dulo que coinciden con el patr\u00F3n proporcionado, si se va a crear\n un archivo jar modular o actualizar un archivo jar no\n modular
+main.help.opt.create.update.modulepath=\ --modulepath Ubicaci\u00F3n de la dependencia de m\u00F3dulo para generaci\u00F3n
+\ hash
+main.help.opt.create.update.index=\ Modificadores de operaci\u00F3n v\u00E1lidos solo en el modo de creaci\u00F3n, actualizaci\u00F3n y generaci\u00F3n de \u00EDndice:\n
+main.help.opt.create.update.index.no-compress=\ -0, --no-compress Solo almacenar; no usar compresi\u00F3n ZIP
+main.help.opt.other=\ Otras opciones:\n
+main.help.opt.other.help=\ -?, --help[:compat] Utilice este valor, u opcionalmente la compatibilidad, ayuda
+main.help.opt.other.version=\ --version Imprimir versi\u00F3n del programa
+main.help.postopt=\ Un archivo es un jar modular si el descriptor de m\u00F3dulo, 'module-info.class', est\u00E1\n en la ra\u00EDz de los directorios proporcionados o en la ra\u00EDz del archivo jar.\n Las siguientes operaciones solo son v\u00E1lidas si se va a crear un jar modular\n o se va a actualizar un jar existente no modular: '--module-version',\n '--hash-dependencies', y '--modulepath'.\n\n Los argumentos obligatorios u opcionales en las opciones largas tambi\u00E9n son obligatorios u opcionales\n en cualquiera de las opciones cortas.
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_fr.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_fr.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,12 @@
# questions.
#
-error.cant.open=impossible d''ouvrir : {0}
+error.multiple.main.operations=Vous ne pouvez pas sp\u00E9cifier plus d'une option '-cuxti'
+error.cant.open=impossible d''ouvrir : {0}
error.illegal.option=Option non admise : {0}
+error.unrecognized.option=option non reconnue : {0}
+error.missing.arg=l''option {0} exige un argument
+error.bad.file.arg=Erreur lors de l'analyse des arguments de fichier
error.bad.option=Une des options -{ctxu} doit \u00EAtre sp\u00E9cifi\u00E9e.
error.bad.cflag=L'indicateur c requiert la sp\u00E9cification d'un fichier manifeste ou d'un fichier d'entr\u00E9e.
error.bad.uflag=L'indicateur u requiert la sp\u00E9cification d'un fichier manifeste, d'un fichier d'entr\u00E9e ou d'un indicateur e.
@@ -34,8 +38,15 @@
error.create.dir={0} : impossible de cr\u00E9er le r\u00E9pertoire
error.incorrect.length=longueur incorrecte lors du traitement de : {0}
error.create.tempfile=Impossible de cr\u00E9er un fichier temporaire
+error.hash.dep=Hachage des d\u00E9pendances du module {0}, module {1} introuvable sur le chemin de module
+error.module.options.without.info=Une des options --module-version ou --hash-dependencies sans module-info.class
+error.unexpected.module-info=Descripteur de module {0} inattendu
+error.module.descriptor.not.found=Descripteur de module introuvable
+error.missing.provider=Fournisseur de services introuvable : {0}
out.added.manifest=manifeste ajout\u00E9
+out.added.module-info=module-info.class ajout\u00E9
out.update.manifest=manifeste mis \u00E0 jour
+out.update.module-info=module-info.class mis \u00E0 jour
out.ignore.entry=entr\u00E9e {0} ignor\u00E9e
out.adding=ajout : {0}
out.deflated=(compression : {0} %)
@@ -45,4 +56,33 @@
out.inflated=\ d\u00E9compress\u00E9 : {0}
out.size=(entr\u00E9e = {0}) (sortie = {1})
-usage=Syntaxe : jar {ctxui}[vfmn0Me] [fichier-jar] [fichier-manifeste] [point-entr\u00E9e] [-C r\u00E9p] fichiers...\nOptions :\n -c cr\u00E9e une archive\n -t affiche la table des mati\u00E8res de l'archive\n -x extrait les fichiers nomm\u00E9s (ou tous les fichiers) de l'archive\n -u met \u00E0 jour l'archive existante\n -v g\u00E9n\u00E8re une version d\u00E9taill\u00E9e d'une sortie standard\n -f sp\u00E9cifie le nom du fichier archive\n -m inclut les informations de manifeste \u00E0 partir du fichier manifeste sp\u00E9cifi\u00E9\n -n effectue une normalisation Pack200 apr\u00E8s la cr\u00E9ation d'une archive\n -e sp\u00E9cifie le point d'entr\u00E9e d'une application en mode autonome \n int\u00E9gr\u00E9e \u00E0 un fichier JAR ex\u00E9cutable\n -0 stockage uniquement, pas de compression ZIP\n -M ne cr\u00E9e pas de fichier manifeste pour les entr\u00E9es\n -i g\u00E9n\u00E8re les informations d'index des fichiers JAR sp\u00E9cifi\u00E9s\n -C passe au r\u00E9pertoire sp\u00E9cifi\u00E9 et inclut le fichier suivant\nSi l'un des fichiers est un r\u00E9pertoire, celui-ci est trait\u00E9 r\u00E9cursivement.\nLes noms du fichier manifeste, du fichier d'archive et du point d'entr\u00E9e sont\nsp\u00E9cifi\u00E9s dans le m\u00EAme ordre que celui des indicateurs m, f et e.\n\nExemple 1 : pour archiver deux fichiers de classe dans une archive intitul\u00E9e classes.jar : \n jar cvf classes.jar Foo.class Bar.class \nExemple 2 : pour utiliser un fichier manifeste existant 'monmanifeste', puis archiver tous les\n fichiers du r\u00E9pertoire foo/ dans 'classes.jar' : \n jar cvfm classes.jar monmanifeste -C foo/ .\n
+usage.compat=Interface de compatibilit\u00E9 :\nSyntaxe : jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\nOptions :\n -c cr\u00E9e une archive\n -t affiche la table des mati\u00E8res de l'archive\n -x extrait des fichiers nomm\u00E9s (ou tous les fichiers) de l'archive\n -u met \u00E0 jour l'archive existante\n -v g\u00E9n\u00E8re une sortie en mode verbose d'une sortie standard\n -f sp\u00E9cifie le nom de fichier d'archive\n -m inclut les informations de manifeste \u00E0 partir du fichier manifeste sp\u00E9cifi\u00E9\n -n effectue une normalisation Pack200 apr\u00E8s la cr\u00E9ation d'une archive\n -e sp\u00E9cifie le point d'entr\u00E9e d'une application en mode autonome \n int\u00E9gr\u00E9e \u00E0 un fichier JAR ex\u00E9cutable\n -0 stockage uniquement, pas de compression ZIP\n -P pr\u00E9serve les signes de d\u00E9but '/' (chemin absolu) et ".." (r\u00E9pertoire parent) dans les noms de fichier\n -M ne cr\u00E9e pas de fichier manifeste pour les entr\u00E9es\n -i g\u00E9n\u00E8re les informations d'index des fichiers JAR sp\u00E9cifi\u00E9s\n -C passe au r\u00E9pertoire sp\u00E9cifi\u00E9 et inclut le fichier suivant\nSi l'un des fichiers est un r\u00E9pertoire, celui-ci est trait\u00E9 r\u00E9cursivement.\nLes noms du fichier manifeste, du fichier d'archive et du point d'entr\u00E9e sont\nsp\u00E9cifi\u00E9s dans le m\u00EAme ordre que celui des indicateurs m, f et e.\n\nExemple 1 : pour archiver deux fichiers de classe dans une archive intitul\u00E9e classes.jar : \n jar cvf classes.jar Foo.class Bar.class \nExemple 2 : pour utiliser un fichier manifeste existant 'mymanifest', puis archiver tous les\n fichiers du r\u00E9pertoire foo/ dans 'classes.jar' : \n jar cvfm classes.jar mymanifest -C foo/ .\n
+
+main.usage.summary=jar : vous devez sp\u00E9cifier l'une des options -ctxui.
+main.usage.summary.try=Pour plus d'informations, essayez 'jar --help'.
+
+main.help.preopt=Syntaxe : jar [OPTION...] [-C dir] files ...\njar cr\u00E9e une archive pour les classes et les ressources, et peut manipuler ou\nrestaurer les classes ou ressources individuelles \u00E0 partir d'une archive.\n\n Exemples :\n # Cr\u00E9ation d'une archive nomm\u00E9e classes.jar compos\u00E9e de deux fichiers de classe :\n jar --create --file classes.jar Foo.class Bar.class\n # Cr\u00E9ation d'une archive \u00E0 l'aide d'un manifeste existant, avec tous les fichiers dans foo/ :\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Cr\u00E9ation d'une archive JAR modulaire, o\u00F9 le descripteur de module est situ\u00E9 dans\n # classes/module-info.class :\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Mise \u00E0 jour d'un fichier JAR non modulaire existant vers un fichier JAR modulaire :\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.opt.main=\ Mode d'exploitation principal :\n
+main.help.opt.main.create=\ -c, --create Cr\u00E9e l'archive
+main.help.opt.main.generate-index=\ -i, --generate-index=FILE G\u00E9n\u00E8re des informations d'index pour les archives JAR\n indiqu\u00E9es
+main.help.opt.main.list=\ -t, --list Affiche la table des mati\u00E8res de l'archive
+main.help.opt.main.update=\ -u, --update Met \u00E0 jour une archive JAR existante
+main.help.opt.main.extract=\ -x, --extract Extrait des fichiers nomm\u00E9s (ou tous les fichiers) de l'archive
+main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Imprime le descripteur de module
+main.help.opt.any=\ Modificateurs d'op\u00E9ration valides pour tous les modes :\n\n -C DIR Passe au r\u00E9pertoire sp\u00E9cifi\u00E9 et inclut le\n fichier suivant
+main.help.opt.any.file=\ -f, --file=FILE Nom de fichier d'archive
+main.help.opt.any.verbose=\ -v, --verbose G\u00E9n\u00E8re une sortie en mode verbose d'une sortie standard
+main.help.opt.create.update=\ Modificateurs d'op\u00E9ration valides uniquement en modes create et update :\n
+main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME Point d'entr\u00E9e d'une application en mode autonome\n int\u00E9gr\u00E9e \u00E0 une archive JAR modulaire\n ou ex\u00E9cutable
+main.help.opt.create.update.manifest=\ -m, --manifest=FILE Inclut les informations de manifeste du fichier\n manifeste donn\u00E9
+main.help.opt.create.update.no-manifest=\ -M, --no-manifest Ne cr\u00E9e pas de fichier manifeste pour les entr\u00E9es
+main.help.opt.create.update.module-version=\ --module-version=VERSION Version de module lors de la cr\u00E9ation d'un fichier JAR\n modulaire ou de la mise \u00E0 jour d'un fichier JAR non modulaire
+main.help.opt.create.update.hash-dependencies=\ --hash-dependencies=PATTERN Calcule et enregistre les hachages des d\u00E9pendances\n de module mises en correspondance d'apr\u00E8s le mod\u00E8le donn\u00E9, lors\n de la cr\u00E9ation d'un JAR modulaire ou de la mise \u00E0 jour d'un JAR\n non modulaire
+main.help.opt.create.update.modulepath=\ --modulepath Emplacement d'une d\u00E9pendance de module pour la g\u00E9n\u00E9ration
+\ du hachage
+main.help.opt.create.update.index=\ Modificateurs d'op\u00E9ration valides uniquement en modes create, update et generate-index :\n
+main.help.opt.create.update.index.no-compress=\ -0, --no-compress Stocke uniquement ; n'utilise pas de compression ZIP
+main.help.opt.other=\ Autres options :\n
+main.help.opt.other.help=\ -?, --help[:compat] Affiche l'aide ou \u00E9ventuellement la compatibilit\u00E9
+main.help.opt.other.version=\ --version Imprime la version de programme
+main.help.postopt=\ Une archive est un fichier JAR modulaire si un descripteur de module, 'module-info.class', se\n trouve dans la racine des r\u00E9pertoires donn\u00E9s ou dans la racine de l'archive JAR\n elle-m\u00EAme. Les op\u00E9rations suivantes sont valides uniquement lors de la cr\u00E9ation d'un fichier JAR modulaire\n ou de la mise \u00E0 jour d'un fichier JAR non modulaire existant : '--module-version',\n '--hash-dependencies' et '--modulepath'.\n\n Les arguments obligatoires ou facultatifs pour les options longues sont \u00E9galement obligatoires ou facultatifs\n pour toute option courte correspondante.
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_it.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_it.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,12 @@
# questions.
#
-error.cant.open=impossibile aprire: {0}
+error.multiple.main.operations=Impossibile specificare pi\u00F9 di un'opzione '-cuxti'
+error.cant.open=impossibile aprire: {0}
error.illegal.option=Opzione non valida: {0}
+error.unrecognized.option=opzione non riconosciuta: {0}
+error.missing.arg=l''opzione {0} richiede un argomento
+error.bad.file.arg=Errore durante l'analisi degli argomenti del file
error.bad.option=\u00C8 necessario specificare una delle opzioni -{ctxu}.
error.bad.cflag=Per il flag 'c' \u00E8 necessario specificare file manifest o di input.
error.bad.uflag=Per il flag 'u' \u00E8 necessario specificare il flag 'e' oppure file manifest o di input.
@@ -34,8 +38,15 @@
error.create.dir={0} : impossibile creare la directory
error.incorrect.length=lunghezza non valida durante l''elaborazione: {0}
error.create.tempfile=Impossibile creare il file temporaneo.
+error.hash.dep={0} dipendenze del modulo di hashing. Impossibile trovare il modulo {1} nel percorso del modulo
+error.module.options.without.info=Una delle opzioni --module-version o --hash-dependencies non contiene module-info.class
+error.unexpected.module-info=Descrittore di modulo {0} imprevisto
+error.module.descriptor.not.found=Descrittore di modulo non trovato
+error.missing.provider=Provider di servizi non trovato: {0}
out.added.manifest=aggiunto manifest
+out.added.module-info=module-info.class aggiunto
out.update.manifest=aggiornato manifest
+out.update.module-info=module-info.class aggiornato
out.ignore.entry=la voce {0} sar\u00E0 ignorata
out.adding=aggiunta in corso di: {0}
out.deflated=(compresso {0}%)
@@ -45,4 +56,33 @@
out.inflated=\ decompresso: {0}
out.size=(in = {0}) (out = {1})
-usage=Uso: jar {ctxui}[vfmn0Me] [file-jar] [file-manifest] [punto di ingresso] [-C dir] file ...\nOpzioni:\n -c crea un nuovo archivio\n -t visualizza l'indice dell'archivio\n -x estrae i file con nome (o tutti i file) dall'archivio\n -u aggiorna l'archivio esistente\n -v genera output commentato dall'output standard\n -f specifica il nome file dell'archivio\n -m include informazioni manifest dal file manifest specificato\n -n esegue la normalizzazione Pack200 dopo la creazione di un nuovo archivio\n -e specifica il punto di ingresso per l'applicazione standalone \n inclusa nel file jar eseguibile\n -0 solo memorizzazione; senza compressione ZIP\n -M consente di non creare un file manifest per le voci\n -i genera informazioni sull'indice per i file jar specificati\n -C imposta la directory specificata e include il file seguente\nSe un file \u00E8 una directory, verr\u00E0 elaborato in modo ricorsivo.\nIl nome del file manifest, del file di archivio e del punto di ingresso devono\nessere specificati nello stesso ordine dei flag 'm', 'f' ed 'e'.\n\nEsempio 1: archiviazione di due file di classe in un archivio con il nome classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEsempio 2: utilizzo del file manifest esistente 'mymanifest' e archiviazione di tutti i\n file della directory foo/ in 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=Interfaccia di compatibilit\u00E0:\nUso: jar {ctxui}[vfmn0PMe] [file-jar] [file-manifest] [punto di ingresso] [-C dir] file ...\nOpzioni:\n -c crea un nuovo archivio\n -t visualizza l'indice dell'archivio\n -x estrae i file con nome (o tutti i file) dall'archivio\n -u aggiorna l'archivio esistente\n -v genera output commentato dall'output standard\n -f specifica il nome file dell'archivio\n -m include informazioni manifest dal file manifest specificato\n -n esegue la normalizzazione Pack200 dopo la creazione di un nuovo archivio\n -e specifica il punto di ingresso per l'applicazione stand-alone \n inclusa nel file jar eseguibile\n -0 solo memorizzazione; senza compressione ZIP\n -P conserva i componenti iniziali '/' (percorso assoluto) e \\"..\\" (directory padre) dai nomi file\n -M consente di non creare un file manifest per le voci\n -i genera informazioni sull'indice per i file jar specificati\n -C imposta la directory specificata e include il file seguente\nSe un file \u00E8 una directory, verr\u00E0 elaborato in modo ricorsivo.\nIl nome del file manifest, del file di archivio e del punto di ingresso devono\nessere specificati nello stesso ordine dei flag 'm', 'f' ed 'e'.\n\nEsempio 1: archiviazione di due file di classe in un archivio con il nome classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEsempio 2: utilizzo del file manifest esistente 'mymanifest' e archiviazione di tutti i\n file della directory foo/ in 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+
+main.usage.summary=jar: \u00E8 necessario specificare una delle opzioni -ctxui.
+main.usage.summary.try=Utilizzare 'jar --help' per ulteriori informazioni.
+
+main.help.preopt=Uso: jar [OPTION...] [-C dir] file ...\nil file jar crea un archivio per le classi e le risorse e pu\u00F2 manipolare o\nripristinare le singole classi o risorse da un archivio.\n\n Esempi:\n # Crea un archivio denominato classes.jar con due file di classe:\n jar --create --file classes.jar Foo.class Bar.class\n # Crea un archivio mediante un file manifest esistente, con tutti i file in foo/:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Crea un archivio jar modulare, in cui il descrittore di modulo si trova in\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Aggiorna un file jar non modulare esistente in un file jar modulare:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.opt.main=\ Modalit\u00E0 di funzionamento principale:\n
+main.help.opt.main.create=\ -c, --create Crea l'archivio
+main.help.opt.main.generate-index=\ -i, --generate-index=FILE Genera le informazioni sull'indice per gli archivi\n jar specificati
+main.help.opt.main.list=\ -t, --list Visualizza l'indice dell'archivio
+main.help.opt.main.update=\ -u, --update Aggiorna un archivio jar esistente
+main.help.opt.main.extract=\ -x, --extract Estrae i file con nome (o tutti i file) dall'archivio
+main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Stampa il descrittore del modulo
+main.help.opt.any=\ Modificatori di funzionamento validi in qualsiasi modalit\u00E0:\n\n -C DIR Passa alla directory specificata e include il\n file seguente
+main.help.opt.any.file=\ -f, --file=FILE Nome del file di archivio
+main.help.opt.any.verbose=\ -v, --verbose Genera l'output descrittivo nell'output standard
+main.help.opt.create.update=\ Modificatori di funzionamento validi solo nella modalit\u00E0 di creazione e aggiornamento:\n
+main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME Punto di ingresso per le applicazioni\n stand-alone incluse nell'archivio jar modulare o\n eseguibile
+main.help.opt.create.update.manifest=\ -m, --manifest=FILE Include le informazioni sul file manifest dal file\n manifest specificato
+main.help.opt.create.update.no-manifest=\ -M, --no-manifest Non crea un file manifest per le voci
+main.help.opt.create.update.module-version=\ --module-version=VERSION Versione del modulo utilizzata durante la creazione di un file\n jar modulare o l'aggiornamento di un file jar non modulare
+main.help.opt.create.update.hash-dependencies=\ --hash-dependencies=PATTERN Calcola e registra gli hash delle dipendenze\n del modulo corrispondenti in base al pattern specificato durante\n la creazione di un file jar modulare o l'aggiornamento di\n un file jar non modulare
+main.help.opt.create.update.modulepath=\ --modulepath Posizione della dipendenza del modulo per la generazione
+\ dell'hash
+main.help.opt.create.update.index=\ Modificatori di funzionamento validi solo nella modalit\u00E0 di creazione, aggiornamento e di generazione dell'indice:\n
+main.help.opt.create.update.index.no-compress=\ -0, --no-compress Solo per la memorizzazione. Non utilizza alcuna compressione ZIP
+main.help.opt.other=\ Altre opzioni:\n
+main.help.opt.other.help=\ -?, --help[:compat] Fornisce questa Guida o facoltativamente la Guida sulla compatibilit\u00E0
+main.help.opt.other.version=\ --version Stampa la versione del programma
+main.help.postopt=\ Un archivio \u00E8 un file jar modulare se un descrittore di modulo, 'module-info.class', si trova\n nella directory radice delle directory specificate o nella radice dell'archivio jar\n stesso. Le operazioni seguenti sono valide solo durante la creazione di un jar modulare\n o l'aggiornamento di un file jar non modulare esistente: '--module-version',\n '--hash-dependencies' e '--modulepath'.\n\n Gli argomenti obbligatori o facoltativi per le opzioni lunghe sono obbligatori\n o facoltativi anche per le opzioni brevi corrispondenti.
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ja.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ja.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,12 @@
# questions.
#
-error.cant.open={0}\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093
+error.multiple.main.operations=\u8907\u6570\u306E'-cuxti'\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093
+error.cant.open={0}\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093
error.illegal.option=\u4E0D\u6B63\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: {0}
+error.unrecognized.option=\u8A8D\u8B58\u3055\u308C\u306A\u3044\u30AA\u30D7\u30B7\u30E7\u30F3: {0}
+error.missing.arg=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059\u3002
+error.bad.file.arg=\u30D5\u30A1\u30A4\u30EB\u5F15\u6570\u306E\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
error.bad.option=\u30AA\u30D7\u30B7\u30E7\u30F3-{ctxu}\u306E\u3046\u3061\u306E1\u3064\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
error.bad.cflag=\u30D5\u30E9\u30B0'c'\u3067\u306F\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u307E\u305F\u306F\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u6307\u5B9A\u304C\u5FC5\u8981\u3067\u3059\u3002
error.bad.uflag=\u30D5\u30E9\u30B0'u'\u3067\u306F\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u304B'e'\u30D5\u30E9\u30B0\u3001\u307E\u305F\u306F\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u6307\u5B9A\u304C\u5FC5\u8981\u3067\u3059\u3002
@@ -34,8 +38,15 @@
error.create.dir=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
error.incorrect.length={0}\u306E\u51E6\u7406\u4E2D\u306B\u4E0D\u6B63\u306A\u9577\u3055\u304C\u3042\u308A\u307E\u3057\u305F
error.create.tempfile=\u4E00\u6642\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
+error.hash.dep=\u30E2\u30B8\u30E5\u30FC\u30EB{0}\u4F9D\u5B58\u6027\u306E\u30CF\u30C3\u30B7\u30E5\u3067\u30E2\u30B8\u30E5\u30FC\u30EB{1}\u304C\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093
+error.module.options.without.info=--module-version\u307E\u305F\u306F--hash-dependencies\u306E\u3044\u305A\u308C\u304B\u3067module-info.class\u304C\u3042\u308A\u307E\u305B\u3093
+error.unexpected.module-info=\u4E88\u671F\u3057\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF{0}
+error.module.descriptor.not.found=\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
+error.missing.provider=\u30B5\u30FC\u30D3\u30B9\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
out.added.manifest=\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F
+out.added.module-info=module-info.class\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F
out.update.manifest=\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F
+out.update.module-info=module-info.class\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F
out.ignore.entry=\u30A8\u30F3\u30C8\u30EA{0}\u3092\u7121\u8996\u3057\u307E\u3059
out.adding={0}\u3092\u8FFD\u52A0\u4E2D\u3067\u3059
out.deflated=({0}%\u53CE\u7E2E\u3055\u308C\u307E\u3057\u305F)
@@ -45,4 +56,33 @@
out.inflated=\ {0}\u304C\u5C55\u958B\u3055\u308C\u307E\u3057\u305F
out.size=(\u5165={0})(\u51FA={1})
-usage=\u4F7F\u7528\u65B9\u6CD5: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u30AA\u30D7\u30B7\u30E7\u30F3:\n -c \u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B\n -t \u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u5185\u5BB9\u3092\u4E00\u89A7\u8868\u793A\u3059\u308B\n -x \u6307\u5B9A\u306E(\u307E\u305F\u306F\u3059\u3079\u3066\u306E)\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u62BD\u51FA\u3059\u308B\n -u \u65E2\u5B58\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u66F4\u65B0\u3059\u308B\n -v \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n -f \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3059\u308B\n -m \u6307\u5B9A\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u60C5\u5831\u3092\u53D6\u308A\u8FBC\u3080\n -n \u65B0\u898F\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u4F5C\u6210\u5F8C\u306BPack200\u6B63\u898F\u5316\u3092\u5B9F\u884C\u3059\u308B\n -e \u5B9F\u884C\u53EF\u80FDjar\u30D5\u30A1\u30A4\u30EB\u306B\u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\n \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u3092\u6307\u5B9A\u3059\u308B\n -0 \u683C\u7D0D\u306E\u307F\u3002ZIP\u5727\u7E2E\u3092\u4F7F\u7528\u3057\u306A\u3044\n -M \u30A8\u30F3\u30C8\u30EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u306A\u3044\n -i \u6307\u5B9A\u306Ejar\u30D5\u30A1\u30A4\u30EB\u306E\u7D22\u5F15\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n -C \u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5909\u66F4\u3057\u3001\u6B21\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u308A\u8FBC\u3080\n\u30D5\u30A1\u30A4\u30EB\u304C\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u5834\u5408\u306F\u518D\u5E30\u7684\u306B\u51E6\u7406\u3055\u308C\u307E\u3059\u3002\n\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u304A\u3088\u3073\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u540D\u306F\u3001\n\u30D5\u30E9\u30B0'm'\u3001'f'\u3001'e'\u306E\u6307\u5B9A\u3068\u540C\u3058\u9806\u756A\u3067\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\n\u4F8B1: 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6classes.jar\u306B\u4FDD\u5B58\u3059\u308B: \n jar cvf classes.jar Foo.class Bar.class \n\u4F8B2: \u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB'mymanifest'\u3092\u4F7F\u7528\u3057\u3001foo/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\n \u5168\u30D5\u30A1\u30A4\u30EB\u3092'classes.jar'\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3059\u308B: \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=\u4E92\u63DB\u6027\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9:\n\u4F7F\u7528\u65B9\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u30AA\u30D7\u30B7\u30E7\u30F3:\n -c \u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B\n -t \u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u5185\u5BB9\u3092\u4E00\u89A7\u8868\u793A\u3059\u308B\n -x \u6307\u5B9A\u306E(\u307E\u305F\u306F\u3059\u3079\u3066\u306E)\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u62BD\u51FA\u3059\u308B\n -u \u65E2\u5B58\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u66F4\u65B0\u3059\u308B\n -v \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n -f \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3059\u308B\n -m \u6307\u5B9A\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u60C5\u5831\u3092\u53D6\u308A\u8FBC\u3080\n -n \u65B0\u898F\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u4F5C\u6210\u5F8C\u306BPack200\u6B63\u898F\u5316\u3092\u5B9F\u884C\u3059\u308B\n -e \u5B9F\u884C\u53EF\u80FDjar\u30D5\u30A1\u30A4\u30EB\u306B\u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\n \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u3092\u6307\u5B9A\u3059\u308B\n -0 \u683C\u7D0D\u306E\u307F\u3002ZIP\u5727\u7E2E\u3092\u4F7F\u7528\u3057\u306A\u3044\n -P \u30D5\u30A1\u30A4\u30EB\u540D\u306E\u5148\u982D\u306E'/' (\u7D76\u5BFE\u30D1\u30B9)\u304A\u3088\u3073\\"..\\" (\u89AA\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA)\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u4FDD\u6301\u3059\u308B\n -M \u30A8\u30F3\u30C8\u30EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u306A\u3044\n -i \u6307\u5B9A\u306Ejar\u30D5\u30A1\u30A4\u30EB\u306E\u7D22\u5F15\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n -C \u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5909\u66F4\u3057\u3001\u6B21\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u308A\u8FBC\u3080\n\u30D5\u30A1\u30A4\u30EB\u304C\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u5834\u5408\u306F\u518D\u5E30\u7684\u306B\u51E6\u7406\u3055\u308C\u307E\u3059\u3002\n\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u304A\u3088\u3073\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u540D\u306F\u3001\n\u30D5\u30E9\u30B0'm'\u3001'f'\u3001'e'\u306E\u6307\u5B9A\u3068\u540C\u3058\u9806\u756A\u3067\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\n\u4F8B1: 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6classes.jar\u306B\u4FDD\u5B58\u3059\u308B: \n jar cvf classes.jar Foo.class Bar.class \n\u4F8B2: \u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB'mymanifest'\u3092\u4F7F\u7528\u3057\u3001foo/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\n \u5168\u30D5\u30A1\u30A4\u30EB\u3092'classes.jar'\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3059\u308B: \n jar cvfm classes.jar mymanifest -C foo/ .\n
+
+main.usage.summary=jar: \u3044\u305A\u308C\u304B\u306E-ctxui\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+main.usage.summary.try=\u8A73\u7D30\u306F\u3001`jar --help'\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+
+main.help.preopt=\u4F7F\u7528\u65B9\u6CD5: jar [OPTION...] [-C dir] files ...\njar\u306F\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30EA\u30BD\u30FC\u30B9\u306E\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3057\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u500B\u3005\u306E\u30AF\u30E9\u30B9\u307E\u305F\u306F\n\u30EA\u30BD\u30FC\u30B9\u3092\u64CD\u4F5C\u307E\u305F\u306F\u5FA9\u5143\u3067\u304D\u307E\u3059\u3002\n\n \u4F8B:\n # 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3080classes.jar\u3068\u3044\u3046\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3059\u308B:\n jar --create --file classes.jar Foo.class Bar.class\n # foo/\u306E\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3080\u3001\u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u3092\u4F7F\u7528\u3057\u305F\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3059\u308B:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \u30E2\u30B8\u30E5\u30E9jar\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3059\u308B\u3002\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF\u306Fclasses/module-info.class\u306B\n # \u3042\u308B:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \u65E2\u5B58\u306E\u975E\u30E2\u30B8\u30E5\u30E9jar\u3092\u30E2\u30B8\u30E5\u30E9jar\u306B\u66F4\u65B0\u3059\u308B:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.opt.main=\ \u30E1\u30A4\u30F3\u64CD\u4F5C\u30E2\u30FC\u30C9:\n
+main.help.opt.main.create=\ -c\u3001--create \u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3057\u307E\u3059
+main.help.opt.main.generate-index=\ -i,\u3001--generate-index=FILE \u6307\u5B9A\u306Ejar\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u7D22\u5F15\u60C5\u5831\u3092\n \u751F\u6210\u3057\u307E\u3059
+main.help.opt.main.list=\ -t\u3001--list \u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u5185\u5BB9\u3092\u4E00\u89A7\u8868\u793A\u3057\u307E\u3059
+main.help.opt.main.update=\ -u\u3001--update \u65E2\u5B58\u306Ejar\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u66F4\u65B0\u3057\u307E\u3059
+main.help.opt.main.extract=\ -x\u3001--extract \u6307\u5B9A\u306E(\u307E\u305F\u306F\u3059\u3079\u3066\u306E)\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u62BD\u51FA\u3057\u307E\u3059
+main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor \u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF\u3092\u51FA\u529B\u3057\u307E\u3059
+main.help.opt.any=\ \u3069\u306E\u30E2\u30FC\u30C9\u3067\u3082\u6709\u52B9\u306A\u64CD\u4F5C\u4FEE\u98FE\u5B50:\n\n -C DIR \u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5909\u66F4\u3057\u3001\u6B21\u306E\u30D5\u30A1\u30A4\u30EB\u3092\n \u53D6\u308A\u8FBC\u307F\u307E\u3059
+main.help.opt.any.file=\ -f\u3001--file=FILE \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D
+main.help.opt.any.verbose=\ -v\u3001--verbose \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3057\u307E\u3059
+main.help.opt.create.update=\ \u4F5C\u6210\u307E\u305F\u306F\u66F4\u65B0\u30E2\u30FC\u30C9\u3067\u306E\u307F\u6709\u52B9\u306A\u64CD\u4F5C\u4FEE\u98FE\u5B50:\n
+main.help.opt.create.update.main-class=\ -e\u3001--main-class=CLASSNAME \u30E2\u30B8\u30E5\u30E9\u307E\u305F\u306F\u5B9F\u884C\u53EF\u80FD\u306Ajar\u30A2\u30FC\u30AB\u30A4\u30D6\u306B\n \u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\n \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8
+main.help.opt.create.update.manifest=\ -m\u3001--manifest=FILE \u6307\u5B9A\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u60C5\u5831\u3092\n \u53D6\u308A\u8FBC\u307F\u307E\u3059
+main.help.opt.create.update.no-manifest=\ -M\u3001--no-manifest \u30A8\u30F3\u30C8\u30EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u307E\u305B\u3093
+main.help.opt.create.update.module-version=\ --module-version=VERSION \u30E2\u30B8\u30E5\u30E9jar\u306E\u4F5C\u6210\u6642\u307E\u305F\u306F\u975E\u30E2\u30B8\u30E5\u30E9jar\u306E\u66F4\u65B0\u6642\u306E\n \u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3
+main.help.opt.create.update.hash-dependencies=\ --hash-dependencies=PATTERN \u30E2\u30B8\u30E5\u30E9jar\u306E\u4F5C\u6210\u6642\u307E\u305F\u306F\n \u975E\u30E2\u30B8\u30E5\u30E9jar\u306E\u66F4\u65B0\u6642\u306B\u3001\u6307\u5B9A\u306E\u30D1\u30BF\u30FC\u30F3\u3067\n \u4E00\u81F4\u3057\u305F\u30E2\u30B8\u30E5\u30FC\u30EB\u4F9D\u5B58\u6027\u306E\u30CF\u30C3\u30B7\u30E5\u3092\n \u8A08\u7B97\u304A\u3088\u3073\u8A18\u9332\u3057\u307E\u3059
+main.help.opt.create.update.modulepath=\ --modulepath \u751F\u6210\u3059\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u4F9D\u5B58\u6027\u306E\u5834\u6240
+\ \u30CF\u30C3\u30B7\u30E5
+main.help.opt.create.update.index=\ \u4F5C\u6210\u3001\u66F4\u65B0\u304A\u3088\u3073\u7D22\u5F15\u751F\u6210\u30E2\u30FC\u30C9\u3067\u306E\u307F\u6709\u52B9\u306A\u64CD\u4F5C\u4FEE\u98FE\u5B50:\n
+main.help.opt.create.update.index.no-compress=\ -0, --no-compress \u683C\u7D0D\u306E\u307F\u3002ZIP\u5727\u7E2E\u3092\u4F7F\u7528\u3057\u307E\u305B\u3093
+main.help.opt.other=\ \u305D\u306E\u4ED6\u306E\u30AA\u30D7\u30B7\u30E7\u30F3:\n
+main.help.opt.other.help=\ -?, --help[:compat] \u3053\u308C(\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u4E92\u63DB\u6027)\u3092help\u306B\u6307\u5B9A\u3057\u307E\u3059
+main.help.opt.other.version=\ --version \u30D7\u30ED\u30B0\u30E9\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u307E\u3059
+main.help.postopt=\ \u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF'module-info.class'\u304C\u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30EB\u30FC\u30C8\u307E\u305F\u306F\n jar\u30A2\u30FC\u30AB\u30A4\u30D6\u81EA\u4F53\u306E\u30EB\u30FC\u30C8\u306B\u3042\u308B\u5834\u5408\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u306F\u30E2\u30B8\u30E5\u30E9jar\u3067\u3059\u3002\n \u6B21\u306E\u64CD\u4F5C\u306F\u3001\u30E2\u30B8\u30E5\u30E9jar\u306E\u4F5C\u6210\u6642\u307E\u305F\u306F\u65E2\u5B58\u306E\u975E\u30E2\u30B8\u30E5\u30E9jar\u306E\u66F4\u65B0\u6642\u306B\n \u306E\u307F\u6709\u52B9\u3067\u3059: '--module-version'\u3001\n '--hash-dependencies'\u304A\u3088\u3073'--modulepath'\u3002\n\n \u30ED\u30F3\u30B0\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3078\u306E\u5FC5\u9808\u307E\u305F\u306F\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5F15\u6570\u306F\u3001\u5BFE\u5FDC\u3059\u308B\u30B7\u30E7\u30FC\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\n \u306B\u5BFE\u3057\u3066\u3082\u5FC5\u9808\u307E\u305F\u306F\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306A\u308A\u307E\u3059\u3002
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ko.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ko.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,12 @@
# questions.
#
-error.cant.open=\uC5F4 \uC218 \uC5C6\uC74C: {0}
+error.multiple.main.operations='-cuxti' \uC635\uC158\uC744 \uC5EC\uB7EC \uAC1C \uC9C0\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+error.cant.open=\uC5F4 \uC218 \uC5C6\uC74C: {0}
error.illegal.option=\uC798\uBABB\uB41C \uC635\uC158: {0}
+error.unrecognized.option=\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uC635\uC158: {0}
+error.missing.arg={0} \uC635\uC158\uC5D0 \uC778\uC218\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.
+error.bad.file.arg=\uD30C\uC77C \uC778\uC218 \uAD6C\uBB38\uC744 \uBD84\uC11D\uD558\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.
error.bad.option=\uC635\uC158 -{ctxu} \uC911 \uD558\uB098\uB97C \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.
error.bad.cflag='c' \uD50C\uB798\uADF8\uB97C \uC0AC\uC6A9\uD558\uB824\uBA74 Manifest \uB610\uB294 \uC785\uB825 \uD30C\uC77C\uC744 \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4!
error.bad.uflag='u' \uD50C\uB798\uADF8\uB97C \uC0AC\uC6A9\uD558\uB824\uBA74 Manifest, 'e' \uD50C\uB798\uADF8 \uB610\uB294 \uC785\uB825 \uD30C\uC77C\uC744 \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4!
@@ -34,8 +38,15 @@
error.create.dir={0}: \uB514\uB809\uD1A0\uB9AC\uB97C \uC0DD\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
error.incorrect.length=\uCC98\uB9AC \uC911 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC740 \uAE38\uC774\uAC00 \uBC1C\uACAC\uB428: {0}
error.create.tempfile=\uC784\uC2DC \uD30C\uC77C\uC744 \uC0DD\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+error.hash.dep=\uBAA8\uB4C8 {0} \uC885\uC18D\uC131\uC744 \uD574\uC2DC\uD558\uB294 \uC911 \uBAA8\uB4C8 \uACBD\uB85C\uC5D0\uC11C {1} \uBAA8\uB4C8\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+error.module.options.without.info=module-info.class \uC5C6\uC774 --module-version \uB610\uB294 --hash-dependencies \uC911 \uD558\uB098
+error.unexpected.module-info=\uC608\uC0C1\uCE58 \uC54A\uC740 \uBAA8\uB4C8 \uAE30\uC220\uC790 {0}
+error.module.descriptor.not.found=\uBAA8\uB4C8 \uAE30\uC220\uC790\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC74C
+error.missing.provider=\uC11C\uBE44\uC2A4 \uC81C\uACF5\uC790\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC74C: {0}
out.added.manifest=Manifest\uB97C \uCD94\uAC00\uD568
+out.added.module-info=module-info.class\uB97C \uCD94\uAC00\uD568
out.update.manifest=Manifest\uB97C \uC5C5\uB370\uC774\uD2B8\uD568
+out.update.module-info=module-info.class\uB97C \uC5C5\uB370\uC774\uD2B8\uD568
out.ignore.entry={0} \uD56D\uBAA9\uC744 \uBB34\uC2DC\uD558\uB294 \uC911
out.adding=\uCD94\uAC00\uD558\uB294 \uC911: {0}
out.deflated=({0}%\uB97C \uAC10\uC18C\uD568)
@@ -45,4 +56,33 @@
out.inflated=\ \uC99D\uAC00\uB428: {0}
out.size=(\uC785\uB825 = {0}) (\uCD9C\uB825 = {1})
-usage=\uC0AC\uC6A9\uBC95: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\uC635\uC158:\n -c \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -t \uC544\uCE74\uC774\uBE0C\uC5D0 \uB300\uD55C \uBAA9\uCC28\uB97C \uB098\uC5F4\uD569\uB2C8\uB2E4.\n -x \uBA85\uBA85\uB41C(\uB610\uB294 \uBAA8\uB4E0) \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C \uCD94\uCD9C\uD569\uB2C8\uB2E4.\n -u \uAE30\uC874 \uC544\uCE74\uC774\uBE0C\uB97C \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4.\n -v \uD45C\uC900 \uCD9C\uB825\uC5D0 \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -f \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -m \uC9C0\uC815\uB41C Manifest \uD30C\uC77C\uC758 Manifest \uC815\uBCF4\uB97C \uD3EC\uD568\uD569\uB2C8\uB2E4.\n -n \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD55C \uD6C4 Pack200 \uC815\uADDC\uD654\uB97C \uC218\uD589\uD569\uB2C8\uB2E4.\n -e jar \uC2E4\uD589 \uD30C\uC77C\uC5D0 \uBC88\uB4E4\uB85C \uC81C\uACF5\uB41C \uB3C5\uB9BD\uD615 \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8\uC758 \n \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8 \uC2DC\uC791 \uC9C0\uC810\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -0 \uC800\uC7A5 \uC804\uC6A9: ZIP \uC555\uCD95\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -M \uD56D\uBAA9\uC5D0 \uB300\uD574 Manifest \uD30C\uC77C\uC744 \uC0DD\uC131\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -i \uC9C0\uC815\uB41C jar \uD30C\uC77C\uC5D0 \uB300\uD55C \uC778\uB371\uC2A4 \uC815\uBCF4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -C \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uB85C \uBCC0\uACBD\uD558\uACE0 \uB2E4\uC74C \uD30C\uC77C\uC744 \uD3EC\uD568\uD569\uB2C8\uB2E4.\n\uD2B9\uC815 \uD30C\uC77C\uC774 \uB514\uB809\uD1A0\uB9AC\uC77C \uACBD\uC6B0 \uC21C\uD658\uC801\uC73C\uB85C \uCC98\uB9AC\uB429\uB2C8\uB2E4.\nManifest \uD30C\uC77C \uC774\uB984, \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984 \uBC0F \uC2DC\uC791 \uC9C0\uC810 \uC774\uB984\uC740\n'm', 'f' \uBC0F 'e' \uD50C\uB798\uADF8\uC640 \uB3D9\uC77C\uD55C \uC21C\uC11C\uB85C \uC9C0\uC815\uB429\uB2C8\uB2E4.\n\n\uC608 1: classes.jar\uB77C\uB294 \uC544\uCE74\uC774\uBE0C\uC5D0 \uB450 \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvf classes.jar Foo.class Bar.class \n\uC608 2: \uAE30\uC874 Manifest \uD30C\uC77C 'mymanifest'\uB97C \uC0AC\uC6A9\uD558\uC5EC\n foo/ \uB514\uB809\uD1A0\uB9AC\uC758 \uBAA8\uB4E0 \uD30C\uC77C\uC744 'classes.jar'\uB85C \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvfm classes.jar mymanifest -C foo/ .
+usage.compat=\uD638\uD658\uC131 \uC778\uD130\uD398\uC774\uC2A4:\n\uC0AC\uC6A9\uBC95: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\uC635\uC158:\n -c \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -t \uC544\uCE74\uC774\uBE0C\uC5D0 \uB300\uD55C \uBAA9\uCC28\uB97C \uB098\uC5F4\uD569\uB2C8\uB2E4.\n -x \uBA85\uBA85\uB41C(\uB610\uB294 \uBAA8\uB4E0) \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C \uCD94\uCD9C\uD569\uB2C8\uB2E4.\n -u \uAE30\uC874 \uC544\uCE74\uC774\uBE0C\uB97C \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4.\n -v \uD45C\uC900 \uCD9C\uB825\uC5D0 \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -f \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -m \uC9C0\uC815\uB41C Manifest \uD30C\uC77C\uC758 Manifest \uC815\uBCF4\uB97C \uD3EC\uD568\uD569\uB2C8\uB2E4.\n -n \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD55C \uD6C4 Pack200 \uC815\uADDC\uD654\uB97C \uC218\uD589\uD569\uB2C8\uB2E4.\n -e jar \uC2E4\uD589 \uD30C\uC77C\uC5D0 \uBC88\uB4E4\uB85C \uC81C\uACF5\uB41C \uB3C5\uB9BD\uD615 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC758 \n \uC560\uD50C\uB9AC\uCF00\uC774\uC158 \uC2DC\uC791 \uC9C0\uC810\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -0 \uC800\uC7A5 \uC804\uC6A9\uC774\uBA70 ZIP \uC555\uCD95\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -P \uD30C\uC77C \uC774\uB984\uC5D0\uC11C \uC120\uD589 '/'(\uC808\uB300 \uACBD\uB85C) \uBC0F ".."(\uC0C1\uC704 \uB514\uB809\uD1A0\uB9AC) \uAD6C\uC131 \uC694\uC18C\uB97C \uC720\uC9C0\uD569\uB2C8\uB2E4.\n -M \uD56D\uBAA9\uC5D0 \uB300\uD574 Manifest \uD30C\uC77C\uC744 \uC0DD\uC131\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -i \uC9C0\uC815\uB41C jar \uD30C\uC77C\uC5D0 \uB300\uD55C \uC778\uB371\uC2A4 \uC815\uBCF4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -C \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uB85C \uBCC0\uACBD\uD558\uACE0 \uB2E4\uC74C \uD30C\uC77C\uC744 \uD3EC\uD568\uD569\uB2C8\uB2E4.\n\uD2B9\uC815 \uD30C\uC77C\uC774 \uB514\uB809\uD1A0\uB9AC\uC77C \uACBD\uC6B0 \uC21C\uD658\uC801\uC73C\uB85C \uCC98\uB9AC\uB429\uB2C8\uB2E4.\nManifest \uD30C\uC77C \uC774\uB984, \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984 \uBC0F \uC2DC\uC791 \uC9C0\uC810 \uC774\uB984\uC740\n'm', 'f' \uBC0F 'e' \uD50C\uB798\uADF8\uC640 \uB3D9\uC77C\uD55C \uC21C\uC11C\uB85C \uC9C0\uC815\uB429\uB2C8\uB2E4.\n\n\uC608 1: classes.jar\uB77C\uB294 \uC544\uCE74\uC774\uBE0C\uC5D0 \uB450 \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvf classes.jar Foo.class Bar.class \n\uC608 2: \uAE30\uC874 Manifest \uD30C\uC77C 'mymanifest'\uB97C \uC0AC\uC6A9\uD558\uC5EC\n foo/ \uB514\uB809\uD1A0\uB9AC\uC758 \uBAA8\uB4E0 \uD30C\uC77C\uC744 'classes.jar'\uB85C \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvfm classes.jar mymanifest -C foo/ .\n
+
+main.usage.summary=jar: -ctxui \uC635\uC158 \uC911 \uD558\uB098\uB97C \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.
+main.usage.summary.try=\uC790\uC138\uD55C \uB0B4\uC6A9\uC744 \uBCF4\uB824\uBA74 'jar --help'\uB97C \uC2E4\uD589\uD558\uC2ED\uC2DC\uC624.
+
+main.help.preopt=\uC0AC\uC6A9\uBC95: jar [OPTION...] [-C dir] files ...\njar\uB294 \uD074\uB798\uC2A4 \uBC0F \uB9AC\uC18C\uC2A4\uC5D0 \uB300\uD55C \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4. \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C\n\uAC1C\uBCC4 \uD074\uB798\uC2A4\uB098 \uB9AC\uC18C\uC2A4\uB97C \uC870\uC791\uD558\uAC70\uB098 \uBCF5\uC6D0\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.\n\n \uC608\uC81C:\n # \uB450 \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uC0AC\uC6A9\uD558\uC5EC classes.jar\uB77C\uB294 \uC544\uCE74\uC774\uBE0C \uC0DD\uC131:\n jar --create --file classes.jar Foo.class Bar.class\n # \uAE30\uC874 Manifest\uB97C \uC0AC\uC6A9\uD558\uC5EC \uBAA8\uB4E0 \uD30C\uC77C\uC774 foo/\uC5D0 \uD3EC\uD568\uB41C \uC544\uCE74\uC774\uBE0C \uC0DD\uC131:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \uBAA8\uB4C8 \uAE30\uC220\uC790\uAC00 classes/module-info.class\uC5D0 \uC704\uCE58\uD55C\n # \uBAA8\uB4C8\uD615 jar \uC544\uCE74\uC774\uBE0C \uC0DD\uC131:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \uAE30\uC874 \uBE44\uBAA8\uB4C8 jar\uB97C \uBAA8\uB4C8\uD615 jar\uB85C \uC5C5\uB370\uC774\uD2B8:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.opt.main=\ \uAE30\uBCF8 \uC791\uC5C5 \uBAA8\uB4DC:\n
+main.help.opt.main.create=\ -c, --create \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.
+main.help.opt.main.generate-index=\ -i, --generate-index=FILE \uC9C0\uC815\uB41C jar \uC544\uCE74\uC774\uBE0C\uC5D0 \uB300\uD55C \uC778\uB371\uC2A4 \uC815\uBCF4\uB97C\n \uC0DD\uC131\uD569\uB2C8\uB2E4.
+main.help.opt.main.list=\ -t, --list \uC544\uCE74\uC774\uBE0C\uC5D0 \uB300\uD55C \uBAA9\uCC28\uB97C \uB098\uC5F4\uD569\uB2C8\uB2E4.
+main.help.opt.main.update=\ -u, --update \uAE30\uC874 jar \uC544\uCE74\uC774\uBE0C\uB97C \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4.
+main.help.opt.main.extract=\ -x, --extract \uBA85\uBA85\uB41C(\uB610\uB294 \uBAA8\uB4E0) \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C \uCD94\uCD9C\uD569\uB2C8\uB2E4.
+main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor \uBAA8\uB4C8 \uAE30\uC220\uC790\uB97C \uC778\uC1C4\uD569\uB2C8\uB2E4.
+main.help.opt.any=\ \uBAA8\uB4E0 \uBAA8\uB4DC\uC5D0\uC11C \uC801\uD569\uD55C \uC791\uC5C5 \uC218\uC815\uC790:\n\n -C DIR \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uB85C \uBCC0\uACBD\uD558\uACE0 \uB2E4\uC74C \uD30C\uC77C\uC744\n \uD3EC\uD568\uD569\uB2C8\uB2E4.
+main.help.opt.any.file=\ -f, --file=FILE \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984\uC785\uB2C8\uB2E4.
+main.help.opt.any.verbose=\ -v, --verbose \uD45C\uC900 \uCD9C\uB825\uC5D0 \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.
+main.help.opt.create.update=\ \uC0DD\uC131 \uBC0F \uC5C5\uB370\uC774\uD2B8 \uBAA8\uB4DC\uC5D0\uC11C\uB9CC \uC801\uD569\uD55C \uC791\uC5C5 \uC218\uC815\uC790:\n
+main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME \uBAA8\uB4C8\uD615 \uB610\uB294 \uC2E4\uD589\uD615 jar \uC544\uCE74\uC774\uBE0C\uC5D0 \uBC88\uB4E4\uB85C\n \uC81C\uACF5\uB41C \uB3C5\uB9BD\uD615 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC758 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\n \uC2DC\uC791 \uC9C0\uC810\uC785\uB2C8\uB2E4.
+main.help.opt.create.update.manifest=\ -m, --manifest=FILE \uC9C0\uC815\uB41C Manifest \uD30C\uC77C\uC758 Manifest \uC815\uBCF4\uB97C\n \uD3EC\uD568\uD569\uB2C8\uB2E4.
+main.help.opt.create.update.no-manifest=\ -M, --no-manifest \uD56D\uBAA9\uC5D0 \uB300\uD574 Manifest \uD30C\uC77C\uC744 \uC0DD\uC131\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+main.help.opt.create.update.module-version=\ --module-version=VERSION \uBAA8\uB4C8\uD615 jar\uB97C \uC0DD\uC131\uD558\uAC70\uB098 \uBE44\uBAA8\uB4C8 jar\uB97C\n \uC5C5\uB370\uC774\uD2B8\uD560 \uB54C \uBAA8\uB4C8 \uBC84\uC804\uC785\uB2C8\uB2E4.
+main.help.opt.create.update.hash-dependencies=\ --hash-dependencies=PATTERN \uBAA8\uB4C8\uD615 jar\uB97C \uC0DD\uC131\uD558\uAC70\uB098 \uBE44\uBAA8\uB4C8 jar\uB97C\n \uC5C5\uB370\uC774\uD2B8\uD560 \uB54C \uC8FC\uC5B4\uC9C4 \uD328\uD134\uACFC \uC77C\uCE58\uD558\uB294\n \uBAA8\uB4C8 \uC885\uC18D\uC131\uC758 \uD574\uC2DC\uB97C \uCEF4\uD4E8\uD2B8\uD558\uACE0\n \uAE30\uB85D\uD569\uB2C8\uB2E4.
+main.help.opt.create.update.modulepath=\ --modulepath \uD574\uC2DC\uB97C \uC0DD\uC131\uD558\uAE30 \uC704\uD55C \uBAA8\uB4C8 \uC885\uC18D\uC131\uC758
+\ \uC704\uCE58\uC785\uB2C8\uB2E4.
+main.help.opt.create.update.index=\ \uC0DD\uC131, \uC5C5\uB370\uC774\uD2B8 \uBC0F generate-index \uBAA8\uB4DC\uC5D0\uC11C\uB9CC \uC801\uD569\uD55C \uC791\uC5C5 \uC218\uC815\uC790:\n
+main.help.opt.create.update.index.no-compress=\ -0, --no-compress \uC800\uC7A5 \uC804\uC6A9\uC774\uBA70 ZIP \uC555\uCD95\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+main.help.opt.other=\ \uAE30\uD0C0 \uC635\uC158:\n
+main.help.opt.other.help=\ -?, --help[:compat] \uC774 \uB3C4\uC6C0\uB9D0(\uB610\uB294 \uC120\uD0DD\uC801\uC73C\uB85C \uD638\uD658\uC131)\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4.
+main.help.opt.other.version=\ --version \uD504\uB85C\uADF8\uB7A8 \uBC84\uC804\uC744 \uC778\uC1C4\uD569\uB2C8\uB2E4.
+main.help.postopt=\ \uC544\uCE74\uC774\uBE0C\uB294 \uBAA8\uB4C8 \uAE30\uC220\uC790 'module-info.class'\uAC00 \uC8FC\uC5B4\uC9C4 \uB514\uB809\uD1A0\uB9AC\uC758\n \uB8E8\uD2B8 \uB610\uB294 jar \uC544\uCE74\uC774\uBE0C \uC790\uCCB4\uC758 \uB8E8\uD2B8\uC5D0 \uC704\uCE58\uD55C \uACBD\uC6B0 \uBAA8\uB4C8\uD615 jar\uC785\uB2C8\uB2E4.\n \uB2E4\uC74C \uC791\uC5C5\uC740 \uBAA8\uB4C8\uD615 jar\uB97C \uC0DD\uC131\uD558\uAC70\uB098 \uAE30\uC874 \uBE44\uBAA8\uB4C8 jar\uB97C\n \uC5C5\uB370\uC774\uD2B8\uD560 \uB54C\uB9CC \uC801\uD569\uD569\uB2C8\uB2E4. '--module-version',\n '--hash-dependencies', '--modulepath'.\n\n long \uC635\uC158\uC758 \uD544\uC218 \uB610\uB294 \uC120\uD0DD\uC801 \uC778\uC218\uB294 \uD574\uB2F9\uD558\uB294 short \uC635\uC158\uC5D0 \uB300\uD574\uC11C\uB3C4\n \uD544\uC218 \uB610\uB294 \uC120\uD0DD\uC801\uC785\uB2C8\uB2E4.
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_pt_BR.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_pt_BR.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,12 @@
# questions.
#
-error.cant.open=n\u00E3o \u00E9 poss\u00EDvel abrir: {0}
+error.multiple.main.operations=Voc\u00EA n\u00E3o pode especificar mais de uma das op\u00E7\u00F5es '-cuxti'
+error.cant.open=n\u00E3o \u00E9 poss\u00EDvel abrir: {0}
error.illegal.option=Op\u00E7\u00E3o inv\u00E1lida: {0}
+error.unrecognized.option=op\u00E7\u00E3o n\u00E3o reconhecida : {0}
+error.missing.arg=a op\u00E7\u00E3o {0} exige um argumento
+error.bad.file.arg=Erro ao fazer parsing dos argumentos de arquivo
error.bad.option=Uma das op\u00E7\u00F5es -{ctxu} deve ser especificada.
error.bad.cflag=flag 'c' requer que os arquivos de manifesto ou entrada sejam especificados!
error.bad.uflag=o flag 'u' requer que arquivos de manifesto, o flag 'e' ou arquivos de entrada sejam especificados!
@@ -34,8 +38,15 @@
error.create.dir={0} : n\u00E3o foi poss\u00EDvel criar o diret\u00F3rio
error.incorrect.length=largura incorreta durante o processamento: {0}
error.create.tempfile=N\u00E3o foi poss\u00EDvel criar um arquivo tempor\u00E1rio
+error.hash.dep=M\u00F3dulo de hashing com {0} depend\u00EAncias. N\u00E3o \u00E9 poss\u00EDvel localizar o m\u00F3dulo {1} no caminho do m\u00F3dulo
+error.module.options.without.info=Um dentre --module-version ou --hash-dependencies est\u00E1 sem module-info.class
+error.unexpected.module-info=Descritor de m\u00F3dulo inesperado {0}
+error.module.descriptor.not.found=Descritor de m\u00F3dulo n\u00E3o encontrado
+error.missing.provider=Prestador de servi\u00E7os n\u00E3o encontrado: {0}
out.added.manifest=manifesto adicionado
+out.added.module-info=module-info.class adicionado
out.update.manifest=manifesto atualizado
+out.update.module-info=module-info.class atualizado
out.ignore.entry=ignorando entrada {0}
out.adding=adicionando: {0}
out.deflated=(compactado {0}%)
@@ -45,4 +56,33 @@
out.inflated=\ inflado: {0}
out.size=(entrada = {0}) (sa\u00EDda= {1})
-usage=Uso: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] arquivos ...\nOp\u00E7\u00F5es:\n -c cria novo arquivo compactado\n -t lista o sum\u00E1rio do arquivo compactado\n -x extrai arquivos com o nome (ou todos) do arquivo compactado\n -u atualiza o arquivo compactado existente\n -v gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o\n -f especifica o nome do arquivo do arquivo compactado\n -m inclui as informa\u00E7\u00F5es do manifesto do arquivo de manifesto especificado\n -n executa a normaliza\u00E7\u00E3o Pack200 ap\u00F3s a cria\u00E7\u00E3o de um novo arquivo compactado\n -e especifica o ponto de entrada da aplica\u00E7\u00E3o para aplica\u00E7\u00E3o stand-alone \n empacotada em um arquivo jar execut\u00E1vel\n -0 armazena somente; n\u00E3o usa compacta\u00E7\u00E3o ZIP\n -M n\u00E3o cria um arquivo de manifesto para as entradas\n -i gera informa\u00E7\u00F5es de \u00EDndice para os arquivos especificados\n -C passa para o diret\u00F3rio especificado e inclui o arquivo a seguir\nSe um arquivo tamb\u00E9m for um diret\u00F3rio, ele ser\u00E1 processado repetidamente.\nO nome do arquivo de manifesto, o nome do arquivo compactado e o nome do ponto de entrada s\u00E3o\nespecificados na mesma ordem dos flags 'm', 'f' e 'e'.\n\nExemplo 1: para arquivar dois arquivos de classe em um arquivo compactado denominado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExemplo 2: use um arquivo de manifesto existente 'mymanifest' e arquive todos os\n arquivos no diret\u00F3rio foo/ na 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=Interface de Compatibilidade:\nUso: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] arquivos ...\nOp\u00E7\u00F5es:\n -c cria novo arquivo compactado\n -t lista o sum\u00E1rio do arquivo compactado\n -x extrai arquivos com o nome (ou todos) do arquivo compactado\n -u atualiza o arquivo compactado existente\n -v gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o\n -f especifica o nome do arquivo do arquivo compactado\n -m inclui as informa\u00E7\u00F5es do manifesto do arquivo de manifesto especificado\n -n executa a normaliza\u00E7\u00E3o Pack200 ap\u00F3s a cria\u00E7\u00E3o de um novo arquivo compactado\n -e especifica o ponto de entrada da aplicativo para aplicativo stand-alone \n empacotada em um arquivo jar execut\u00E1vel\n -0 armazena somente; n\u00E3o usa compacta\u00E7\u00E3o ZIP\n -P preserva os componentes '/' inicial (caminho absoluto) e ".." (diret\u00F3rio pai) nos nomes dos arquivos\n -M n\u00E3o cria um arquivo de manifesto para as entradas\n -i gera informa\u00E7\u00F5es de \u00EDndice para os arquivos especificados\n -C passa para o diret\u00F3rio especificado e inclui o arquivo a seguir\nSe um arquivo tamb\u00E9m for um diret\u00F3rio, ele ser\u00E1 processado repetidamente.\nO nome do arquivo de manifesto, o nome do arquivo compactado e o nome do ponto de entrada s\u00E3o\nespecificados na mesma ordem dos flags 'm', 'f' e 'e'.\n\nExemplo 1: para arquivar dois arquivos de classe em um arquivo compactado denominado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExemplo 2: use um arquivo de manifesto existente 'mymanifest' e arquive todos os\n arquivos no diret\u00F3rio foo/ na 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+
+main.usage.summary=jar: Voc\u00EA deve especificar uma das op\u00E7\u00F5es -ctxui.
+main.usage.summary.try=Tente `jar --ajuda' para obter mais informa\u00E7\u00F5es.
+
+main.help.preopt=Uso: jar [OPTION...] [-C dir] arquivos...\njar cria um arquivo compactado para classes e recursos, e pode manipular ou\nrestaurar classes ou recursos individuais de um arquivo compactado.\n\n Exemplos:\n # Cria um arquivo compactado chamado classes.jar com dois arquivos de classe:\n jar --create --file classes.jar Foo.class Bar.class\n # Cria um arquivo compactado usando um manifesto existente, com todos os arquivos em foo/:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Cria um arquivo compactado jar modular, em que o descritor do m\u00F3dulo se localize em\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Atualiza um arquivo jar n\u00E3o modular existente para um jar modular:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.opt.main=\ Modo de opera\u00E7\u00E3o principal:\n
+main.help.opt.main.create=\ -c, --create Cria o arquivo compactado
+main.help.opt.main.generate-index=\ -i, --generate-index=FILE Gera informa\u00E7\u00F5es de \u00EDndice para os arquivos compactados jar \n especificados
+main.help.opt.main.list=\ -t, --list Lista o conte\u00FAdo do arquivo compactado
+main.help.opt.main.update=\ -u, --update Atualiza um arquivo compactado jar existente
+main.help.opt.main.extract=\ -x, --extract Extrai arquivos nomeados (ou todos) do arquivo compactado
+main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Imprime o descritor do m\u00F3dulo
+main.help.opt.any=\ Modificadores de opera\u00E7\u00E3o v\u00E1lidos em qualquer modo:\n\n -C DIR Altera para o diret\u00F3rio especificado e inclui o\n seguinte arquivo:
+main.help.opt.any.file=\ -f, --file=FILE O nome do arquivo compactado
+main.help.opt.any.verbose=\ -v, --verbose Gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o
+main.help.opt.create.update=\ Modificadores de opera\u00E7\u00E3o v\u00E1lidos somente no modo de cria\u00E7\u00E3o e atualiza\u00E7\u00E3o:\n
+main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME O ponto de entrada do aplicativo para aplicativos\n stand-alone empacotados em um arquivo compactado jar modular\n ou execut\u00E1vel
+main.help.opt.create.update.manifest=\ -m, --manifest=FILE Inclui as informa\u00E7\u00F5es de manifesto provenientes do arquivo de\n manifesto em quest\u00E3o
+main.help.opt.create.update.no-manifest=\ -M, --no-manifest N\u00E3o cria um arquivo de manifesto para as entradas
+main.help.opt.create.update.module-version=\ --module-version=VERSION A vers\u00E3o do m\u00F3dulo, ao criar um arquivo jar\n modular, ou atualizar um arquivo jar n\u00E3o modular
+main.help.opt.create.update.hash-dependencies=\ --hash-dependencies=PATTERN Calcula e registra os hashes das depend\u00EAncias do\n m\u00F3dulo correlacionadas pelo padr\u00E3o fornecido, ao\n criar um arquivo jar modular ou atualizar um arquivo jar n\u00E3o\n modular
+main.help.opt.create.update.modulepath=\ --modulepath Localiza\u00E7\u00E3o da depend\u00EAncia de m\u00F3dulo para gerar
+\ o hash
+main.help.opt.create.update.index=\ Modificadores de opera\u00E7\u00E3o v\u00E1lidos somente no modo de cria\u00E7\u00E3o, atualiza\u00E7\u00E3o e gera\u00E7\u00E3o de \u00EDndice:\n
+main.help.opt.create.update.index.no-compress=\ -0, --no-compress Somente armazenamento; n\u00E3o use compacta\u00E7\u00E3o ZIP
+main.help.opt.other=\ Outras op\u00E7\u00F5es:\n
+main.help.opt.other.help=\ -?, --help[:compat] Fornece esta ajuda ou, opcionalmente, a ajuda de compatibilidade
+main.help.opt.other.version=\ --version Imprime a vers\u00E3o do programa
+main.help.postopt=\ Um arquivo compactado \u00E9 um arquivo jar modular se um descritor de m\u00F3dulo, 'module-info.class', estiver\n localizado na raiz dos diret\u00F3rios fornecidos, ou na raiz do arquivo compactado jar\n propriamente dito. As seguintes opera\u00E7\u00F5es s\u00F3 s\u00E3o v\u00E1lidas ao criar um arquivo jar modular,\n ou atualizar um arquivo jar n\u00E3o modular existente: '--module-version',\n '--hash-dependencies', e '--modulepath'.\n\n Argumentos obrigat\u00F3rios ou opcionais para op\u00E7\u00F5es longas tamb\u00E9m s\u00E3o obrigat\u00F3rios ou opcionais\n para quaisquer op\u00E7\u00F5es curtas correspondentes.
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_sv.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_sv.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,12 @@
# questions.
#
-error.cant.open=kan inte \u00F6ppna: {0}
+error.multiple.main.operations=Du kan inte ange flera -cuxti-alternativ
+error.cant.open=kan inte \u00F6ppna: {0}
error.illegal.option=Otill\u00E5tet alternativ: {0}
+error.unrecognized.option=ok\u00E4nt alternativ: {0}
+error.missing.arg=alternativet {0} kr\u00E4ver ett argument
+error.bad.file.arg=Fel vid tolkning av filargument
error.bad.option=Ett av alternativen -{ctxu} m\u00E5ste anges.
error.bad.cflag=f\u00F6r c-flaggan m\u00E5ste manifest- eller indatafiler anges.
error.bad.uflag=f\u00F6r u-flaggan m\u00E5ste manifest-, e-flagg- eller indatafiler anges.
@@ -34,8 +38,15 @@
error.create.dir={0} : kunde inte skapa n\u00E5gon katalog
error.incorrect.length=ogiltig l\u00E4ngd vid bearbetning: {0}
error.create.tempfile=Kunde inte skapa en tillf\u00E4llig fil
+error.hash.dep={0}-beroenden f\u00F6r hashningsmodulen, kan inte hitta modulen {1} p\u00E5 moduls\u00F6kv\u00E4gen
+error.module.options.without.info=--module-version eller --hash-dependencies utan module-info.class
+error.unexpected.module-info=Ov\u00E4ntad moduldeskriptor, {0}
+error.module.descriptor.not.found=Moduldeskriptorn hittades inte
+error.missing.provider=Tj\u00E4nsteleverant\u00F6ren hittades inte: {0}
out.added.manifest=tillagt manifestfil
+out.added.module-info=lade till module-info.class
out.update.manifest=uppdaterat manifest
+out.update.module-info=uppdaterade module-info.class
out.ignore.entry=ignorerar posten {0}
out.adding=l\u00E4gger till: {0}
out.deflated=({0}% packat)
@@ -45,4 +56,33 @@
out.inflated=\ uppackat: {0}
out.size=(in = {0}) (ut = {1})
-usage=Syntax: jar {ctxui}[vfmn0Me] [jar-fil] [manifestfil] [startpunkt] [-C katalog] filer ...\nAlternativ:\n -c skapa nytt arkiv\n -t lista inneh\u00E5llsf\u00F6rteckning f\u00F6r arkiv\n -x extrahera namngivna (eller alla) filer fr\u00E5n arkiv\n -u uppdatera befintligt arkiv\n -v generera utf\u00F6rliga utdata vid standardutmatning\n -f ange arkivfilens namn\n -m inkludera manifestinformation fr\u00E5n angivet manifest\n -n utf\u00F6r Pack200-normalisering efter att ha skapat ett nytt arkiv\n -e ange programstartpunkt f\u00F6r frist\u00E5ende applikation \n som medf\u00F6ljer i en jar-programfil\n -0 endast lagra (ingen zip-komprimering)\n -M skapa inte n\u00E5gon manifestfil f\u00F6r posterna\n -i generera indexinformation f\u00F6r de angivna jar-filerna\n -C \u00E4ndra till den angivna katalogen och inkludera f\u00F6ljande fil\nOm en fil \u00E4r en katalog bearbetas den rekursivt.\nNamnen p\u00E5 manifestfilen, arkivfilen och startpunkten anges\ni samma ordning som m-, f- och e-flaggorna.\n\nExempel 1: S\u00E5 h\u00E4r arkiverar du tv\u00E5 klassfiler i ett arkiv med namnet classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExempel 2: Anv\u00E4nd en befintlig manifestfil (mymanifest) och arkivera alla\n filer fr\u00E5n katalogen foo/ i classes.jar: \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=Kompatibilitetsgr\u00E4nssnitt:\nSyntax: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\nAlternativ:\n -c skapa nytt arkiv\n -t lista inneh\u00E5llsf\u00F6rteckning f\u00F6r arkiv\n -x extrahera namngivna (eller alla) filer fr\u00E5n arkivet\n -u uppdatera befintligt arkiv\n -v generera utf\u00F6rliga utdata till standardutdata\n -f ange namnet p\u00E5 arkivfilen\n -m inkludera manifestinformation fr\u00E5n den angivna manifestfilen\n -n utf\u00F6r Pack200-normalisering n\u00E4r ett nytt arkiv har skapats\n -e ange applikationsing\u00E5ngspunkt f\u00F6r frist\u00E5ende applikation \n som medf\u00F6ljer i en jar-programfil\n -0 lagra endast, anv\u00E4nd inte ZIP-komprimering\n -P beh\u00E5ll komponenter f\u00F6r inledande '/' (absolut s\u00F6kv\u00E4g) och ".." (\u00F6verordnad katalog) fr\u00E5n filnamn\n -M skapa inte en manifestfil f\u00F6r posterna\n -i generera indexinformation f\u00F6r de angivna jar-filerna\n -C \u00E4ndra till den angivna katalogen och inkludera f\u00F6ljande fil\nOm en fil \u00E4r en katalog bearbetas den rekursivt.\nNamnen p\u00E5 manifestfilen, arkivfilen och ing\u00E5ngspunkten anges med samma\nordning som flaggorna 'm', 'f' och 'e'.\n\nExempel 1: arkivera tv\u00E5 klassfiler i ett arkiv med namnet classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExempel 2: anv\u00E4nd den befintliga manifestfilen 'mymanifest' och arkivera alla\n filer i katalogen 'foo/' till 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+
+main.usage.summary=jar: du m\u00E5ste ange ett av -ctxui-alternativen.
+main.usage.summary.try=F\u00F6rs\u00F6k med 'jar --help' f\u00F6r mer information.
+
+main.help.preopt=Syntax: jar [OPTION...] [-C dir] files ...\njar skapar ett arkiv f\u00F6r klasser och resurser och kan \u00E4ndra eller \n\u00E5terst\u00E4lla enskilda klasser och resurser i/fr\u00E5n ett arkiv.\n\n Exempel:\n # Skapa ett arkiv med namnet classes.jar med tv\u00E5 klassfiler:\n jar --create --file classes.jar Foo.class Bar.class\n # Skapa ett arkiv med ett befintligt manifest med alla filerna i foo/:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Skapa ett modul\u00E4rt jar-arkiv d\u00E4r moduldeskriptorn finns i\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Uppdatera ett befintligt icke-modul\u00E4rt jar-arkiv till ett modul\u00E4rt jar-arkiv:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.opt.main=\ Huvudfunktionsl\u00E4ge:\n
+main.help.opt.main.create=\ -c, --create Skapa arkivet
+main.help.opt.main.generate-index=\ -i, --generate-index=FILE Generera indexinformation f\u00F6r de angivna jar-\n arkiven
+main.help.opt.main.list=\ -t, --list Listar inneh\u00E5llsf\u00F6rteckningen f\u00F6r arkivet
+main.help.opt.main.update=\ -u, --update Uppdatera ett befintligt jar-arkiv
+main.help.opt.main.extract=\ -x, --extract Extrahera namngivna (eller alla) filer fr\u00E5n arkivet
+main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Skriv ut moduldeskriptorn
+main.help.opt.any=\ \u00C5tg\u00E4rdsmodifierare som \u00E4r giltiga i alla l\u00E4gen:\n\n -C DIR \u00C4ndra till den angivna katalogen och inkludera\n f\u00F6ljande fil
+main.help.opt.any.file=\ -f, --file=FILE Arkivfilnamnet
+main.help.opt.any.verbose=\ -v, --verbose Generera utf\u00F6rliga utdata till standardutdata
+main.help.opt.create.update=\ \u00C5tg\u00E4rdsmodifierare som endast \u00E4r giltiga i l\u00E4gena create och update:\n
+main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME Applikationsing\u00E5ngspunkten f\u00F6r frist\u00E5ende\n applikationer paketerad i ett modul\u00E4rt, eller k\u00F6rbart,\n jar-arkiv
+main.help.opt.create.update.manifest=\ -m, --manifest=FILE Inkludera manifestinformationen fr\u00E5n den angivna\n manifestfilen
+main.help.opt.create.update.no-manifest=\ -M, --no-manifest Skapa inte en manifestfil f\u00F6r posterna
+main.help.opt.create.update.module-version=\ --module-version=VERSION Modulversionen vid skapande av ett modul\u00E4rt\n jar-arkiv eller vid uppdatering av ett icke-modul\u00E4rt jar-arkiv
+main.help.opt.create.update.hash-dependencies=\ --hash-dependencies=PATTERN Ber\u00E4kna och registrera hashningarna f\u00F6r\n modulberoenden som matchar det angivna m\u00F6nstret vid skapande\n att ett modul\u00E4rt jar-arkiv eller vid uppdatering av ett\n icke-modul\u00E4rt jar-arkiv
+main.help.opt.create.update.modulepath=\ --modulepath Plats f\u00F6r modulberoende f\u00F6r att generera
+\ hashningen
+main.help.opt.create.update.index=\ \u00C5tg\u00E4rdsmodifierare som endast \u00E4r giltiga i l\u00E4gena create, update och generate-index:\n
+main.help.opt.create.update.index.no-compress=\ -0, --no-compress Endast lagring, anv\u00E4nd ingen ZIP-komprimering
+main.help.opt.other=\ \u00D6vriga alternativ:\n
+main.help.opt.other.help=\ -?, --help[:compat] Visa den h\u00E4r hj\u00E4lpen eller kompatibilitetshj\u00E4lpen (valfritt)
+main.help.opt.other.version=\ --version Skriv ut programversion
+main.help.postopt=\ Ett arkiv \u00E4r ett modul\u00E4rt jar-arkiv om en moduldeskriptor, 'module-info.class',\n finns i roten av de angivna katalogerna eller det angivna jar-arkivet.\n F\u00F6ljande \u00E5tg\u00E4rder \u00E4r endast giltiga vid skapande av ett modul\u00E4rt jar-arkiv och\n vid uppdatering av ett befintligt icke-modul\u00E4rt jar-arkiv: '--module-version',\n '--hash-dependencies' och '--modulepath'.\n\n Obligatoriska och valfria alternativ f\u00F6r l\u00E5nga alternativ \u00E4r \u00E4ven obligatoriska\n respektive valfria f\u00F6r alla motsvarande korta alternativ.
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_CN.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_CN.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,12 @@
# questions.
#
-error.cant.open=\u65E0\u6CD5\u6253\u5F00: {0}
+error.multiple.main.operations=\u4E0D\u80FD\u6307\u5B9A\u591A\u4E2A '-cuxti' \u9009\u9879
+error.cant.open=\u65E0\u6CD5\u6253\u5F00: {0}
error.illegal.option=\u975E\u6CD5\u9009\u9879: {0}
+error.unrecognized.option=\u65E0\u6CD5\u8BC6\u522B\u7684\u9009\u9879: {0}
+error.missing.arg=\u9009\u9879{0}\u9700\u8981\u53C2\u6570
+error.bad.file.arg=\u89E3\u6790\u6587\u4EF6\u53C2\u6570\u65F6\u51FA\u9519
error.bad.option=\u5FC5\u987B\u6307\u5B9A {ctxu} \u4E2D\u7684\u4EFB\u4E00\u9009\u9879\u3002
error.bad.cflag='c' \u6807\u8BB0\u8981\u6C42\u6307\u5B9A\u6E05\u5355\u6216\u8F93\u5165\u6587\u4EF6!
error.bad.uflag='u' \u6807\u8BB0\u8981\u6C42\u6307\u5B9A\u6E05\u5355, 'e' \u6807\u8BB0\u6216\u8F93\u5165\u6587\u4EF6!
@@ -34,8 +38,15 @@
error.create.dir={0}: \u65E0\u6CD5\u521B\u5EFA\u76EE\u5F55
error.incorrect.length=\u5904\u7406\u65F6\u9047\u5230\u4E0D\u6B63\u786E\u7684\u957F\u5EA6: {0}
error.create.tempfile=\u65E0\u6CD5\u521B\u5EFA\u4E34\u65F6\u6587\u4EF6
+error.hash.dep=\u6B63\u5728\u5BF9\u6A21\u5757 {0} \u7684\u88AB\u4F9D\u8D56\u5BF9\u8C61\u6267\u884C\u6563\u5217\u5904\u7406, \u5728\u6A21\u5757\u8DEF\u5F84\u4E2D\u627E\u4E0D\u5230\u6A21\u5757 {1}
+error.module.options.without.info=--module-version \u6216 --hash-dependencies \u4E4B\u4E00\u6CA1\u6709 module-info.class
+error.unexpected.module-info=\u610F\u5916\u7684\u6A21\u5757\u63CF\u8FF0\u7B26 {0}
+error.module.descriptor.not.found=\u627E\u4E0D\u5230\u6A21\u5757\u63CF\u8FF0\u7B26
+error.missing.provider=\u672A\u627E\u5230\u670D\u52A1\u63D0\u4F9B\u65B9: {0}
out.added.manifest=\u5DF2\u6DFB\u52A0\u6E05\u5355
+out.added.module-info=\u5DF2\u6DFB\u52A0 module-info.class
out.update.manifest=\u5DF2\u66F4\u65B0\u6E05\u5355
+out.update.module-info=\u5DF2\u66F4\u65B0 module-info.class
out.ignore.entry=\u6B63\u5728\u5FFD\u7565\u6761\u76EE{0}
out.adding=\u6B63\u5728\u6DFB\u52A0: {0}
out.deflated=(\u538B\u7F29\u4E86 {0}%)
@@ -45,4 +56,33 @@
out.inflated=\ \u5DF2\u89E3\u538B: {0}
out.size=(\u8F93\u5165 = {0}) (\u8F93\u51FA = {1})
-usage=\u7528\u6CD5: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u9009\u9879:\n -c \u521B\u5EFA\u65B0\u6863\u6848\n -t \u5217\u51FA\u6863\u6848\u76EE\u5F55\n -x \u4ECE\u6863\u6848\u4E2D\u63D0\u53D6\u6307\u5B9A\u7684 (\u6216\u6240\u6709) \u6587\u4EF6\n -u \u66F4\u65B0\u73B0\u6709\u6863\u6848\n -v \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA\n -f \u6307\u5B9A\u6863\u6848\u6587\u4EF6\u540D\n -m \u5305\u542B\u6307\u5B9A\u6E05\u5355\u6587\u4EF6\u4E2D\u7684\u6E05\u5355\u4FE1\u606F\n -n \u521B\u5EFA\u65B0\u6863\u6848\u540E\u6267\u884C Pack200 \u89C4\u8303\u5316\n -e \u4E3A\u7ED1\u5B9A\u5230\u53EF\u6267\u884C jar \u6587\u4EF6\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n \u6307\u5B9A\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9\n -0 \u4EC5\u5B58\u50A8; \u4E0D\u4F7F\u7528\u4EFB\u4F55 ZIP \u538B\u7F29\n -M \u4E0D\u521B\u5EFA\u6761\u76EE\u7684\u6E05\u5355\u6587\u4EF6\n -i \u4E3A\u6307\u5B9A\u7684 jar \u6587\u4EF6\u751F\u6210\u7D22\u5F15\u4FE1\u606F\n -C \u66F4\u6539\u4E3A\u6307\u5B9A\u7684\u76EE\u5F55\u5E76\u5305\u542B\u4EE5\u4E0B\u6587\u4EF6\n\u5982\u679C\u4EFB\u4F55\u6587\u4EF6\u4E3A\u76EE\u5F55, \u5219\u5BF9\u5176\u8FDB\u884C\u9012\u5F52\u5904\u7406\u3002\n\u6E05\u5355\u6587\u4EF6\u540D, \u6863\u6848\u6587\u4EF6\u540D\u548C\u5165\u53E3\u70B9\u540D\u79F0\u7684\u6307\u5B9A\u987A\u5E8F\n\u4E0E 'm', 'f' \u548C 'e' \u6807\u8BB0\u7684\u6307\u5B9A\u987A\u5E8F\u76F8\u540C\u3002\n\n\u793A\u4F8B 1: \u5C06\u4E24\u4E2A\u7C7B\u6587\u4EF6\u5F52\u6863\u5230\u4E00\u4E2A\u540D\u4E3A classes.jar \u7684\u6863\u6848\u4E2D: \n jar cvf classes.jar Foo.class Bar.class \n\u793A\u4F8B 2: \u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u6587\u4EF6 'mymanifest' \u5E76\n \u5C06 foo/ \u76EE\u5F55\u4E2D\u7684\u6240\u6709\u6587\u4EF6\u5F52\u6863\u5230 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=\u517C\u5BB9\u6027\u63A5\u53E3:\n\u7528\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u9009\u9879:\n -c \u521B\u5EFA\u65B0\u6863\u6848\n -t \u5217\u51FA\u6863\u6848\u76EE\u5F55\n -x \u4ECE\u6863\u6848\u4E2D\u63D0\u53D6\u6307\u5B9A\u7684 (\u6216\u6240\u6709) \u6587\u4EF6\n -u \u66F4\u65B0\u73B0\u6709\u6863\u6848\n -v \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA\n -f \u6307\u5B9A\u6863\u6848\u6587\u4EF6\u540D\n -m \u5305\u542B\u6307\u5B9A\u6E05\u5355\u6587\u4EF6\u4E2D\u7684\u6E05\u5355\u4FE1\u606F\n -n \u521B\u5EFA\u65B0\u6863\u6848\u540E\u6267\u884C Pack200 \u89C4\u8303\u5316\n -e \u4E3A\u6346\u7ED1\u5230\u53EF\u6267\u884C jar \u6587\u4EF6\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n \u6307\u5B9A\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9\n -0 \u4EC5\u5B58\u50A8; \u4E0D\u4F7F\u7528 ZIP \u538B\u7F29\n -P \u4FDD\u7559\u6587\u4EF6\u540D\u4E2D\u7684\u524D\u5BFC '/' (\u7EDD\u5BF9\u8DEF\u5F84) \u548C ".." (\u7236\u76EE\u5F55) \u7EC4\u4EF6\n -M \u4E0D\u521B\u5EFA\u6761\u76EE\u7684\u6E05\u5355\u6587\u4EF6\n -i \u4E3A\u6307\u5B9A\u7684 jar \u6587\u4EF6\u751F\u6210\u7D22\u5F15\u4FE1\u606F\n -C \u66F4\u6539\u4E3A\u6307\u5B9A\u7684\u76EE\u5F55\u5E76\u5305\u542B\u4EE5\u4E0B\u6587\u4EF6\n\u5982\u679C\u4EFB\u4F55\u6587\u4EF6\u4E3A\u76EE\u5F55, \u5219\u5BF9\u5176\u8FDB\u884C\u9012\u5F52\u5904\u7406\u3002\n\u6E05\u5355\u6587\u4EF6\u540D, \u6863\u6848\u6587\u4EF6\u540D\u548C\u5165\u53E3\u70B9\u540D\u79F0\u7684\u6307\u5B9A\u987A\u5E8F\n\u4E0E 'm', 'f' \u548C 'e' \u6807\u8BB0\u7684\u6307\u5B9A\u987A\u5E8F\u76F8\u540C\u3002\n\n\u793A\u4F8B 1: \u5C06\u4E24\u4E2A\u7C7B\u6587\u4EF6\u5F52\u6863\u5230\u4E00\u4E2A\u540D\u4E3A classes.jar \u7684\u6863\u6848\u4E2D: \n jar cvf classes.jar Foo.class Bar.class \n\u793A\u4F8B 2: \u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u6587\u4EF6 'mymanifest' \u5E76\n \u5C06 foo/ \u76EE\u5F55\u4E2D\u7684\u6240\u6709\u6587\u4EF6\u5F52\u6863\u5230 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/ .\n
+
+main.usage.summary=jar: \u5FC5\u987B\u6307\u5B9A\u5176\u4E2D\u4E00\u4E2A -ctxui \u9009\u9879\u3002
+main.usage.summary.try=\u5C1D\u8BD5\u4F7F\u7528 `jar --help' \u83B7\u53D6\u8BE6\u7EC6\u4FE1\u606F\u3002
+
+main.help.preopt=\u7528\u6CD5: jar [OPTION...] [-C dir] files ...\njar \u521B\u5EFA\u7C7B\u548C\u8D44\u6E90\u7684\u6863\u6848, \u5E76\u4E14\u53EF\u4EE5\u5904\u7406\u6863\u6848\u4E2D\u7684\n\u5355\u4E2A\u7C7B\u6216\u8D44\u6E90\u6216\u8005\u4ECE\u6863\u6848\u4E2D\u8FD8\u539F\u5355\u4E2A\u7C7B\u6216\u8D44\u6E90\u3002\n\n \u793A\u4F8B:\n # \u521B\u5EFA\u5305\u542B\u4E24\u4E2A\u7C7B\u6587\u4EF6\u7684\u540D\u4E3A classes.jar \u7684\u6863\u6848:\n jar --create --file classes.jar Foo.class Bar.class\n # \u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u521B\u5EFA\u6863\u6848, \u5176\u4E2D\u5305\u542B foo/ \u4E2D\u7684\u6240\u6709\u6587\u4EF6:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \u521B\u5EFA\u6A21\u5757\u5316 jar \u6863\u6848, \u5176\u4E2D\u6A21\u5757\u63CF\u8FF0\u7B26\u4F4D\u4E8E\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \u5C06\u73B0\u6709\u7684\u975E\u6A21\u5757\u5316 jar \u66F4\u65B0\u4E3A\u6A21\u5757\u5316 jar:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.opt.main=\ \u4E3B\u64CD\u4F5C\u6A21\u5F0F:\n
+main.help.opt.main.create=\ -c, --create \u521B\u5EFA\u6863\u6848
+main.help.opt.main.generate-index=\ -i, --generate-index=FILE \u4E3A\u6307\u5B9A\u7684 jar \u6863\u6848\u751F\u6210\n \u7D22\u5F15\u4FE1\u606F
+main.help.opt.main.list=\ -t, --list \u5217\u51FA\u6863\u6848\u7684\u76EE\u5F55
+main.help.opt.main.update=\ -u, --update \u66F4\u65B0\u73B0\u6709 jar \u6863\u6848
+main.help.opt.main.extract=\ -x, --extract \u4ECE\u6863\u6848\u4E2D\u63D0\u53D6\u6307\u5B9A\u7684 (\u6216\u5168\u90E8) \u6587\u4EF6
+main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor \u8F93\u51FA\u6A21\u5757\u63CF\u8FF0\u7B26
+main.help.opt.any=\ \u5728\u4EFB\u610F\u6A21\u5F0F\u4E0B\u6709\u6548\u7684\u64CD\u4F5C\u4FEE\u9970\u7B26:\n\n -C DIR \u66F4\u6539\u4E3A\u6307\u5B9A\u7684\u76EE\u5F55\u5E76\u5305\u542B\n \u4EE5\u4E0B\u6587\u4EF6
+main.help.opt.any.file=\ -f, --file=FILE \u6863\u6848\u6587\u4EF6\u540D
+main.help.opt.any.verbose=\ -v, --verbose \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA
+main.help.opt.create.update=\ \u5728\u521B\u5EFA\u548C\u66F4\u65B0\u6A21\u5F0F\u4E0B\u6709\u6548\u7684\u64CD\u4F5C\u4FEE\u9970\u7B26:\n
+main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME \u6346\u7ED1\u5230\u6A21\u5757\u5316\u6216\u53EF\u6267\u884C \n jar \u6863\u6848\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n \u7684\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9
+main.help.opt.create.update.manifest=\ -m, --manifest=FILE \u5305\u542B\u6307\u5B9A\u6E05\u5355\u6587\u4EF6\u4E2D\u7684\n \u6E05\u5355\u4FE1\u606F
+main.help.opt.create.update.no-manifest=\ -M, --no-manifest \u4E0D\u4E3A\u6761\u76EE\u521B\u5EFA\u6E05\u5355\u6587\u4EF6
+main.help.opt.create.update.module-version=\ --module-version=VERSION \u521B\u5EFA\u6A21\u5757\u5316 jar \u6216\u66F4\u65B0\n \u975E\u6A21\u5757\u5316 jar \u65F6\u7684\u6A21\u5757\u7248\u672C
+main.help.opt.create.update.hash-dependencies=\ --hash-dependencies=PATTERN \u521B\u5EFA\u6A21\u5757\u5316 jar \u6216\u66F4\u65B0\n \u975E\u6A21\u5757\u5316 jar \u65F6\u8BA1\u7B97\u548C\u8BB0\u5F55\n \u6309\u6307\u5B9A\u6A21\u5F0F\u5339\u914D\u7684\u6A21\u5757\u88AB\u4F9D\u8D56\n \u5BF9\u8C61\u7684\u6563\u5217
+main.help.opt.create.update.modulepath=\ --modulepath \u6A21\u5757\u88AB\u4F9D\u8D56\u5BF9\u8C61\u7684\u4F4D\u7F6E, \u7528\u4E8E\u751F\u6210
+\ \u6563\u5217
+main.help.opt.create.update.index=\ \u53EA\u5728\u521B\u5EFA, \u66F4\u65B0\u548C\u751F\u6210\u7D22\u5F15\u6A21\u5F0F\u4E0B\u6709\u6548\u7684\u64CD\u4F5C\u4FEE\u9970\u7B26:\n
+main.help.opt.create.update.index.no-compress=\ -0, --no-compress \u4EC5\u5B58\u50A8; \u4E0D\u4F7F\u7528 ZIP \u538B\u7F29
+main.help.opt.other=\ \u5176\u4ED6\u9009\u9879:\n
+main.help.opt.other.help=\ -?, --help[:compat] \u63D0\u4F9B\u6B64\u5E2E\u52A9, \u4E5F\u53EF\u4EE5\u9009\u62E9\u6027\u5730\u63D0\u4F9B\u517C\u5BB9\u6027\u5E2E\u52A9
+main.help.opt.other.version=\ --version \u8F93\u51FA\u7A0B\u5E8F\u7248\u672C
+main.help.postopt=\ \u5982\u679C\u6A21\u5757\u63CF\u8FF0\u7B26 'module-info.class' \u4F4D\u4E8E\u6307\u5B9A\u76EE\u5F55\u7684\n \u6839\u76EE\u5F55\u4E2D, \u6216\u8005\u4F4D\u4E8E jar \u6863\u6848\u672C\u8EAB\u7684\u6839\u76EE\u5F55\u4E2D, \u5219\n \u8BE5\u6863\u6848\u662F\u4E00\u4E2A\u6A21\u5757\u5316 jar\u3002\u4EE5\u4E0B\u64CD\u4F5C\u53EA\u5728\u521B\u5EFA\u6A21\u5757\u5316 jar\n \u6216\u66F4\u65B0\u73B0\u6709\u7684\u975E\u6A21\u5757\u5316 jar \u65F6\u6709\u6548: '--module-version',\n '--hash-dependencies' \u548C '--modulepath'\u3002\n\n \u5982\u679C\u4E3A\u957F\u9009\u9879\u63D0\u4F9B\u4E86\u5FC5\u9700\u53C2\u6570\u6216\u53EF\u9009\u53C2\u6570, \u5219\u5B83\u4EEC\u5BF9\u4E8E\n \u4EFB\u4F55\u5BF9\u5E94\u7684\u77ED\u9009\u9879\u4E5F\u662F\u5FC5\u9700\u6216\u53EF\u9009\u7684\u3002
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_TW.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_TW.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,12 @@
# questions.
#
-error.cant.open=\u7121\u6CD5\u958B\u555F: {0}
+error.multiple.main.operations=\u60A8\u4E0D\u80FD\u6307\u5B9A\u591A\u500B '-cuxti' \u9078\u9805
+error.cant.open=\u7121\u6CD5\u958B\u555F: {0}
error.illegal.option=\u7121\u6548\u7684\u9078\u9805: {0}
+error.unrecognized.option=\u7121\u6CD5\u8FA8\u8B58\u7684\u9078\u9805 : {0}
+error.missing.arg=\u9078\u9805 {0} \u9700\u8981\u4E00\u500B\u5F15\u6578
+error.bad.file.arg=\u5256\u6790\u6A94\u6848\u5F15\u6578\u6642\u767C\u751F\u932F\u8AA4
error.bad.option=\u5176\u4E2D\u4E00\u500B\u9078\u9805 -{ctxu} \u5FC5\u9808\u52A0\u4EE5\u6307\u5B9A\u3002
error.bad.cflag='c' \u65D7\u6A19\u8981\u6C42\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u6216\u8F38\u5165\u6A94\u6848\uFF01
error.bad.uflag='u' \u65D7\u6A19\u8981\u6C42\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u3001'e' \u65D7\u6A19\u6216\u8F38\u5165\u6A94\u6848\uFF01
@@ -34,8 +38,15 @@
error.create.dir={0} : \u7121\u6CD5\u5EFA\u7ACB\u76EE\u9304
error.incorrect.length=\u8655\u7406 {0} \u6642\u9577\u5EA6\u4E0D\u6B63\u78BA
error.create.tempfile=\u7121\u6CD5\u5EFA\u7ACB\u66AB\u5B58\u6A94\u6848
+error.hash.dep=\u96DC\u6E4A\u6A21\u7D44 {0} \u76F8\u4F9D\u6027\uFF0C\u5728\u6A21\u7D44\u8DEF\u5F91\u4E0A\u627E\u4E0D\u5230\u6A21\u7D44 {1}
+error.module.options.without.info=--module-version \u6216 --hash-dependencies \u5176\u4E2D\u4E00\u500B\u6C92\u6709 module-info.class
+error.unexpected.module-info=\u672A\u9810\u671F\u7684\u6A21\u7D44\u63CF\u8FF0\u5340 {0}
+error.module.descriptor.not.found=\u627E\u4E0D\u5230\u6A21\u7D44\u63CF\u8FF0\u5340
+error.missing.provider=\u627E\u4E0D\u5230\u670D\u52D9\u63D0\u4F9B\u8005: {0}
out.added.manifest=\u5DF2\u65B0\u589E\u8CC7\u8A0A\u6E05\u55AE
+out.added.module-info=\u5DF2\u65B0\u589E module-info.class
out.update.manifest=\u5DF2\u66F4\u65B0\u8CC7\u8A0A\u6E05\u55AE
+out.update.module-info=\u5DF2\u66F4\u65B0 module-info.class
out.ignore.entry=\u5FFD\u7565\u9805\u76EE {0}
out.adding=\u65B0\u589E: {0}
out.deflated=(\u58D3\u7E2E {0}%)
@@ -45,4 +56,33 @@
out.inflated=\ \u64F4\u5C55: {0}
out.size=\ (\u8B80={0})(\u5BEB={1})
-usage=\u7528\u6CD5: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] \u6A94\u6848 ...\n\u9078\u9805:\n -c \u5EFA\u7ACB\u65B0\u7684\u6B78\u6A94\n -t \u5217\u51FA\u6B78\u6A94\u7684\u76EE\u9304\n -x \u5F9E\u6B78\u6A94\u4E2D\u64F7\u53D6\u5DF2\u547D\u540D\u7684 (\u6216\u6240\u6709) \u6A94\u6848\n -u \u66F4\u65B0\u73FE\u6709\u6B78\u6A94\n -v \u5728\u6A19\u6E96\u8F38\u51FA\u4E2D\u7522\u751F\u8A73\u7D30\u8F38\u51FA\n -f \u6307\u5B9A\u6B78\u6A94\u6A94\u6848\u540D\u7A31\n -m \u5305\u542B\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u4E2D\u7684\u8CC7\u8A0A\u6E05\u55AE\u8CC7\u8A0A\n -n \u5728\u5EFA\u7ACB\u65B0\u6B78\u6A94\u4E4B\u5F8C\u57F7\u884C Pack200 \u6B63\u898F\u5316\n -e \u70BA\u5DF2\u96A8\u9644\u65BC\u53EF\u57F7\u884C jar \u6A94\u6848\u4E2D\u7684\u7368\u7ACB\u61C9\u7528\u7A0B\u5F0F\n \u6307\u5B9A\u61C9\u7528\u7A0B\u5F0F\u9032\u5165\u9EDE\n -0 \u50C5\u5132\u5B58; \u4E0D\u4F7F\u7528 ZIP \u58D3\u7E2E\u65B9\u5F0F\n -M \u4E0D\u70BA\u9805\u76EE\u5EFA\u7ACB\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\n -i \u70BA\u6307\u5B9A\u7684 jar \u6A94\u6848\u7522\u751F\u7D22\u5F15\u8CC7\u8A0A\n -C \u8B8A\u66F4\u81F3\u6307\u5B9A\u76EE\u9304\u4E26\u5305\u542B\u5F8C\u9762\u6240\u5217\u7684\u6A94\u6848\n\u5982\u679C\u6709\u4EFB\u4F55\u6A94\u6848\u662F\u76EE\u9304\uFF0C\u5247\u6703\u5C0D\u5176\u9032\u884C\u905E\u8FF4\u8655\u7406\u3002\n\u6E05\u55AE\u6A94\u6848\u540D\u7A31\u3001\u6B78\u6A94\u6A94\u6848\u540D\u7A31\u548C\u9032\u5165\u9EDE\u540D\u7A31\n\u7684\u6307\u5B9A\u9806\u5E8F\u8207\u6307\u5B9A 'm' \u65D7\u6A19\u3001'f' \u65D7\u6A19\u548C 'e' \u65D7\u6A19\u7684\u9806\u5E8F\u76F8\u540C\u3002\n\n\u7BC4\u4F8B 1: \u5C07\u5169\u500B\u985E\u5225\u6A94\u6848\u6B78\u6A94\u81F3\u540D\u70BA classes.jar \u7684\u6B78\u6A94\u4E2D: \n jar cvf classes.jar Foo.class Bar.class\n\u7BC4\u4F8B 2: \u4F7F\u7528\u73FE\u6709\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848 'mymanifest' \u4E26\u5C07\n foo/ \u76EE\u9304\u4E2D\u7684\u6240\u6709\u6A94\u6848\u6B78\u6A94\u81F3 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=\u76F8\u5BB9\u6027\u4ECB\u9762:\n\u7528\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] \u6A94\u6848 ...\n\u9078\u9805:\n -c \u5EFA\u7ACB\u65B0\u5B58\u6A94\n -t \u5217\u51FA\u5B58\u6A94\u7684\u76EE\u9304\n -x \u5F9E\u5B58\u6A94\u4E2D\u64F7\u53D6\u6307\u5B9A (\u6216\u6240\u6709) \u6A94\u6848\n -u \u66F4\u65B0\u73FE\u6709\u5B58\u6A94\n -v \u5728\u6A19\u6E96\u8F38\u51FA\u4E2D\u7522\u751F\u8A73\u7D30\u8F38\u51FA\n -f \u6307\u5B9A\u5B58\u6A94\u6A94\u6848\u540D\u7A31\n -m \u5305\u542B\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\u4E2D\u7684\u8CC7\u8A0A\u6E05\u55AE\u8CC7\u8A0A\n -n \u5728\u5EFA\u7ACB\u65B0\u5B58\u6A94\u4E4B\u5F8C\u57F7\u884C Pack200 \u6B63\u898F\u5316\n -e \u70BA\u5DF2\u96A8\u9644\u65BC\u53EF\u57F7\u884C jar \u6A94\u6848\u4E2D\u7684\u7368\u7ACB\u61C9\u7528\u7A0B\u5F0F \n \u6307\u5B9A\u61C9\u7528\u7A0B\u5F0F\u9032\u5165\u9EDE\n -0 \u50C5\u5132\u5B58; \u4E0D\u4F7F\u7528 ZIP \u58D3\u7E2E\u65B9\u5F0F\n -P \u4FDD\u7559\u6A94\u6848\u540D\u7A31\u524D\u9762\u7684 '/' (\u7D55\u5C0D\u8DEF\u5F91) \u548C ".." (\u4E0A\u5C64\u76EE\u9304) \u5143\u4EF6\n -M \u4E0D\u70BA\u9805\u76EE\u5EFA\u7ACB\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\n -i \u70BA\u6307\u5B9A\u7684 jar \u6A94\u6848\u7522\u751F\u7D22\u5F15\u8CC7\u8A0A\n -C \u8B8A\u66F4\u81F3\u6307\u5B9A\u76EE\u9304\u4E26\u5305\u542B\u5F8C\u9762\u6240\u5217\u7684\u6A94\u6848\n\u5982\u679C\u6709\u4EFB\u4F55\u6A94\u6848\u662F\u76EE\u9304\uFF0C\u5247\u6703\u5C0D\u5176\u9032\u884C\u905E\u8FF4\u8655\u7406\u3002\n\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\u540D\u7A31\u3001\u5B58\u6A94\u6A94\u6848\u540D\u7A31\u548C\u9032\u5165\u9EDE\u540D\u7A31\n\u7684\u6307\u5B9A\u9806\u5E8F\u8207\u6307\u5B9A 'm' \u65D7\u6A19\u3001'f' \u65D7\u6A19\u548C 'e' \u65D7\u6A19\u7684\u9806\u5E8F\u76F8\u540C\u3002\n\n\u7BC4\u4F8B 1: \u5C07\u5169\u500B\u985E\u5225\u6A94\u6848\u5B58\u6A94\u81F3\u540D\u70BA classes.jar \u7684\u5B58\u6A94\u4E2D: \n jar cvf classes.jar Foo.class Bar.class \n\u7BC4\u4F8B 2: \u4F7F\u7528\u73FE\u6709\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848 'mymanifest' \u4E26\u5C07\n foo/ \u76EE\u9304\u4E2D\u7684\u6240\u6709\u6A94\u6848\u5B58\u6A94\u81F3 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/\u3002\n
+
+main.usage.summary=jar: \u60A8\u5FC5\u9808\u6307\u5B9A\u5176\u4E2D\u4E00\u500B -ctxui \u9078\u9805\u3002
+main.usage.summary.try=\u8ACB\u4F7F\u7528 'jar --help' \u4EE5\u53D6\u5F97\u66F4\u591A\u7684\u8CC7\u8A0A\u3002
+
+main.help.preopt=\u7528\u6CD5: jar [OPTION...] [-C dir] \u6A94\u6848 ...\njar \u6703\u5EFA\u7ACB\u985E\u5225\u548C\u8CC7\u6E90\u7684\u5B58\u6A94\uFF0C\u4E26\u53EF\u64CD\u63A7\u6216\n\u56DE\u5FA9\u5B58\u6A94\u4E2D\u7684\u500B\u5225\u985E\u5225\u6216\u8CC7\u6E90\u3002\n\n \u7BC4\u4F8B:\n # \u4F7F\u7528\u5169\u500B\u985E\u5225\u6A94\u6848\u5EFA\u7ACB\u540D\u70BA classes.jar \u7684\u5B58\u6A94:\n jar --create --file classes.jar Foo.class Bar.class\n # \u4F7F\u7528\u73FE\u6709\u7684\u8CC7\u8A0A\u6E05\u55AE\u548C foo/ \u4E2D\u7684\u6240\u6709\u6A94\u6848\u5EFA\u7ACB\u5B58\u6A94:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \u5EFA\u7ACB\u6A21\u7D44\u5316 jar \u5B58\u6A94\uFF0C\u5176\u4E2D\u7684\u6A21\u7D44\u6558\u8FF0\u5340\u4F4D\u65BC\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \u5C07\u73FE\u6709\u7684\u975E\u6A21\u7D44\u5316 jar \u66F4\u65B0\u70BA\u6A21\u7D44\u5316 jar:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.opt.main=\ \u4E3B\u8981\u4F5C\u696D\u6A21\u5F0F:\n
+main.help.opt.main.create=\ -c, --create \u5EFA\u7ACB\u5B58\u6A94
+main.help.opt.main.generate-index=\ -i, --generate-index=FILE \u70BA\u6307\u5B9A\u7684 jar \u5B58\u6A94\u7522\u751F\u7D22\u5F15\n \u8CC7\u8A0A
+main.help.opt.main.list=\ -t, --list \u5217\u51FA\u5B58\u6A94\u7684\u76EE\u9304
+main.help.opt.main.update=\ -u, --update \u66F4\u65B0\u73FE\u6709\u7684 jar \u5B58\u6A94
+main.help.opt.main.extract=\ -x, --extract \u5F9E\u5B58\u6A94\u4E2D\u64F7\u53D6\u6307\u5B9A (\u6216\u6240\u6709) \u6A94\u6848
+main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor \u5217\u5370\u6A21\u7D44\u63CF\u8FF0\u5340
+main.help.opt.any=\ \u53EF\u5728\u4EFB\u4F55\u6A21\u5F0F\u4E0B\u4F7F\u7528\u7684\u4F5C\u696D\u4FEE\u98FE\u689D\u4EF6:\n\n -C DIR \u8B8A\u66F4\u70BA\u6307\u5B9A\u76EE\u9304\u4E26\u5305\u542B\n \u4E0B\u5217\u6A94\u6848
+main.help.opt.any.file=\ -f, --file=FILE \u5B58\u6A94\u6A94\u6848\u540D\u7A31
+main.help.opt.any.verbose=\ -v, --verbose \u5728\u6A19\u6E96\u8F38\u51FA\u4E2D\u7522\u751F\u8A73\u7D30\u8F38\u51FA
+main.help.opt.create.update=\ \u53EA\u80FD\u5728\u5EFA\u7ACB\u548C\u66F4\u65B0\u6A21\u5F0F\u4E0B\u4F7F\u7528\u7684\u4F5C\u696D\u4FEE\u98FE\u689D\u4EF6:\n
+main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME \u96A8\u9644\u65BC\u6A21\u7D44\u5316\u6216\u53EF\u57F7\u884C\n jar \u5B58\u6A94\u4E2D\u7368\u7ACB\u61C9\u7528\u7A0B\u5F0F\u7684\n \u61C9\u7528\u7A0B\u5F0F\u9032\u5165\u9EDE
+main.help.opt.create.update.manifest=\ -m, --manifest=FILE \u5305\u542B\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\u4E2D\u7684\u8CC7\u8A0A\u6E05\u55AE\n \u8CC7\u8A0A
+main.help.opt.create.update.no-manifest=\ -M, --no-manifest \u4E0D\u70BA\u9805\u76EE\u5EFA\u7ACB\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848
+main.help.opt.create.update.module-version=\ --module-version=VERSION \u5EFA\u7ACB\u6A21\u7D44\u5316 jar \u6216\u66F4\u65B0\u975E\u6A21\u7D44\u5316 jar \u6642\n \u4F7F\u7528\u7684\u6A21\u7D44\u7248\u672C
+main.help.opt.create.update.hash-dependencies=\ --hash-dependencies=PATTERN \u5EFA\u7ACB\u6A21\u7D44\u5316 jar \u6216\u66F4\u65B0\n \u975E\u6A21\u7D44\u5316 jar \u6642\uFF0C\u904B\u7B97\u53CA\u8A18\u9304\n \u8207\u6307\u5B9A\u6A23\u5F0F\u76F8\u7B26\u7684\u6A21\u7D44\u76F8\u4F9D\u6027\n \u96DC\u6E4A
+main.help.opt.create.update.modulepath=\ --modulepath \u6A21\u7D44\u76F8\u4F9D\u6027\u7684\u4F4D\u7F6E\uFF0C\u7528\u65BC\u7522\u751F
+\ \u96DC\u6E4A
+main.help.opt.create.update.index=\ \u53EA\u80FD\u5728\u5EFA\u7ACB\u3001\u66F4\u65B0\u53CA\u7522\u751F\u7D22\u5F15\u6A21\u5F0F\u4E0B\u4F7F\u7528\u7684\u4F5C\u696D\u4FEE\u98FE\u689D\u4EF6:\n
+main.help.opt.create.update.index.no-compress=\ -0, --no-compress \u50C5\u5132\u5B58; \u4E0D\u4F7F\u7528 ZIP \u58D3\u7E2E\u65B9\u5F0F
+main.help.opt.other=\ \u5176\u4ED6\u9078\u9805:\n
+main.help.opt.other.help=\ -?, --help[:compat] \u63D0\u4F9B\u6B64\u8AAA\u660E\u6216\u9078\u64C7\u6027\u986F\u793A\u76F8\u5BB9\u6027\u8AAA\u660E
+main.help.opt.other.version=\ --version \u5217\u5370\u7A0B\u5F0F\u7248\u672C
+main.help.postopt=\ \u5982\u679C\u6A21\u7D44\u63CF\u8FF0\u5340 ('module-info.class') \u4F4D\u65BC\u6307\u5B9A\u76EE\u9304\u7684\u6839\n \u6216 jar \u5B58\u6A94\u672C\u8EAB\u7684\u6839\uFF0C\u5247\u5B58\u6A94\u6703\u662F\n \u6A21\u7D44\u5316\u7684 jar\u3002\u4E0B\u5217\u4F5C\u696D\u53EA\u80FD\u5728\u5EFA\u7ACB\u6A21\u7D44\u5316 jar \u6216\u66F4\u65B0\n \u73FE\u6709\u975E\u6A21\u7D44\u5316 jar \u6642\u9032\u884C: '--module-version'\u3001\n '--hash-dependencies' \u548C '--modulepath'\u3002\n\n \u9577\u9078\u9805\u7684\u5F37\u5236\u6027\u6216\u9078\u64C7\u6027\u5F15\u6578\u4E5F\u6703\u662F\u4EFB\u4F55\u5C0D\u61C9\u77ED\u9078\u9805\u7684\n \u5F37\u5236\u6027\u6216\u9078\u64C7\u6027\u5F15\u6578\u3002
--- a/jdk/src/jdk.jcmd/share/classes/sun/tools/common/ProcessArgumentMatcher.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jcmd/share/classes/sun/tools/common/ProcessArgumentMatcher.java Thu Jun 16 20:56:45 2016 +0000
@@ -25,6 +25,7 @@
package sun.tools.common;
+import java.lang.reflect.Module;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collection;
@@ -45,13 +46,10 @@
* the process identifiers.
*/
public class ProcessArgumentMatcher {
- private String excludeCls;
- private String matchClass = null;
- private String singlePid = null;
- private boolean matchAll = false;
+ private String matchClass;
+ private String singlePid;
- public ProcessArgumentMatcher(String pidArg, Class<?> excludeClass) {
- excludeCls = excludeClass.getName();
+ public ProcessArgumentMatcher(String pidArg) {
if (pidArg == null || pidArg.isEmpty()) {
throw new IllegalArgumentException("Pid string is invalid");
}
@@ -60,9 +58,7 @@
}
try {
long pid = Long.parseLong(pidArg);
- if (pid == 0) {
- matchAll = true;
- } else {
+ if (pid != 0) {
singlePid = String.valueOf(pid);
}
} catch (NumberFormatException nfe) {
@@ -70,7 +66,18 @@
}
}
- private boolean check(VirtualMachineDescriptor vmd) {
+ private static String getExcludeStringFrom(Class<?> excludeClass) {
+ if (excludeClass == null) {
+ return "";
+ }
+ Module m = excludeClass.getModule();
+ if (m.isNamed()) {
+ return m.getName() + "/" + excludeClass.getName();
+ }
+ return excludeClass.getName();
+ }
+
+ private static boolean check(VirtualMachineDescriptor vmd, String excludeClass, String partialMatch) {
String mainClass = null;
try {
VmIdentifier vmId = new VmIdentifier(vmd.id());
@@ -87,42 +94,55 @@
// Handle this gracefully....
return false;
} catch (MonitorException | URISyntaxException e) {
- if (e.getMessage() != null) {
- System.err.println(e.getMessage());
- } else {
- Throwable cause = e.getCause();
- if ((cause != null) && (cause.getMessage() != null)) {
- System.err.println(cause.getMessage());
- } else {
- e.printStackTrace();
- }
- }
return false;
}
- if (mainClass.equals(excludeCls)) {
+ if (excludeClass != null && mainClass.equals(excludeClass)) {
+ return false;
+ }
+
+ if (partialMatch != null && mainClass.indexOf(partialMatch) == -1) {
return false;
}
- if (matchAll || mainClass.indexOf(matchClass) != -1) {
- return true;
+ return true;
+ }
+
+ private static Collection<VirtualMachineDescriptor> getSingleVMD(String pid) {
+ Collection<VirtualMachineDescriptor> vids = new ArrayList<>();
+ List<VirtualMachineDescriptor> vmds = VirtualMachine.list();
+ for (VirtualMachineDescriptor vmd : vmds) {
+ if (check(vmd, null, null)) {
+ if (pid.equals(vmd.id())) {
+ vids.add(vmd);
+ }
+ }
}
-
- return false;
+ return vids;
}
- public Collection<String> getPids() {
- Collection<String> pids = new ArrayList<>();
- if (singlePid != null) {
- pids.add(singlePid);
- return pids;
- }
+ private static Collection<VirtualMachineDescriptor> getVMDs(Class<?> excludeClass, String partialMatch) {
+ String excludeCls = getExcludeStringFrom(excludeClass);
+ Collection<VirtualMachineDescriptor> vids = new ArrayList<>();
List<VirtualMachineDescriptor> vmds = VirtualMachine.list();
for (VirtualMachineDescriptor vmd : vmds) {
- if (check(vmd)) {
- pids.add(vmd.id());
+ if (check(vmd, excludeCls, partialMatch)) {
+ vids.add(vmd);
}
}
- return pids;
+ return vids;
}
+
+ public Collection<VirtualMachineDescriptor> getVirtualMachineDescriptors(Class<?> excludeClass) {
+ if (singlePid != null) {
+ return getSingleVMD(singlePid);
+ } else {
+ return getVMDs(excludeClass, matchClass);
+ }
+ }
+
+ public Collection<VirtualMachineDescriptor> getVirtualMachineDescriptors() {
+ return this.getVirtualMachineDescriptors(null);
+ }
+
}
--- a/jdk/src/jdk.jcmd/share/classes/sun/tools/jcmd/Arguments.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jcmd/share/classes/sun/tools/jcmd/Arguments.java Thu Jun 16 20:56:45 2016 +0000
@@ -45,6 +45,8 @@
public Arguments(String[] args) {
if (args.length == 0 || args[0].equals("-l")) {
listProcesses = true;
+ /* list all processes */
+ processString = "0";
return;
}
--- a/jdk/src/jdk.jcmd/share/classes/sun/tools/jcmd/JCmd.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jcmd/share/classes/sun/tools/jcmd/JCmd.java Thu Jun 16 20:56:45 2016 +0000
@@ -65,36 +65,37 @@
System.exit(1);
}
+ ProcessArgumentMatcher ap = null;
+ try {
+ ap = new ProcessArgumentMatcher(arg.getProcessString());
+ } catch (IllegalArgumentException iae) {
+ System.err.println("Invalid pid '" + arg.getProcessString() + "' specified");
+ System.exit(1);
+ }
+
if (arg.isListProcesses()) {
- List<VirtualMachineDescriptor> vmds = VirtualMachine.list();
- for (VirtualMachineDescriptor vmd : vmds) {
+ for (VirtualMachineDescriptor vmd : ap.getVirtualMachineDescriptors(/* include jcmd in listing */)) {
System.out.println(vmd.id() + " " + vmd.displayName());
}
System.exit(0);
}
- Collection<String> pids = Collections.emptyList();
- try {
- ProcessArgumentMatcher ap = new ProcessArgumentMatcher(arg.getProcessString(), JCmd.class);
- pids = ap.getPids();
- } catch (IllegalArgumentException iae) {
- System.err.println("Invalid pid specified");
- System.exit(1);
- }
- if (pids.isEmpty()) {
+ Collection<VirtualMachineDescriptor> vids = ap.getVirtualMachineDescriptors(JCmd.class);
+
+ if (vids.isEmpty()) {
System.err.println("Could not find any processes matching : '"
+ arg.getProcessString() + "'");
System.exit(1);
}
boolean success = true;
- for (String pid : pids) {
- System.out.println(pid + ":");
+ for (VirtualMachineDescriptor vid : vids) {
+ System.out.println(vid.id() + ":");
if (arg.isListCounters()) {
- listCounters(pid);
+ listCounters(vid.id());
} else {
try {
- executeCommandForPid(pid, arg.getCommand());
+ executeCommandForPid(vid.id(), arg.getCommand());
} catch(AttachOperationFailedException ex) {
System.err.println(ex.getMessage());
success = false;
--- a/jdk/src/jdk.jcmd/share/classes/sun/tools/jinfo/JInfo.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jcmd/share/classes/sun/tools/jinfo/JInfo.java Thu Jun 16 20:56:45 2016 +0000
@@ -30,6 +30,7 @@
import java.util.Collection;
import com.sun.tools.attach.VirtualMachine;
+import com.sun.tools.attach.VirtualMachineDescriptor;
import sun.tools.attach.HotSpotVirtualMachine;
import sun.tools.common.ProcessArgumentMatcher;
@@ -50,6 +51,7 @@
boolean doFlag = false;
boolean doFlags = false;
boolean doSysprops = false;
+ int flag = -1;
// Parse the options (arguments starting with "-" )
int optionCount = 0;
@@ -67,65 +69,64 @@
if (arg.equals("-flag")) {
doFlag = true;
- continue;
+ // Consume the flag
+ if (optionCount < args.length) {
+ flag = optionCount++;
+ break;
+ }
+ usage(1);
}
if (arg.equals("-flags")) {
doFlags = true;
- continue;
+ break;
}
if (arg.equals("-sysprops")) {
doSysprops = true;
- continue;
+ break;
}
}
- // Next we check the parameter count. -flag allows extra parameters
int paramCount = args.length - optionCount;
- if ((doFlag && paramCount != 2) || ((!doFlag && paramCount != 1))) {
+ if (paramCount != 1) {
usage(1);
}
- if (!doFlag && !doFlags && !doSysprops) {
- // Print flags and sysporps if no options given
- ProcessArgumentMatcher ap = new ProcessArgumentMatcher(args[optionCount], JInfo.class);
- Collection<String> pids = ap.getPids();
- for (String pid : pids) {
- if (pids.size() > 1) {
- System.out.println("Pid:" + pid);
- }
- sysprops(pid);
- System.out.println();
- flags(pid);
- System.out.println();
- commandLine(pid);
- }
+ String parg = args[optionCount];
+
+ ProcessArgumentMatcher ap = new ProcessArgumentMatcher(parg);
+ Collection<VirtualMachineDescriptor> vids = ap.getVirtualMachineDescriptors(JInfo.class);
+
+ if (vids.isEmpty()) {
+ System.err.println("Could not find any processes matching : '" + parg + "'");
+ System.exit(1);
}
- if (doFlag) {
- ProcessArgumentMatcher ap = new ProcessArgumentMatcher(args[optionCount+1], JInfo.class);
- Collection<String> pids = ap.getPids();
- for (String pid : pids) {
- if (pids.size() > 1) {
- System.out.println("Pid:" + pid);
- }
- flag(pid, args[optionCount]);
+ for (VirtualMachineDescriptor vid : vids) {
+ if (vids.size() > 1) {
+ System.out.println("Pid:" + vid.id());
+ }
+ if (!doFlag && !doFlags && !doSysprops) {
+ // Print flags and sysporps if no options given
+ sysprops(vid.id());
+ System.out.println();
+ flags(vid.id());
+ System.out.println();
+ commandLine(vid.id());
}
- }
- else if (doFlags || doSysprops) {
- ProcessArgumentMatcher ap = new ProcessArgumentMatcher(args[optionCount], JInfo.class);
- Collection<String> pids = ap.getPids();
- for (String pid : pids) {
- if (pids.size() > 1) {
- System.out.println("Pid:" + pid);
+ if (doFlag) {
+ if (flag < 0) {
+ System.err.println("Missing flag");
+ usage(1);
}
- if (doFlags) {
- flags(pid);
- }
- else if (doSysprops) {
- sysprops(pid);
- }
+ flag(vid.id(), args[flag]);
+ }
+ if (doFlags) {
+ flags(vid.id());
+ }
+ if (doSysprops) {
+ sysprops(vid.id());
}
}
}
--- a/jdk/src/jdk.jcmd/share/classes/sun/tools/jmap/JMap.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jcmd/share/classes/sun/tools/jmap/JMap.java Thu Jun 16 20:56:45 2016 +0000
@@ -32,6 +32,7 @@
import java.util.Collection;
import com.sun.tools.attach.VirtualMachine;
+import com.sun.tools.attach.VirtualMachineDescriptor;
import com.sun.tools.attach.AttachNotSupportedException;
import sun.tools.attach.HotSpotVirtualMachine;
import sun.tools.common.ProcessArgumentMatcher;
@@ -89,10 +90,17 @@
// Here we handle the built-in options
// As more options are added we should create an abstract tool class and
// have a table to map the options
- ProcessArgumentMatcher ap = new ProcessArgumentMatcher(pidArg, JMap.class);
- Collection<String> pids = ap.getPids();
- for (String pid : pids) {
- if (pids.size() > 1) {
+ ProcessArgumentMatcher ap = new ProcessArgumentMatcher(pidArg);
+ Collection<VirtualMachineDescriptor> vids = ap.getVirtualMachineDescriptors(JMap.class);
+
+ if (vids.isEmpty()) {
+ System.err.println("Could not find any processes matching : '" + pidArg + "'");
+ System.exit(1);
+ }
+
+ for (VirtualMachineDescriptor vid : vids) {
+ String pid = vid.id();
+ if (vids.size() > 1) {
System.out.println("Pid:" + pid);
}
if (option.equals("-histo")) {
--- a/jdk/src/jdk.jcmd/share/classes/sun/tools/jstack/JStack.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jcmd/share/classes/sun/tools/jstack/JStack.java Thu Jun 16 20:56:45 2016 +0000
@@ -29,6 +29,7 @@
import java.util.Collection;
import com.sun.tools.attach.VirtualMachine;
+import com.sun.tools.attach.VirtualMachineDescriptor;
import sun.tools.attach.HotSpotVirtualMachine;
import sun.tools.common.ProcessArgumentMatcher;
@@ -82,13 +83,19 @@
} else {
params = new String[0];
}
- ProcessArgumentMatcher ap = new ProcessArgumentMatcher(pidArg, JStack.class);
- Collection<String> pids = ap.getPids();
- for (String pid : pids) {
- if (pids.size() > 1) {
- System.out.println("Pid:" + pid);
+ ProcessArgumentMatcher ap = new ProcessArgumentMatcher(pidArg);
+ Collection<VirtualMachineDescriptor> vids = ap.getVirtualMachineDescriptors(JStack.class);
+
+ if (vids.isEmpty()) {
+ System.err.println("Could not find any processes matching : '" + pidArg + "'");
+ System.exit(1);
+ }
+
+ for (VirtualMachineDescriptor vid : vids) {
+ if (vids.size() > 1) {
+ System.out.println("Pid:" + vid.id());
}
- runThreadDump(pid, params);
+ runThreadDump(vid.id(), params);
}
}
--- a/jdk/src/jdk.jconsole/share/classes/sun/tools/jconsole/resources/messages_ja.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jconsole/share/classes/sun/tools/jconsole/resources/messages_ja.properties Thu Jun 16 20:56:45 2016 +0000
@@ -250,7 +250,7 @@
UNREGISTER=\u767B\u9332\u89E3\u9664
UPTIME=\u7A3C\u50CD\u6642\u9593
USAGE_THRESHOLD=\u4F7F\u7528\u3057\u304D\u3044\u5024
-REMOTE_TF_USAGE=<b>\u4F7F\u7528\u65B9\u6CD5</b>: &<hostname&>:&<port&>\u307E\u305F\u306Fservice:jmx:&<protocol&>:&<sap&>
+REMOTE_TF_USAGE=<b>\u4F7F\u7528\u65B9\u6CD5</b>: &<hostname&>:&<port&> OR service:jmx:&<protocol&>:&<sap&>
USED=\u4F7F\u7528\u6E08
USERNAME_COLON_=\u30E6\u30FC\u30B6\u30FC\u540D(&U):
USERNAME_ACCESSIBLE_NAME=\u30E6\u30FC\u30B6\u30FC\u540D
@@ -268,7 +268,7 @@
WRITABLE=\u66F8\u8FBC\u307F\u53EF\u80FD
CONNECTION_FAILED1=\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F: \u518D\u8A66\u884C\u3057\u307E\u3059\u304B\u3002
CONNECTION_FAILED2={0}\u3078\u306E\u63A5\u7D9A\u304C\u6210\u529F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002<br>\u3082\u3046\u4E00\u5EA6\u8A66\u3057\u307E\u3059\u304B\u3002
-CONNECTION_FAILED_SSL1=\u4FDD\u8B77\u3055\u308C\u305F\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u4FDD\u8B77\u305B\u305A\u306B\u518D\u8A66\u884C\u3057\u307E\u3059\u304B\u3002
+CONNECTION_FAILED_SSL1=\u30BB\u30AD\u30E5\u30A2\u306A\u63A5\u7D9A\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u975E\u30BB\u30AD\u30E5\u30A2\u3067\u518D\u8A66\u884C\u3057\u307E\u3059\u304B\u3002
CONNECTION_FAILED_SSL2=SSL\u3092\u4F7F\u7528\u3057\u3066{0}\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3002<br>SSL\u306A\u3057\u3067\u63A5\u7D9A\u3057\u307E\u3059\u304B\u3002<br>(\u30E6\u30FC\u30B6\u30FC\u540D\u304A\u3088\u3073\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u30D7\u30EC\u30FC\u30F3\u30FB\u30C6\u30AD\u30B9\u30C8\u3067\u9001\u4FE1\u3055\u308C\u307E\u3059\u3002)
CONNECTION_LOST1=\u63A5\u7D9A\u304C\u5931\u308F\u308C\u307E\u3057\u305F: \u518D\u63A5\u7D9A\u3057\u307E\u3059\u304B\u3002
CONNECTING_TO1={0}\u306B\u63A5\u7D9A\u4E2D
@@ -279,4 +279,4 @@
KBYTES={0} KB
PLOT=\u30D7\u30ED\u30C3\u30C8
VISUALIZE=\u8996\u899A\u5316
-ZZ_USAGE_TEXT=\u4F7F\u7528\u65B9\u6CD5: {0} [ -interval=n ] [ -notile ] [ -pluginpath <path> ] [ -version ] [ connection ... ]\n\n -interval \u66F4\u65B0\u9593\u9694\u3092n\u79D2\u306B\u8A2D\u5B9A\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8\u306F4\u79D2)\n -notile \u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u6700\u521D\u306B\u4E26\u3079\u3066\u8868\u793A\u3057\u306A\u3044(2\u3064\u4EE5\u4E0A\u306E\u63A5\u7D9A\u306B\u3064\u3044\u3066)\n -pluginpath JConsole\u304C\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u53C2\u7167\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3059\u308B\u30D1\u30B9\u3092\u6307\u5B9A\u3059\u308B\n -version \u30D7\u30ED\u30B0\u30E9\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3059\u308B\n\n connection = pid || host:port || JMX URL (service:jmx:<protocol>://...)\n pid \u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9\u306E\u30D7\u30ED\u30BB\u30B9ID\n host \u30EA\u30E2\u30FC\u30C8\u30FB\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306FIP\u30A2\u30C9\u30EC\u30B9\n port \u30EA\u30E2\u30FC\u30C8\u63A5\u7D9A\u7528\u306E\u30DD\u30FC\u30C8\u756A\u53F7\n\n -J JConsole\u304C\u5B9F\u884C\u4E2D\u306EJava\u4EEE\u60F3\u30DE\u30B7\u30F3\u3078\u306E\n \u5165\u529B\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B
+ZZ_USAGE_TEXT=\u4F7F\u7528\u65B9\u6CD5: {0} [ -interval=n ] [ -notile ] [ -pluginpath <path> ] [ -version ] [ connection ... ]\n\n -interval \u66F4\u65B0\u9593\u9694\u3092n\u79D2\u306B\u8A2D\u5B9A\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8\u306F4\u79D2)\n -notile \u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u6700\u521D\u306B\u4E26\u3079\u3066\u8868\u793A\u3057\u306A\u3044(2\u3064\u4EE5\u4E0A\u306E\u63A5\u7D9A\u306B\u3064\u3044\u3066)\n -pluginpath JConsole\u304C\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u53C2\u7167\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3059\u308B\u30D1\u30B9\u3092\u6307\u5B9A\u3059\u308B\n -version \u30D7\u30ED\u30B0\u30E9\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u5370\u5237\u3059\u308B\n\n connection = pid || host:port || JMX URL (service:jmx:<protocol>://...)\n pid \u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9\u306E\u30D7\u30ED\u30BB\u30B9ID\n host \u30EA\u30E2\u30FC\u30C8\u30FB\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306FIP\u30A2\u30C9\u30EC\u30B9\n port \u30EA\u30E2\u30FC\u30C8\u63A5\u7D9A\u7528\u306E\u30DD\u30FC\u30C8\u756A\u53F7\n\n -J JConsole\u304C\u5B9F\u884C\u4E2D\u306EJava\u4EEE\u60F3\u30DE\u30B7\u30F3\u3078\u306E\n \u5165\u529B\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B
--- a/jdk/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -129,8 +129,8 @@
{"Fatal error", "\u81F4\u547D\u7684\u30A8\u30E9\u30FC:"},
{"Field access encountered before after", "\u30D5\u30A3\u30FC\u30EB\u30C9({0})\u306F{1}\u3067\u3001{2}\u306B\u306A\u308A\u307E\u3059: "},
{"Field access encountered", "\u30D5\u30A3\u30FC\u30EB\u30C9({0})\u306E\u30A2\u30AF\u30BB\u30B9\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F: "},
- {"Field to unwatch not specified", "\u76E3\u8996\u3057\u306A\u3044\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
- {"Field to watch not specified", "\u76E3\u8996\u3059\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
+ {"Field to unwatch not specified", "\u30A6\u30A9\u30C3\u30C1\u3057\u306A\u3044\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
+ {"Field to watch not specified", "\u30A6\u30A9\u30C3\u30C1\u3059\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
{"GC Disabled for", "{0}\u306EGC\u304C\u7121\u52B9\u3067\u3059:"},
{"GC Enabled for", "{0}\u306EGC\u304C\u6709\u52B9\u3067\u3059:"},
{"grouping begin character", "{"},
@@ -200,7 +200,7 @@
{"No class named", "\u540D\u524D''{0}''\u306E\u30AF\u30E9\u30B9\u304C\u3042\u308A\u307E\u305B\u3093"},
{"No class specified.", "\u30AF\u30E9\u30B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
{"No classpath specified.", "\u30AF\u30E9\u30B9\u30D1\u30B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
- {"No code at line", "\u884C{0,number,integer} ({1}\u5185)\u306B\u30B3\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093"},
+ {"No code at line", "{1}\u306E\u884C{0,number,integer}\u306B\u30B3\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093"},
{"No connect specification.", "\u63A5\u7D9A\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
{"No connector named:", "\u540D\u524D{0}\u306E\u30B3\u30CD\u30AF\u30BF\u304C\u3042\u308A\u307E\u305B\u3093"},
{"No current thread", "\u73FE\u5728\u306E\u30B9\u30EC\u30C3\u30C9\u304C\u3042\u308A\u307E\u305B\u3093"},
@@ -321,10 +321,10 @@
{"vmstartexception", "VM\u304C\u4F8B\u5916\u3092\u958B\u59CB\u3057\u307E\u3057\u305F: {0}"},
{"Waiting for monitor:", " \u30E2\u30CB\u30BF\u30FC\u306E\u5F85\u6A5F\u4E2D: {0}"},
{"Waiting thread:", " \u30B9\u30EC\u30C3\u30C9\u3092\u5F85\u6A5F\u4E2D: {0}"},
- {"watch accesses of", "{0}.{1}\u306E\u30A2\u30AF\u30BB\u30B9\u3092\u76E3\u8996"},
- {"watch modification of", "{0}.{1}\u306E\u5909\u66F4\u306E\u76E3\u8996"},
+ {"watch accesses of", "{0}.{1}\u306E\u30A2\u30AF\u30BB\u30B9\u3092\u30A6\u30A9\u30C3\u30C1"},
+ {"watch modification of", "{0}.{1}\u306E\u5909\u66F4\u306E\u30A6\u30A9\u30C3\u30C1"},
{"zz help text",
- "** \u30B3\u30DE\u30F3\u30C9\u30FB\u30EA\u30B9\u30C8 **\nconnectors -- \u3053\u306EVM\u5185\u306E\u4F7F\u7528\u53EF\u80FD\u306A\u30B3\u30CD\u30AF\u30BF\u3068\u30C8\u30E9\u30F3\u30B9\u30DD\u30FC\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\nrun [class [args]] -- \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u306E\u5B9F\u884C\u3092\u958B\u59CB\u3057\u307E\u3059\n\nthreads [threadgroup] -- \u30B9\u30EC\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nthread <thread id> -- \u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30B9\u30EC\u30C3\u30C9\u3092\u8A2D\u5B9A\u3057\u307E\u3059\nsuspend [thread id(s)] -- \u30B9\u30EC\u30C3\u30C9\u3092\u4E2D\u65AD\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8: \u3059\u3079\u3066)\nresume [thread id(s)] -- \u30B9\u30EC\u30C3\u30C9\u3092\u518D\u958B\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8: \u3059\u3079\u3066)\nwhere [<thread id> | all] -- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u30C0\u30F3\u30D7\u3057\u307E\u3059\nwherei [<thread id> | all]-- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092pc\u60C5\u5831\u3068\u3068\u3082\u306B\u30C0\u30F3\u30D7\u3057\u307E\u3059\nup [n frames] -- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u4E0A\u306B\u79FB\u52D5\u3057\u307E\u3059\ndown [n frames] -- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u4E0B\u306B\u79FB\u52D5\u3057\u307E\u3059\nkill <thread id> <expr> -- \u6307\u5B9A\u3055\u308C\u305F\u4F8B\u5916\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u30B9\u30EC\u30C3\u30C9\u3092\u5F37\u5236\u7D42\u4E86\u3057\u307E\u3059\ninterrupt <thread id> -- \u30B9\u30EC\u30C3\u30C9\u3092\u4E2D\u65AD\u3057\u307E\u3059\n\nprint <expr> -- \u5F0F\u306E\u5024\u3092\u51FA\u529B\u3057\u307E\u3059\ndump <expr> -- \u3059\u3079\u3066\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\neval <expr> -- \u5F0F\u3092\u8A55\u4FA1\u3057\u307E\u3059(print\u3068\u540C\u3058)\nset <lvalue> = <expr> -- \u65B0\u3057\u3044\u5024\u3092\u30D5\u30A3\u30FC\u30EB\u30C9/\u5909\u6570/\u914D\u5217\u8981\u7D20\u306B\u4EE3\u5165\u3057\u307E\u3059\nlocals -- \u73FE\u5728\u306E\u30B9\u30BF\u30C3\u30AF\u30FB\u30D5\u30EC\u30FC\u30E0\u5185\u306E\u3059\u3079\u3066\u306E\u30ED\u30FC\u30AB\u30EB\u5909\u6570\u3092\u51FA\u529B\u3057\u307E\u3059\n\nclasses -- \u73FE\u5728\u65E2\u77E5\u306E\u30AF\u30E9\u30B9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nclass <class id> -- \u6307\u5B9A\u3057\u305F\u30AF\u30E9\u30B9\u306E\u8A73\u7D30\u3092\u8868\u793A\u3057\u307E\u3059\nmethods <class id> -- \u30AF\u30E9\u30B9\u306E\u30E1\u30BD\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nfields <class id> -- \u30AF\u30E9\u30B9\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\nthreadgroups -- \u30B9\u30EC\u30C3\u30C9\u30B0\u30EB\u30FC\u30D7\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nthreadgroup <name> -- \u73FE\u5728\u306E\u30B9\u30EC\u30C3\u30C9\u30B0\u30EB\u30FC\u30D7\u3092\u8A2D\u5B9A\u3057\u307E\u3059\n\nstop in <class id>.<method>[(argument_type,...)]\n -- \u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30E1\u30BD\u30C3\u30C9\u5185\u306B\u8A2D\u5B9A\u3057\u307E\u3059\nstop at <class id>:<line> -- \u884C\u306B\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\nclear <class id>.<method>[(argument_type,...)]\n -- \u30E1\u30BD\u30C3\u30C9\u5185\u306E\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30AF\u30EA\u30A2\u3057\u307E\u3059\nclear <class id>:<line> -- \u884C\u306E\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30AF\u30EA\u30A2\u3057\u307E\u3059\nclear -- \u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\ncatch [uncaught|caught|all] <class id>|<class pattern>\n -- \u6307\u5B9A\u3055\u308C\u305F\u4F8B\u5916\u304C\u767A\u751F\u3057\u305F\u3068\u304D\u306B\u30D6\u30EC\u30FC\u30AF\u3057\u307E\u3059\nignore [uncaught|caught|all] <class id>|<class pattern>\n -- \u6307\u5B9A\u3055\u308C\u305F\u4F8B\u5916\u306E'catch'\u3092\u53D6\u308A\u6D88\u3057\u307E\u3059\nwatch [access|all] <class id>.<field name>\n -- \u30D5\u30A3\u30FC\u30EB\u30C9\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u307E\u305F\u306F\u5909\u66F4\u3092\u76E3\u8996\u3057\u307E\u3059\nunwatch [access|all] <class id>.<field name>\n -- \u30D5\u30A3\u30FC\u30EB\u30C9\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u307E\u305F\u306F\u5909\u66F4\u306E\u76E3\u8996\u3092\u4E2D\u6B62\u3057\u307E\u3059\ntrace [go] methods [thread]\n -- \u30E1\u30BD\u30C3\u30C9\u306E\u5165\u308A\u53E3\u3068\u51FA\u53E3\u3092\u30C8\u30EC\u30FC\u30B9\u3057\u307E\u3059\u3002\n -- 'go'\u304C\u6307\u5B9A\u3055\u308C\u308B\u307E\u3067\u3059\u3079\u3066\u306E\u30B9\u30EC\u30C3\u30C9\u306F\u4E2D\u65AD\u3057\u307E\u3059\ntrace [go] method exit | exits [thread]\n -- \u73FE\u5728\u306E\u30E1\u30BD\u30C3\u30C9\u306E\u51FA\u53E3\u307E\u305F\u306F\u3059\u3079\u3066\u306E\u30E1\u30BD\u30C3\u30C9\u306E\u51FA\u53E3\u3092\u30C8\u30EC\u30FC\u30B9\u3057\u307E\u3059\n -- 'go'\u304C\u6307\u5B9A\u3055\u308C\u308B\u307E\u3067\u3059\u3079\u3066\u306E\u30B9\u30EC\u30C3\u30C9\u306F\u4E2D\u65AD\u3057\u307E\u3059\nuntrace [methods] -- \u30E1\u30BD\u30C3\u30C9\u306E\u958B\u59CB\u307E\u305F\u306F\u7D42\u4E86\u306E\u30C8\u30EC\u30FC\u30B9\u3092\u505C\u6B62\u3057\u307E\u3059\nstep -- \u73FE\u5728\u306E\u884C\u3092\u5B9F\u884C\u3057\u307E\u3059\nstep up -- \u73FE\u5728\u306E\u30E1\u30BD\u30C3\u30C9\u304C\u30E1\u30BD\u30C3\u30C9\u306E\u547C\u51FA\u3057\u5143\u306B\u623B\u308B\u307E\u3067\u5B9F\u884C\u3057\u307E\u3059\nstepi -- \u73FE\u5728\u306E\u547D\u4EE4\u3092\u5B9F\u884C\u3057\u307E\u3059\nnext -- 1\u884C\u3092\u30B9\u30C6\u30C3\u30D7\u5B9F\u884C\u3057\u307E\u3059(\u547C\u51FA\u3057\u3092\u30B9\u30C6\u30C3\u30D7\u30AA\u30FC\u30D0\u30FC)\ncont -- \u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u304B\u3089\u5B9F\u884C\u3092\u7D9A\u884C\u3057\u307E\u3059\n\nlist [line number|method] -- \u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9\u3092\u51FA\u529B\u3057\u307E\u3059\nuse (or sourcepath) [source file path]\n -- \u30BD\u30FC\u30B9\u30FB\u30D1\u30B9\u3092\u8868\u793A\u307E\u305F\u306F\u5909\u66F4\u3057\u307E\u3059\nexclude [<class pattern>, ... | \"none\"]\n -- \u6307\u5B9A\u3057\u305F\u30AF\u30E9\u30B9\u306E\u30B9\u30C6\u30C3\u30D7\u3084\u30E1\u30BD\u30C3\u30C9\u30FB\u30A4\u30D9\u30F3\u30C8\u3092\u5831\u544A\u3057\u307E\u305B\u3093\nclasspath -- \u30BF\u30FC\u30B2\u30C3\u30C8VM\u304B\u3089\u30AF\u30E9\u30B9\u30D1\u30B9\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\n\nmonitor <command> -- \u30D7\u30ED\u30B0\u30E9\u30E0\u304C\u505C\u6B62\u3059\u308B\u305F\u3073\u306B\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u307E\u3059\nmonitor -- \u30E2\u30CB\u30BF\u30FC\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nunmonitor <monitor#> -- \u30E2\u30CB\u30BF\u30FC\u3092\u524A\u9664\u3057\u307E\u3059\nread <filename> -- \u30B3\u30DE\u30F3\u30C9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u53D6\u3063\u3066\u5B9F\u884C\u3057\u307E\u3059\n\nlock <expr> -- \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30ED\u30C3\u30AF\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\nthreadlocks [thread id] -- \u30B9\u30EC\u30C3\u30C9\u306E\u30ED\u30C3\u30AF\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\n\npop -- \u73FE\u5728\u306E\u30D5\u30EC\u30FC\u30E0\u307E\u3067\u306E\u3059\u3079\u3066\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u30DD\u30C3\u30D7\u3057\u307E\u3059\nreenter -- pop\u3068\u540C\u3058\u3067\u3059\u304C\u3001\u73FE\u5728\u306E\u30D5\u30EC\u30FC\u30E0\u304C\u518D\u5165\u529B\u3055\u308C\u307E\u3059\nredefine <class id> <class file name>\n -- \u30AF\u30E9\u30B9\u306E\u30B3\u30FC\u30C9\u3092\u518D\u5B9A\u7FA9\u3057\u307E\u3059\n\ndisablegc <expr> -- \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u6291\u5236\u3057\u307E\u3059\nenablegc <expr> -- \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u8A31\u53EF\u3057\u307E\u3059\n\n!! -- \u6700\u5F8C\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u7E70\u308A\u8FD4\u3057\u307E\u3059\n<n> <command> -- \u30B3\u30DE\u30F3\u30C9\u3092n\u56DE\u7E70\u308A\u8FD4\u3057\u307E\u3059\n# <command> -- \u7834\u68C4\u3057\u307E\u3059(\u64CD\u4F5C\u306A\u3057)\nhelp (\u307E\u305F\u306F?) -- \u30B3\u30DE\u30F3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nversion -- \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\nexit (\u307E\u305F\u306Fquit) -- \u30C7\u30D0\u30C3\u30AC\u3092\u7D42\u4E86\u3057\u307E\u3059\n\n<class id>: \u30D1\u30C3\u30B1\u30FC\u30B8\u4FEE\u98FE\u5B50\u3092\u542B\u3080\u5B8C\u5168\u30AF\u30E9\u30B9\u540D\n<class pattern>: \u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306E\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9('*')\u3092\u542B\u3080\u30AF\u30E9\u30B9\u540D\n<thread id>: 'threads'\u30B3\u30DE\u30F3\u30C9\u3067\u5831\u544A\u3055\u308C\u308B\u30B9\u30EC\u30C3\u30C9\u756A\u53F7\n<expr>: Java(TM)\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E\u306E\u5F0F\u3002\n\u307B\u3068\u3093\u3069\u306E\u4E00\u822C\u7684\u306A\u69CB\u6587\u304C\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n\n\u8D77\u52D5\u30B3\u30DE\u30F3\u30C9\u306F\u3001\"jdb.ini\"\u307E\u305F\u306F\".jdbrc\"\u306B\u914D\u7F6E\u3067\u304D\u307E\u3059\n(user.home\u307E\u305F\u306Fuser.dir\u5185)"},
+ "** \u30B3\u30DE\u30F3\u30C9\u30FB\u30EA\u30B9\u30C8 **\nconnectors -- \u3053\u306EVM\u5185\u306E\u4F7F\u7528\u53EF\u80FD\u306A\u30B3\u30CD\u30AF\u30BF\u3068\u30C8\u30E9\u30F3\u30B9\u30DD\u30FC\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\nrun [class [args]] -- \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u306E\u5B9F\u884C\u3092\u958B\u59CB\u3057\u307E\u3059\n\nthreads [threadgroup] -- \u30B9\u30EC\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nthread <thread id> -- \u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30B9\u30EC\u30C3\u30C9\u3092\u8A2D\u5B9A\u3057\u307E\u3059\nsuspend [thread id(s)] -- \u30B9\u30EC\u30C3\u30C9\u3092\u4E2D\u65AD\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8: \u3059\u3079\u3066)\nresume [thread id(s)] -- \u30B9\u30EC\u30C3\u30C9\u3092\u518D\u958B\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8: \u3059\u3079\u3066)\nwhere [<thread id> | all] -- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u30C0\u30F3\u30D7\u3057\u307E\u3059\nwherei [<thread id> | all]-- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092pc\u60C5\u5831\u3068\u3068\u3082\u306B\u30C0\u30F3\u30D7\u3057\u307E\u3059\nup [n frames] -- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u4E0A\u306B\u79FB\u52D5\u3057\u307E\u3059\ndown [n frames] -- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u4E0B\u306B\u79FB\u52D5\u3057\u307E\u3059\nkill <thread id> <expr> -- \u6307\u5B9A\u3055\u308C\u305F\u4F8B\u5916\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u30B9\u30EC\u30C3\u30C9\u3092\u5F37\u5236\u7D42\u4E86\u3057\u307E\u3059\ninterrupt <thread id> -- \u30B9\u30EC\u30C3\u30C9\u3092\u4E2D\u65AD\u3057\u307E\u3059\n\nprint <expr> -- \u5F0F\u306E\u5024\u3092\u51FA\u529B\u3057\u307E\u3059\ndump <expr> -- \u3059\u3079\u3066\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\neval <expr> -- \u5F0F\u3092\u8A55\u4FA1\u3057\u307E\u3059(print\u3068\u540C\u3058)\nset <lvalue> = <expr> -- \u65B0\u3057\u3044\u5024\u3092\u30D5\u30A3\u30FC\u30EB\u30C9/\u5909\u6570/\u914D\u5217\u8981\u7D20\u306B\u4EE3\u5165\u3057\u307E\u3059\nlocals -- \u73FE\u5728\u306E\u30B9\u30BF\u30C3\u30AF\u30FB\u30D5\u30EC\u30FC\u30E0\u5185\u306E\u3059\u3079\u3066\u306E\u30ED\u30FC\u30AB\u30EB\u5909\u6570\u3092\u51FA\u529B\u3057\u307E\u3059\n\nclasses -- \u73FE\u5728\u65E2\u77E5\u306E\u30AF\u30E9\u30B9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nclass <class id> -- \u6307\u5B9A\u3057\u305F\u30AF\u30E9\u30B9\u306E\u8A73\u7D30\u3092\u8868\u793A\u3057\u307E\u3059\nmethods <class id> -- \u30AF\u30E9\u30B9\u306E\u30E1\u30BD\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nfields <class id> -- \u30AF\u30E9\u30B9\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\nthreadgroups -- \u30B9\u30EC\u30C3\u30C9\u30B0\u30EB\u30FC\u30D7\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nthreadgroup <name> -- \u73FE\u5728\u306E\u30B9\u30EC\u30C3\u30C9\u30B0\u30EB\u30FC\u30D7\u3092\u8A2D\u5B9A\u3057\u307E\u3059\n\nstop in <class id>.<method>[(argument_type,...)]\n -- \u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30E1\u30BD\u30C3\u30C9\u5185\u306B\u8A2D\u5B9A\u3057\u307E\u3059\nstop at <class id>:<line> -- \u884C\u306B\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\nclear <class id>.<method>[(argument_type,...)]\n -- \u30E1\u30BD\u30C3\u30C9\u5185\u306E\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30AF\u30EA\u30A2\u3057\u307E\u3059\nclear <class id>:<line> -- \u884C\u306E\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30AF\u30EA\u30A2\u3057\u307E\u3059\nclear -- \u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\ncatch [uncaught|caught|all] <class id>|<class pattern>\n -- \u6307\u5B9A\u3055\u308C\u305F\u4F8B\u5916\u304C\u767A\u751F\u3057\u305F\u3068\u304D\u306B\u30D6\u30EC\u30FC\u30AF\u3057\u307E\u3059\nignore [uncaught|caught|all] <class id>|<class pattern>\n -- \u6307\u5B9A\u3055\u308C\u305F\u4F8B\u5916\u306E'catch'\u3092\u53D6\u308A\u6D88\u3057\u307E\u3059\nwatch [access|all] <class id>.<field name>\n -- \u30D5\u30A3\u30FC\u30EB\u30C9\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u307E\u305F\u306F\u5909\u66F4\u3092\u30A6\u30A9\u30C3\u30C1\u3057\u307E\u3059\nunwatch [access|all] <class id>.<field name>\n -- \u30D5\u30A3\u30FC\u30EB\u30C9\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u307E\u305F\u306F\u5909\u66F4\u306E\u30A6\u30A9\u30C3\u30C1\u3092\u4E2D\u6B62\u3057\u307E\u3059\ntrace [go] methods [thread]\n -- \u30E1\u30BD\u30C3\u30C9\u306E\u5165\u308A\u53E3\u3068\u51FA\u53E3\u3092\u30C8\u30EC\u30FC\u30B9\u3057\u307E\u3059\u3002\n -- 'go'\u304C\u6307\u5B9A\u3055\u308C\u308B\u307E\u3067\u3059\u3079\u3066\u306E\u30B9\u30EC\u30C3\u30C9\u306F\u4E2D\u65AD\u3057\u307E\u3059\ntrace [go] method exit | exits [thread]\n -- \u73FE\u5728\u306E\u30E1\u30BD\u30C3\u30C9\u306E\u51FA\u53E3\u307E\u305F\u306F\u3059\u3079\u3066\u306E\u30E1\u30BD\u30C3\u30C9\u306E\u51FA\u53E3\u3092\u30C8\u30EC\u30FC\u30B9\u3057\u307E\u3059\n -- 'go'\u304C\u6307\u5B9A\u3055\u308C\u308B\u307E\u3067\u3059\u3079\u3066\u306E\u30B9\u30EC\u30C3\u30C9\u306F\u4E2D\u65AD\u3057\u307E\u3059\nuntrace [methods] -- \u30E1\u30BD\u30C3\u30C9\u306E\u958B\u59CB\u307E\u305F\u306F\u7D42\u4E86\u306E\u30C8\u30EC\u30FC\u30B9\u3092\u505C\u6B62\u3057\u307E\u3059\nstep -- \u73FE\u5728\u306E\u884C\u3092\u5B9F\u884C\u3057\u307E\u3059\nstep up -- \u73FE\u5728\u306E\u30E1\u30BD\u30C3\u30C9\u304C\u30E1\u30BD\u30C3\u30C9\u306E\u547C\u51FA\u3057\u5143\u306B\u623B\u308B\u307E\u3067\u5B9F\u884C\u3057\u307E\u3059\nstepi -- \u73FE\u5728\u306E\u547D\u4EE4\u3092\u5B9F\u884C\u3057\u307E\u3059\nnext -- 1\u884C\u3092\u30B9\u30C6\u30C3\u30D7\u5B9F\u884C\u3057\u307E\u3059(\u547C\u51FA\u3057\u3092\u30B9\u30C6\u30C3\u30D7\u30AA\u30FC\u30D0\u30FC)\ncont -- \u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u304B\u3089\u5B9F\u884C\u3092\u7D9A\u884C\u3057\u307E\u3059\n\nlist [line number|method] -- \u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9\u3092\u51FA\u529B\u3057\u307E\u3059\nuse (or sourcepath) [source file path]\n -- \u30BD\u30FC\u30B9\u30FB\u30D1\u30B9\u3092\u8868\u793A\u307E\u305F\u306F\u5909\u66F4\u3057\u307E\u3059\nexclude [<class pattern>, ... | \"none\"]\n -- \u6307\u5B9A\u3057\u305F\u30AF\u30E9\u30B9\u306E\u30B9\u30C6\u30C3\u30D7\u3084\u30E1\u30BD\u30C3\u30C9\u30FB\u30A4\u30D9\u30F3\u30C8\u3092\u5831\u544A\u3057\u307E\u305B\u3093\nclasspath -- \u30BF\u30FC\u30B2\u30C3\u30C8VM\u304B\u3089\u30AF\u30E9\u30B9\u30D1\u30B9\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\n\nmonitor <command> -- \u30D7\u30ED\u30B0\u30E9\u30E0\u304C\u505C\u6B62\u3059\u308B\u305F\u3073\u306B\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u307E\u3059\nmonitor -- \u30E2\u30CB\u30BF\u30FC\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nunmonitor <monitor#> -- \u30E2\u30CB\u30BF\u30FC\u3092\u524A\u9664\u3057\u307E\u3059\nread <filename> -- \u30B3\u30DE\u30F3\u30C9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u53D6\u3063\u3066\u5B9F\u884C\u3057\u307E\u3059\n\nlock <expr> -- \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30ED\u30C3\u30AF\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\nthreadlocks [thread id] -- \u30B9\u30EC\u30C3\u30C9\u306E\u30ED\u30C3\u30AF\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\n\npop -- \u73FE\u5728\u306E\u30D5\u30EC\u30FC\u30E0\u307E\u3067\u306E\u3059\u3079\u3066\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u30DD\u30C3\u30D7\u3057\u307E\u3059\nreenter -- pop\u3068\u540C\u3058\u3067\u3059\u304C\u3001\u73FE\u5728\u306E\u30D5\u30EC\u30FC\u30E0\u304C\u518D\u5165\u529B\u3055\u308C\u307E\u3059\nredefine <class id> <class file name>\n -- \u30AF\u30E9\u30B9\u306E\u30B3\u30FC\u30C9\u3092\u518D\u5B9A\u7FA9\u3057\u307E\u3059\n\ndisablegc <expr> -- \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u6291\u5236\u3057\u307E\u3059\nenablegc <expr> -- \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u8A31\u53EF\u3057\u307E\u3059\n\n!! -- \u6700\u5F8C\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u7E70\u308A\u8FD4\u3057\u307E\u3059\n<n> <command> -- \u30B3\u30DE\u30F3\u30C9\u3092n\u56DE\u7E70\u308A\u8FD4\u3057\u307E\u3059\n# <command> -- \u7834\u68C4\u3057\u307E\u3059(\u64CD\u4F5C\u306A\u3057)\nhelp (\u307E\u305F\u306F?) -- \u30B3\u30DE\u30F3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nversion -- \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\nexit (\u307E\u305F\u306Fquit) -- \u30C7\u30D0\u30C3\u30AC\u3092\u7D42\u4E86\u3057\u307E\u3059\n\n<class id>: \u30D1\u30C3\u30B1\u30FC\u30B8\u4FEE\u98FE\u5B50\u3092\u542B\u3080\u5B8C\u5168\u30AF\u30E9\u30B9\u540D\n<class pattern>: \u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306E\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9('*')\u3092\u542B\u3080\u30AF\u30E9\u30B9\u540D\n<thread id>: 'threads'\u30B3\u30DE\u30F3\u30C9\u3067\u5831\u544A\u3055\u308C\u308B\u30B9\u30EC\u30C3\u30C9\u756A\u53F7\n<expr>: Java(TM)\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E\u306E\u5F0F\u3002\n\u307B\u3068\u3093\u3069\u306E\u4E00\u822C\u7684\u306A\u69CB\u6587\u304C\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n\n\u8D77\u52D5\u30B3\u30DE\u30F3\u30C9\u306F\u3001\"jdb.ini\"\u307E\u305F\u306F\".jdbrc\"\u306B\u914D\u7F6E\u3067\u304D\u307E\u3059\n(user.home\u307E\u305F\u306Fuser.dir\u5185)"},
{"zz usage text",
"\u4F7F\u7528\u65B9\u6CD5: {0} <options> <class> <arguments>\n\n\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n -help \u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u3066\u7D42\u4E86\u3059\u308B\n -sourcepath <directories separated by \"{1}\">\n \u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\n -attach <address>\n \u6A19\u6E96\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u6307\u5B9A\u3055\u308C\u305F\u30A2\u30C9\u30EC\u30B9\u3067\u5B9F\u884C\u4E2D\u306EVM\u306B\u63A5\u7D9A\u3059\u308B\n -listen <address>\n \u6A19\u6E96\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u6307\u5B9A\u3055\u308C\u305F\u30A2\u30C9\u30EC\u30B9\u3067\u5B9F\u884C\u4E2D\u306EVM\u306E\u63A5\u7D9A\u3092\u5F85\u6A5F\u3059\u308B\n -listenany\n \u6A19\u6E96\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u4EFB\u610F\u306E\u30A2\u30C9\u30EC\u30B9\u3067\u5B9F\u884C\u4E2D\u306EVM\u306E\u63A5\u7D9A\u3092\u5F85\u6A5F\u3059\u308B\n -launch\n ''run''\u30B3\u30DE\u30F3\u30C9\u3092\u5F85\u6A5F\u305B\u305A\u306BVM\u3092\u5373\u6642\u306B\u8D77\u52D5\u3059\u308B\n -listconnectors \u3053\u306EVM\u3067\u4F7F\u7528\u53EF\u80FD\u306A\u30B3\u30CD\u30AF\u30BF\u3092\u30EA\u30B9\u30C8\u3059\u308B\n -connect <connector-name>:<name1>=<value1>,...\n \u6307\u5B9A\u3055\u308C\u305F\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u30EA\u30B9\u30C8\u3055\u308C\u305F\u5F15\u6570\u5024\u3067\u30BF\u30FC\u30B2\u30C3\u30C8VM\u306B\u63A5\u7D9A\u3059\u308B\n -dbgtrace [flags] {0}\u306E\u30C7\u30D0\u30C3\u30B0\u306E\u60C5\u5831\u3092\u51FA\u529B\u3059\u308B\n -tclient \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092HotSpot(TM) Client Compiler\u3067\u5B9F\u884C\u3059\u308B\n -tserver \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092HotSpot(TM) Server Compiler\u3067\u5B9F\u884C\u3059\u308B\n\n\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u30C7\u30D0\u30C3\u30B0\u3059\u308B\u30D7\u30ED\u30BB\u30B9\u306B\u8EE2\u9001\u3055\u308C\u307E\u3059:\n -v -verbose[:class|gc|jni]\n \u8A73\u7D30\u30E2\u30FC\u30C9\u3092\u30AA\u30F3\u306B\u3059\u308B\n -D<name>=<value> \u30B7\u30B9\u30C6\u30E0\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8A2D\u5B9A\u3059\u308B\n -classpath <directories separated by \"{1}\">\n \u30AF\u30E9\u30B9\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u30EA\u30B9\u30C8\u3059\u308B\n -X<option> \u975E\u6A19\u6E96\u306E\u30BF\u30FC\u30B2\u30C3\u30C8VM\u30AA\u30D7\u30B7\u30E7\u30F3\n\n<class>\u306F\u30C7\u30D0\u30C3\u30B0\u3092\u958B\u59CB\u3059\u308B\u30AF\u30E9\u30B9\u306E\u540D\u524D\u3067\u3059\n<arguments>\u306F<class>\u306Emain()\u30E1\u30BD\u30C3\u30C9\u306B\u6E21\u3055\u308C\u308B\u5F15\u6570\u3067\u3059\n\n\u30B3\u30DE\u30F3\u30C9\u306E\u30D8\u30EB\u30D7\u306B\u3064\u3044\u3066\u306F{0}\u30D7\u30ED\u30F3\u30D7\u30C8\u3067''help''\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"},
// END OF MATERIAL TO LOCALIZE
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/Utils.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/Utils.java Thu Jun 16 20:56:45 2016 +0000
@@ -28,77 +28,85 @@
import java.net.URI;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
+import java.nio.file.Path;
import java.nio.file.PathMatcher;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
-import java.util.function.Function;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
import jdk.tools.jlink.plugin.Plugin;
+import jdk.tools.jlink.plugin.Plugin.Category;
public class Utils {
private Utils() {}
+ // jrt-fs file system
+ private static FileSystem JRT_FILE_SYSTEM;
+
// current module
private static final Module THIS_MODULE = Utils.class.getModule();
- public static final Function<String, String[]> listParser = (argument) -> {
- String[] arguments = null;
- if (argument != null) {
- arguments = argument.split(",");
- for (int i = 0; i < arguments.length; i++) {
- arguments[i] = arguments[i].trim();
- }
- }
- return arguments;
- };
+ public static List<String> parseList(String arguments) {
+ return Arrays.stream(arguments.split(","))
+ .map((p) -> p.trim())
+ .filter((p) -> !p.isEmpty())
+ .collect(Collectors.toList());
+ }
- public static boolean isPostProcessor(Plugin.Category category) {
- return category.equals(Plugin.Category.VERIFIER)
- || category.equals(Plugin.Category.PROCESSOR)
- || category.equals(Plugin.Category.PACKAGER);
+ public static boolean isPostProcessor(Category category) {
+ return category.equals(Category.VERIFIER)
+ || category.equals(Category.PROCESSOR)
+ || category.equals(Category.PACKAGER);
}
- public static boolean isPreProcessor(Plugin.Category category) {
- return category.equals(Plugin.Category.COMPRESSOR)
- || category.equals(Plugin.Category.FILTER)
- || category.equals(Plugin.Category.MODULEINFO_TRANSFORMER)
- || category.equals(Plugin.Category.SORTER)
- || category.equals(Plugin.Category.TRANSFORMER)
- || category.equals(Plugin.Category.METAINFO_ADDER);
+ public static boolean isPreProcessor(Category category) {
+ return category.equals(Category.COMPRESSOR)
+ || category.equals(Category.FILTER)
+ || category.equals(Category.MODULEINFO_TRANSFORMER)
+ || category.equals(Category.SORTER)
+ || category.equals(Category.TRANSFORMER)
+ || category.equals(Category.METAINFO_ADDER);
}
- public static boolean isPostProcessor(Plugin prov) {
- if (prov.getType() != null) {
- for (Plugin.Category pt : prov.getType()) {
- if (pt instanceof Plugin.Category) {
- return isPostProcessor(pt);
- }
- }
+ public static boolean isPostProcessor(Plugin provider) {
+ Set<Category> types = provider.getType();
+ Objects.requireNonNull(types);
+ for (Category pt : types) {
+ return isPostProcessor(pt);
}
return false;
}
- public static boolean isPreProcessor(Plugin prov) {
- if (prov.getType() != null) {
- for (Plugin.Category pt : prov.getType()) {
- if (pt instanceof Plugin.Category) {
- return isPreProcessor(pt);
- }
- }
+ public static boolean isPreProcessor(Plugin provider) {
+ Set<Category> types = provider.getType();
+ Objects.requireNonNull(types);
+ for (Category pt : types) {
+ return isPreProcessor(pt);
}
return false;
}
- public static Plugin.Category getCategory(Plugin provider) {
- if (provider.getType() != null) {
- for (Plugin.Category t : provider.getType()) {
- if (t instanceof Plugin.Category) {
- return t;
- }
+ public static Category getCategory(Plugin provider) {
+ Set<Category> types = provider.getType();
+ Objects.requireNonNull(types);
+ for (Category t : types) {
+ return t;
+ }
+ return null;
+ }
+
+ public static List<Plugin> getPreProcessors(List<Plugin> plugins) {
+ List<Plugin> res = new ArrayList<>();
+ for (Plugin p : plugins) {
+ if (isPreProcessor(p)) {
+ res.add(p);
}
}
- return null;
+ return res;
}
public static List<Plugin> getPostProcessors(List<Plugin> plugins) {
@@ -133,16 +141,6 @@
return res;
}
- public static List<Plugin> getPreProcessors(List<Plugin> plugins) {
- List<Plugin> res = new ArrayList<>();
- for (Plugin p : plugins) {
- if (isPreProcessor(p)) {
- res.add(p);
- }
- }
- return res;
- }
-
public static boolean isFunctional(Plugin prov) {
return prov.getState().contains(Plugin.State.FUNCTIONAL);
}
@@ -161,7 +159,11 @@
}
public static FileSystem jrtFileSystem() {
- return FileSystems.getFileSystem(URI.create("jrt:/"));
+ if (JRT_FILE_SYSTEM == null) {
+ JRT_FILE_SYSTEM = FileSystems.getFileSystem(URI.create("jrt:/"));
+ }
+
+ return JRT_FILE_SYSTEM;
}
public static PathMatcher getPathMatcher(FileSystem fs, String pattern) {
@@ -172,7 +174,11 @@
return fs.getPathMatcher(pattern);
}
- public static PathMatcher getPathMatcher(String pattern) {
+ public static PathMatcher getJRTFSPathMatcher(String pattern) {
return getPathMatcher(jrtFileSystem(), pattern);
}
+
+ public static Path getJRTFSPath(String first, String... more) {
+ return jrtFileSystem().getPath(first, more);
+ }
}
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/DefaultCompressPlugin.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/DefaultCompressPlugin.java Thu Jun 16 20:56:45 2016 +0000
@@ -24,8 +24,6 @@
*/
package jdk.tools.jlink.internal.plugins;
-import java.io.IOException;
-import java.io.UncheckedIOException;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
@@ -37,7 +35,6 @@
import jdk.tools.jlink.internal.ImagePluginStack;
import jdk.tools.jlink.internal.ResourcePrevisitor;
import jdk.tools.jlink.internal.StringTable;
-import jdk.tools.jlink.internal.Utils;
/**
*
@@ -103,33 +100,26 @@
@Override
public void configure(Map<String, String> config) {
- try {
- String filter = config.get(FILTER);
- String[] patterns = filter == null ? null
- : Utils.listParser.apply(filter);
- ResourceFilter resFilter = new ResourceFilter(patterns);
- String level = config.get(NAME);
- if (level != null) {
- switch (level) {
- case LEVEL_0:
- ss = new StringSharingPlugin(resFilter);
- break;
- case LEVEL_1:
- zip = new ZipPlugin(resFilter);
- break;
- case LEVEL_2:
- ss = new StringSharingPlugin(resFilter);
- zip = new ZipPlugin(resFilter);
- break;
- default:
- throw new IllegalArgumentException("Invalid compression level " + level);
- }
- } else {
- ss = new StringSharingPlugin(resFilter);
- zip = new ZipPlugin(resFilter);
+ ResourceFilter resFilter = ResourceFilter.includeFilter(config.get(FILTER));
+ String level = config.get(NAME);
+ if (level != null) {
+ switch (level) {
+ case LEVEL_0:
+ ss = new StringSharingPlugin(resFilter);
+ break;
+ case LEVEL_1:
+ zip = new ZipPlugin(resFilter);
+ break;
+ case LEVEL_2:
+ ss = new StringSharingPlugin(resFilter);
+ zip = new ZipPlugin(resFilter);
+ break;
+ default:
+ throw new IllegalArgumentException("Invalid compression level " + level);
}
- } catch (IOException ex) {
- throw new UncheckedIOException(ex);
+ } else {
+ ss = new StringSharingPlugin(resFilter);
+ zip = new ZipPlugin(resFilter);
}
}
}
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ExcludeFilesPlugin.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ExcludeFilesPlugin.java Thu Jun 16 20:56:45 2016 +0000
@@ -24,7 +24,6 @@
*/
package jdk.tools.jlink.internal.plugins;
-import java.io.IOException;
import java.io.UncheckedIOException;
import java.util.Collections;
import java.util.HashSet;
@@ -84,11 +83,6 @@
@Override
public void configure(Map<String, String> config) {
- try {
- String value = config.get(NAME);
- predicate = new ResourceFilter(Utils.listParser.apply(value), true);
- } catch (IOException ex) {
- throw new UncheckedIOException(ex);
- }
+ predicate = ResourceFilter.excludeFilter(config.get(NAME));
}
}
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ExcludePlugin.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ExcludePlugin.java Thu Jun 16 20:56:45 2016 +0000
@@ -24,17 +24,14 @@
*/
package jdk.tools.jlink.internal.plugins;
-import java.io.IOException;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
-import jdk.tools.jlink.plugin.PluginException;
import jdk.tools.jlink.plugin.TransformerPlugin;
import jdk.tools.jlink.plugin.ModuleEntry;
import jdk.tools.jlink.plugin.ModulePool;
-import jdk.tools.jlink.internal.Utils;
/**
*
@@ -84,11 +81,6 @@
@Override
public void configure(Map<String, String> config) {
- try {
- String val = config.get(NAME);
- predicate = new ResourceFilter(Utils.listParser.apply(val), true);
- } catch (IOException ex) {
- throw new PluginException(ex);
- }
+ predicate = ResourceFilter.excludeFilter(config.get(NAME));
}
}
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ExcludeVMPlugin.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ExcludeVMPlugin.java Thu Jun 16 20:56:45 2016 +0000
@@ -40,9 +40,7 @@
import java.util.function.Predicate;
import java.util.stream.Collectors;
import jdk.tools.jlink.plugin.TransformerPlugin;
-import jdk.tools.jlink.plugin.ModuleEntry;
import jdk.tools.jlink.plugin.ModulePool;
-import jdk.tools.jlink.internal.Utils;
import jdk.tools.jlink.plugin.ModuleEntry;
import jdk.tools.jlink.plugin.PluginException;
@@ -184,38 +182,34 @@
@Override
public void configure(Map<String, String> config) {
- try {
- String value = config.get(NAME);
- String exclude = "";
- switch (value) {
- case ALL: {
- // no filter.
- keepAll = true;
- break;
- }
- case CLIENT: {
- target = Jvm.CLIENT;
- exclude = "/java.base/native*server/*,/java.base/native*minimal/*";
- break;
- }
- case SERVER: {
- target = Jvm.SERVER;
- exclude = "/java.base/native*client/*,/java.base/native*minimal/*";
- break;
- }
- case MINIMAL: {
- target = Jvm.MINIMAL;
- exclude = "/java.base/native*server/*,/java.base/native*client/*";
- break;
- }
- default: {
- throw new IllegalArgumentException("Unknown exclude VM option: " + value);
- }
+ String value = config.get(NAME);
+ String exclude = "";
+ switch (value) {
+ case ALL: {
+ // no filter.
+ keepAll = true;
+ break;
+ }
+ case CLIENT: {
+ target = Jvm.CLIENT;
+ exclude = "/java.base/native**server/**,/java.base/native**minimal/**";
+ break;
}
- predicate = new ResourceFilter(Utils.listParser.apply(exclude), true);
- } catch (IOException ex) {
- throw new UncheckedIOException(ex);
+ case SERVER: {
+ target = Jvm.SERVER;
+ exclude = "/java.base/native**client/**,/java.base/native**minimal/**";
+ break;
+ }
+ case MINIMAL: {
+ target = Jvm.MINIMAL;
+ exclude = "/java.base/native**server/**,/java.base/native**client/**";
+ break;
+ }
+ default: {
+ throw new IllegalArgumentException("Unknown exclude VM option: " + value);
+ }
}
+ predicate = ResourceFilter.excludeFilter(exclude);
}
private ModuleEntry handleJvmCfgFile(ModuleEntry orig,
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/FileCopierPlugin.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/FileCopierPlugin.java Thu Jun 16 20:56:45 2016 +0000
@@ -196,14 +196,13 @@
@Override
public void configure(Map<String, String> config) {
- String val = config.get(NAME);
- String[] argument = Utils.listParser.apply(val);
- if (argument == null || argument.length == 0) {
+ List<String> arguments = Utils.parseList(config.get(NAME));
+ if (arguments.isEmpty()) {
throw new RuntimeException("Invalid argument for " + NAME);
}
String javahome = System.getProperty("java.home");
- for (String a : argument) {
+ for (String a : arguments) {
int i = a.indexOf("=");
CopiedFile cf = new CopiedFile();
if (i == -1) {
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java Thu Jun 16 20:56:45 2016 +0000
@@ -25,8 +25,6 @@
package jdk.tools.jlink.internal.plugins;
import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.UncheckedIOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
@@ -44,7 +42,6 @@
import jdk.internal.org.objectweb.asm.ClassReader;
import jdk.tools.jlink.internal.ResourcePrevisitor;
import jdk.tools.jlink.internal.StringTable;
-import jdk.tools.jlink.internal.Utils;
import jdk.tools.jlink.plugin.LinkModule;
import jdk.tools.jlink.plugin.ModuleEntry;
import jdk.tools.jlink.plugin.PluginException;
@@ -209,14 +206,10 @@
String.format(PluginsResourceBundle.getMessage(NAME + ".nomatchinglocales"), userParam));
}
- try {
- String value = META_FILES + filtered.stream()
- .map(s -> includeLocaleFilePatterns(s))
- .collect(Collectors.joining(","));
- predicate = new ResourceFilter(Utils.listParser.apply(value), false);
- } catch (IOException ex) {
- throw new UncheckedIOException(ex);
- }
+ String value = META_FILES + filtered.stream()
+ .map(s -> includeLocaleFilePatterns(s))
+ .collect(Collectors.joining(","));
+ predicate = ResourceFilter.includeFilter(value);
}
private String includeLocaleFilePatterns(String tag) {
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/OrderResourcesPlugin.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/OrderResourcesPlugin.java Thu Jun 16 20:56:45 2016 +0000
@@ -167,8 +167,7 @@
@Override
public void configure(Map<String, String> config) {
- String val = config.get(NAME);
- String[] patterns = Utils.listParser.apply(val);
+ List<String> patterns = Utils.parseList(config.get(NAME));
int ordinal = 0;
for (String pattern : patterns) {
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ReleaseInfoPlugin.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ReleaseInfoPlugin.java Thu Jun 16 20:56:45 2016 +0000
@@ -97,10 +97,9 @@
case "del": {
// --release-info del:keys=openjdk,java_version
- String[] keys = Utils.listParser.apply(config.get(KEYS));
- for (String k : keys) {
+ Utils.parseList(config.get(KEYS)).stream().forEach((k) -> {
release.remove(k);
- }
+ });
}
break;
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ResourceFilter.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ResourceFilter.java Thu Jun 16 20:56:45 2016 +0000
@@ -26,12 +26,13 @@
import java.io.File;
import java.io.IOException;
-import java.nio.file.FileSystem;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.PathMatcher;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
+import java.util.Objects;
import java.util.function.Predicate;
import jdk.tools.jlink.internal.Utils;
import jdk.tools.jlink.plugin.PluginException;
@@ -41,17 +42,14 @@
* Filter resource resources using path matcher.
*/
public class ResourceFilter implements Predicate<String> {
- private static final FileSystem JRT_FILE_SYSTEM = Utils.jrtFileSystem();
-
- final boolean negate;
- final List<PathMatcher> matchers;
+ private final static List<String> EMPTY_LIST = Collections.emptyList();
- public ResourceFilter(String[] patterns) throws IOException {
- this(patterns, false);
- }
+ private final List<PathMatcher> matchers;
+ private final boolean include;
+ private final boolean otherwise;
- public ResourceFilter(String[] patterns, boolean negate) throws IOException {
- this.negate = negate;
+ private ResourceFilter(List<String> patterns, boolean exclude) {
+ Objects.requireNonNull(patterns);
this.matchers = new ArrayList<>();
for (String pattern : patterns) {
@@ -67,28 +65,59 @@
throw new PluginException(ex);
}
- for (String line : lines) {
- PathMatcher matcher = Utils.getPathMatcher(JRT_FILE_SYSTEM, line);
- matchers.add(matcher);
- }
+ lines.stream().forEach((line) -> {
+ matchers.add(Utils.getJRTFSPathMatcher(line.trim()));
+ });
+ } else {
+ System.err.println("warning - the filter file " + file +
+ " is empty or not present.");
}
} else {
- PathMatcher matcher = Utils.getPathMatcher(JRT_FILE_SYSTEM, pattern);
- matchers.add(matcher);
+ matchers.add(Utils.getJRTFSPathMatcher(pattern));
}
}
+
+ this.include = !exclude;
+ this.otherwise = exclude || this.matchers.isEmpty();
+ }
+
+ public static ResourceFilter includeFilter(List<String> patterns) {
+ Objects.requireNonNull(patterns);
+ return new ResourceFilter(patterns, false);
+ }
+
+ public static ResourceFilter includeFilter(String patterns) {
+ if (patterns == null) {
+ return includeFilter(EMPTY_LIST);
+ }
+
+ return includeFilter(Utils.parseList(patterns));
+ }
+
+ public static ResourceFilter excludeFilter(List<String> patterns) {
+ Objects.requireNonNull(patterns);
+ return new ResourceFilter(patterns, true);
+ }
+
+ public static ResourceFilter excludeFilter(String patterns) {
+ if (patterns == null) {
+ return excludeFilter(EMPTY_LIST);
+ }
+
+ return excludeFilter(Utils.parseList(patterns));
}
@Override
public boolean test(String name) {
- Path path = JRT_FILE_SYSTEM.getPath(name);
+ Objects.requireNonNull(name);
+ Path path = Utils.getJRTFSPath(name);
for (PathMatcher matcher : matchers) {
if (matcher.matches(path)) {
- return !negate;
+ return include;
}
}
- return negate;
+ return otherwise;
}
}
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/StringSharingPlugin.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/StringSharingPlugin.java Thu Jun 16 20:56:45 2016 +0000
@@ -63,7 +63,6 @@
import jdk.tools.jlink.plugin.ModulePool;
import jdk.tools.jlink.internal.ResourcePrevisitor;
import jdk.tools.jlink.internal.StringTable;
-import jdk.tools.jlink.internal.Utils;
/**
*
@@ -335,12 +334,8 @@
private Predicate<String> predicate;
- public StringSharingPlugin() throws IOException {
- this(new String[0]);
- }
-
- StringSharingPlugin(String[] patterns) throws IOException {
- this(new ResourceFilter(patterns));
+ public StringSharingPlugin() {
+ this((path) -> true);
}
StringSharingPlugin(Predicate<String> predicate) {
@@ -396,12 +391,7 @@
@Override
public void configure(Map<String, String> config) {
- try {
- String val = config.get(NAME);
- predicate = new ResourceFilter(Utils.listParser.apply(val));
- } catch (IOException ex) {
- throw new PluginException(ex);
- }
+ predicate = ResourceFilter.includeFilter(config.get(NAME));
}
@Override
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/StripDebugPlugin.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/StripDebugPlugin.java Thu Jun 16 20:56:45 2016 +0000
@@ -25,8 +25,7 @@
package jdk.tools.jlink.internal.plugins;
import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.UncheckedIOException;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@@ -42,15 +41,15 @@
* Strip debug attributes plugin
*/
public final class StripDebugPlugin implements TransformerPlugin {
- private static final String[] PATTERNS = {"*.diz"};
public static final String NAME = "strip-debug";
private final Predicate<String> predicate;
+
public StripDebugPlugin() {
- try {
- predicate = new ResourceFilter(PATTERNS);
- } catch (IOException ex) {
- throw new UncheckedIOException(ex);
- }
+ this((path) -> false);
+ }
+
+ StripDebugPlugin(Predicate<String> predicate) {
+ this.predicate = predicate;
}
@Override
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ZipPlugin.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ZipPlugin.java Thu Jun 16 20:56:45 2016 +0000
@@ -27,18 +27,17 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
import java.util.zip.Deflater;
-import jdk.tools.jlink.plugin.PluginException;
import jdk.tools.jlink.internal.ModulePoolImpl;
import jdk.tools.jlink.plugin.ModuleEntry;
import jdk.tools.jlink.plugin.ModulePool;
import jdk.tools.jlink.plugin.TransformerPlugin;
-import jdk.tools.jlink.internal.Utils;
/**
*
@@ -53,8 +52,8 @@
}
- ZipPlugin(String[] patterns) throws IOException {
- this(new ResourceFilter(patterns));
+ ZipPlugin(String[] patterns) {
+ this(ResourceFilter.includeFilter(Arrays.asList(patterns)));
}
ZipPlugin(Predicate<String> predicate) {
@@ -90,12 +89,7 @@
@Override
public void configure(Map<String, String> config) {
- try {
- String val = config.get(NAME);
- predicate = new ResourceFilter(Utils.listParser.apply(val));
- } catch (IOException ex) {
- throw new PluginException(ex);
- }
+ predicate = ResourceFilter.includeFilter(config.get(NAME));
}
static byte[] compress(byte[] bytesIn) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_ja.properties Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,54 @@
+main.usage.summary=\u4F7F\u7528\u65B9\u6CD5: {0} <options> --modulepath <modulepath> --addmods <mods> --output <path>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30EA\u30B9\u30C8\u306B\u3064\u3044\u3066\u306F\u3001--help\u3092\u4F7F\u7528\u3057\u307E\u3059
+
+main.usage=\u4F7F\u7528\u65B9\u6CD5: {0} <options> --modulepath <modulepath> --addmods <mods> --output <path>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002
+
+error.prefix=\u30A8\u30E9\u30FC:
+warn.prefix=\u8B66\u544A:
+
+main.opt.help=\ --help \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059
+
+main.opt.version=\ --version \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831
+
+main.opt.modulepath=\ --modulepath <modulepath> \u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9
+
+main.opt.addmods=\ --addmods <mod>[,<mod>...] \u89E3\u6C7A\u3059\u308B\u30EB\u30FC\u30C8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB
+
+main.opt.limitmods=\ --limitmods <mod>[,<mod>...] \u76E3\u8996\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30E6\u30CB\u30D0\u30FC\u30B9\u3092\u5236\u9650\u3057\u307E\u3059
+
+main.opt.output=\ --output <path> \u51FA\u529B\u30D1\u30B9\u306E\u5834\u6240
+
+main.command.files=\ @<filename> \u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059
+
+main.opt.endian=\ --endian <little|big> \u751F\u6210\u3055\u308C\u305Fjimage (default:native)\u306E\u30D0\u30A4\u30C8\u9806
+
+main.opt.genbom=\ --genbom jlink\u60C5\u5831\u3092\u542B\u3080bom\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3057\u307E\u3059
+
+main.opt.saveopts=\ --saveopts <filename> \u6307\u5B9A\u306E\u30D5\u30A1\u30A4\u30EB\u306Bjlink\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4FDD\u5B58\u3057\u307E\u3059
+
+main.msg.bug=jlink\u3067\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3067\u91CD\u8907\u304C\u306A\u3044\u304B\u3092\u3054\u78BA\u8A8D\u306E\u3046\u3048\u3001Java Bug Database (http://bugreport.java.com/bugreport/)\u3067bug\u306E\u767B\u9332\u3092\u304A\u9858\u3044\u3044\u305F\u3057\u307E\u3059\u3002\u30EC\u30DD\u30FC\u30C8\u306B\u306F\u3001\u305D\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u3068\u6B21\u306E\u8A3A\u65AD\u5185\u5BB9\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u3054\u5354\u529B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002
+
+main.extended.help=\u4F7F\u7528\u53EF\u80FD\u306A\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30EA\u30B9\u30C8:
+
+err.unknown.byte.order:\u4E0D\u660E\u306A\u30D0\u30A4\u30C8\u9806{0}
+err.output.must.be.specified:--output\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
+err.modulepath.must.be.specified:--modulepath\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
+err.mods.must.be.specified:{0}\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093
+err.path.not.found=\u30D1\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
+err.path.not.valid=\u7121\u52B9\u306A\u30D1\u30B9: {0}
+err.existing.image.must.exist=\u65E2\u5B58\u306E\u30A4\u30E1\u30FC\u30B8\u304C\u5B58\u5728\u3057\u306A\u3044\u304B\u3001\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093
+err.existing.image.invalid=\u65E2\u5B58\u306E\u30A4\u30E1\u30FC\u30B8\u304C\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093
+err.file.not.found=\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
+err.file.error=\u30D5\u30A1\u30A4\u30EB\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093: {0}
+err.dir.exists={0}\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059
+err.badpattern=\u4E0D\u6B63\u30D1\u30BF\u30FC\u30F3{0}
+err.unknown.option=\u4E0D\u660E\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: {0}
+err.missing.arg={0}\u306B\u5024\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093
+err.internal.error=\u5185\u90E8\u30A8\u30E9\u30FC: {0} {1} {2}
+err.invalid.arg.for.option=\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5F15\u6570\u304C\u7121\u52B9\u3067\u3059: {0}
+err.option.after.class=\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u30AF\u30E9\u30B9\u306E\u524D\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059: {0}
+err.option.unsupported={0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093: {1}
+err.config.defaults=\u30D7\u30ED\u30D1\u30C6\u30A3{0}\u304C\u69CB\u6210\u306B\u3042\u308A\u307E\u305B\u3093
+err.config.defaults.value=\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u306E\u5024\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059: {0}
+err.bom.generation=bom\u30D5\u30A1\u30A4\u30EB\u306E\u751F\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {0}
+warn.invalid.arg=\u7121\u52B9\u306A\u30AF\u30E9\u30B9\u540D\u307E\u305F\u306F\u30D1\u30B9\u540D\u304C\u5B58\u5728\u3057\u307E\u305B\u3093: {0}
+warn.split.package=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306F{1} {2}\u3067\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u3059
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_zh_CN.properties Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,54 @@
+main.usage.summary=\u7528\u6CD5: {0} <options> --modulepath <modulepath> --addmods <mods> --output <path>\n\u4F7F\u7528 --help \u53EF\u4EE5\u5217\u51FA\u53EF\u80FD\u7684\u9009\u9879
+
+main.usage=\u7528\u6CD5: {0} <options> --modulepath <modulepath> --addmods <mods> --output <path>\n\u53EF\u80FD\u7684\u9009\u9879\u5305\u62EC:
+
+error.prefix=\u9519\u8BEF:
+warn.prefix=\u8B66\u544A:
+
+main.opt.help=\ --help \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F
+
+main.opt.version=\ --version \u7248\u672C\u4FE1\u606F
+
+main.opt.modulepath=\ --modulepath <modulepath> \u6A21\u5757\u8DEF\u5F84
+
+main.opt.addmods=\ --addmods <mod>[,<mod>...] \u8981\u89E3\u6790\u7684\u6839\u6A21\u5757
+
+main.opt.limitmods=\ --limitmods <mod>[,<mod>...] \u9650\u5236\u53EF\u89C2\u5BDF\u6A21\u5757\u7684\u9886\u57DF
+
+main.opt.output=\ --output <path> \u8F93\u51FA\u8DEF\u5F84\u7684\u4F4D\u7F6E
+
+main.command.files=\ @<filename> \u4ECE\u6587\u4EF6\u4E2D\u8BFB\u53D6\u9009\u9879
+
+main.opt.endian=\ --endian <little|big> \u6240\u751F\u6210 jimage \u7684\u5B57\u8282\u987A\u5E8F (\u9ED8\u8BA4\u503C: native)
+
+main.opt.genbom=\ --genbom \u751F\u6210\u5305\u542B jlink \u4FE1\u606F\u7684 bom \u6587\u4EF6
+
+main.opt.saveopts=\ --saveopts <filename> \u5C06 jlink \u9009\u9879\u4FDD\u5B58\u5728\u6307\u5B9A\u6587\u4EF6\u4E2D
+
+main.msg.bug=jlink \u4E2D\u51FA\u73B0\u5F02\u5E38\u9519\u8BEF\u3002\u5982\u679C\u5728 Java Bug Database (http://bugreport.java.com/bugreport/) \u4E2D\u6CA1\u6709\u627E\u5230\u8BE5\u9519\u8BEF, \u8BF7\u5728\u8BE5\u6570\u636E\u5E93\u4E2D\u5EFA\u7ACB Bug\u3002\u8BF7\u5728\u62A5\u544A\u4E2D\u9644\u4E0A\u60A8\u7684\u7A0B\u5E8F\u548C\u4EE5\u4E0B\u8BCA\u65AD\u4FE1\u606F\u3002\u8C22\u8C22\u3002
+
+main.extended.help=\u53EF\u7528\u63D2\u4EF6\u5217\u8868:
+
+err.unknown.byte.order:\u672A\u77E5\u7684\u5B57\u8282\u987A\u5E8F {0}
+err.output.must.be.specified:\u5FC5\u987B\u6307\u5B9A --output
+err.modulepath.must.be.specified:\u5FC5\u987B\u6307\u5B9A --modulepath
+err.mods.must.be.specified:\u6CA1\u6709\u5C06\u4EFB\u4F55\u6A21\u5757\u6307\u5B9A\u5230{0}
+err.path.not.found=\u627E\u4E0D\u5230\u8DEF\u5F84: {0}
+err.path.not.valid=\u65E0\u6548\u8DEF\u5F84: {0}
+err.existing.image.must.exist=\u73B0\u6709\u6620\u50CF\u4E0D\u5B58\u5728\u6216\u8005\u4E0D\u662F\u76EE\u5F55
+err.existing.image.invalid=\u73B0\u6709\u6620\u50CF\u65E0\u6548
+err.file.not.found=\u627E\u4E0D\u5230\u6587\u4EF6: {0}
+err.file.error=\u65E0\u6CD5\u8BBF\u95EE\u6587\u4EF6: {0}
+err.dir.exists={0} \u5DF2\u5B58\u5728
+err.badpattern=\u9519\u8BEF\u7684\u6A21\u5F0F {0}
+err.unknown.option=\u672A\u77E5\u9009\u9879: {0}
+err.missing.arg=\u6CA1\u6709\u4E3A{0}\u6307\u5B9A\u503C
+err.internal.error=\u5185\u90E8\u9519\u8BEF: {0} {1} {2}
+err.invalid.arg.for.option=\u9009\u9879\u7684\u53C2\u6570\u65E0\u6548: {0}
+err.option.after.class=\u5FC5\u987B\u5728\u7C7B\u4E4B\u524D\u6307\u5B9A\u9009\u9879: {0}
+err.option.unsupported=\u4E0D\u652F\u6301{0}: {1}
+err.config.defaults=\u914D\u7F6E\u4E2D\u7F3A\u5C11\u5C5E\u6027 {0}
+err.config.defaults.value=\u9ED8\u8BA4\u5C5E\u6027\u4E2D\u7684\u503C\u9519\u8BEF: {0}
+err.bom.generation=\u672A\u80FD\u751F\u6210 bom \u6587\u4EF6: {0}
+warn.invalid.arg=\u7C7B\u540D\u65E0\u6548\u6216\u8DEF\u5F84\u540D\u4E0D\u5B58\u5728: {0}
+warn.split.package=\u5DF2\u5728{1} {2}\u4E2D\u5B9A\u4E49\u7A0B\u5E8F\u5305{0}
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java Thu Jun 16 20:56:45 2016 +0000
@@ -103,6 +103,7 @@
import jdk.internal.module.ConfigurableModuleFinder.Phase;
import jdk.internal.module.ModuleHashes;
import jdk.internal.module.ModuleInfoExtender;
+import jdk.tools.jlink.internal.Utils;
import static java.util.stream.Collectors.joining;
@@ -1091,13 +1092,7 @@
@Override
public PathMatcher convert(String pattern) {
try {
- if (!pattern.startsWith("glob:") &&
- !pattern.startsWith("regex:")) {
- pattern = "glob:" + pattern;
- }
-
- return FileSystems.getDefault()
- .getPathMatcher("glob:" + pattern);
+ return Utils.getPathMatcher(FileSystems.getDefault(), pattern);
} catch (PatternSyntaxException e) {
throw new CommandException("err.bad.pattern", pattern);
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod_ja.properties Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,52 @@
+main.usage.summary=\u4F7F\u7528\u65B9\u6CD5: {0} (create|list|describe) <OPTIONS> <jmod-file>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30EA\u30B9\u30C8\u306B\u3064\u3044\u3066\u306F\u3001--help\u3092\u4F7F\u7528\u3057\u307E\u3059
+
+main.usage=\u4F7F\u7528\u65B9\u6CD5: {0} (create|list|describe) <OPTIONS> <jmod-file>
+
+error.prefix=\u30A8\u30E9\u30FC:
+warn.prefix=\u8B66\u544A:
+
+main.opt.mode.create=create - \u65B0\u898F\u306Ejmod\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3057\u307E\u3059
+main.opt.mode.list=list - \u3059\u3079\u3066\u306E\u30A8\u30F3\u30C8\u30EA\u306E\u540D\u524D\u3092\u51FA\u529B\u3057\u307E\u3059
+main.opt.mode.describe=describe - \u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u8A73\u7D30\u3092\u51FA\u529B\u3057\u307E\u3059
+
+main.opt.help=\u3053\u306E\u4F7F\u7528\u65B9\u6CD5\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059
+main.opt.version=\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831
+main.opt.class-path=\u30AF\u30E9\u30B9\u3092\u542B\u3080\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3jar\u30D5\u30A1\u30A4\u30EB|\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA
+main.opt.libs=\u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30E9\u30A4\u30D6\u30E9\u30EA\u306E\u5834\u6240
+main.opt.cmds=\u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30B3\u30DE\u30F3\u30C9\u306E\u5834\u6240
+main.opt.config=\u30E6\u30FC\u30B6\u30FC\u304C\u7DE8\u96C6\u53EF\u80FD\u306A\u69CB\u6210\u30D5\u30A1\u30A4\u30EB\u306E\u5834\u6240
+main.opt.exclude=PATTERN\u3068\u3057\u3066\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u9664\u5916\u3057\u307E\u3059
+main.opt.module-version= \u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3
+main.opt.modulepath=\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9
+main.opt.main-class=\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9
+main.opt.main-class.arg=class-name
+main.opt.os-name=\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0\u30FB\u30B7\u30B9\u30C6\u30E0\u540D
+main.opt.os-name.arg=os-name
+main.opt.os-arch=\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0\u30FB\u30B7\u30B9\u30C6\u30E0\u306E\u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3
+main.opt.os-arch.arg=os-arch
+main.opt.os-version=\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0\u30FB\u30B7\u30B9\u30C6\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3
+main.opt.os-version.arg=os-version
+main.opt.hash-dependencies=\u30D1\u30BF\u30FC\u30F3\u306B\u4E00\u81F4\u3057\u305F\u4F9D\u5B58\u6027\u306E\u30CF\u30C3\u30B7\u30E5\u3092\u8A08\u7B97\u304A\u3088\u3073\u8A18\u9332\u3057\u307E\u3059
+main.opt.cmdfile=\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059
+
+err.missing.mode=create\u3001list\u307E\u305F\u306Fdescribe\u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
+err.invalid.mode=\u30E2\u30FC\u30C9\u306Fcreate\u3001list\u307E\u305F\u306Fdescribe\u306E\u3044\u305A\u308C\u304B\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059: {0}
+err.classpath.must.be.specified=--class-path\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
+err.jmod.must.be.specified=jmod-file\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
+err.invalid.version=\u7121\u52B9\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3{0}
+err.output.must.be.specified:--output\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
+err.mods.must.be.specified:--mods\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
+err.modulepath.must.be.specified:\u4F9D\u5B58\u6027\u306E\u30CF\u30C3\u30B7\u30E5\u6642\u306B\u306F--module-path\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
+err.invalid.main-class:\u7121\u52B9\u306A\u30E1\u30A4\u30F3\u30AF\u30E9\u30B9\u540D: {0}
+err.path.not.found=\u30D1\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
+err.path.not.valid=\u7121\u52B9\u306A\u30D1\u30B9: {0}
+err.path.not.a.dir=\u30D1\u30B9\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059: {0}
+err.invalid.class.path.entry=\u7121\u52B9\u306A\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u30FB\u30A8\u30F3\u30C8\u30EA: {0}
+err.file.already.exists=\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059: {0}
+err.jmod.not.found=jmod\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
+err.bad.pattern=\u4E0D\u6B63\u30D1\u30BF\u30FC\u30F3{0}
+err.unknown.option=\u4E0D\u660E\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: {0}
+err.missing.arg={0}\u306B\u5024\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093
+err.internal.error=\u5185\u90E8\u30A8\u30E9\u30FC: {0} {1} {2}
+err.module.descriptor.not.found=\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
+warn.invalid.arg=\u7121\u52B9\u306A\u30AF\u30E9\u30B9\u540D\u307E\u305F\u306F\u30D1\u30B9\u540D\u304C\u5B58\u5728\u3057\u307E\u305B\u3093: {0}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod_zh_CN.properties Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,52 @@
+main.usage.summary=\u7528\u6CD5: {0} (create|list|describe) <OPTIONS> <jmod-file>\n\u4F7F\u7528 --help \u5217\u51FA\u53EF\u80FD\u7684\u9009\u9879
+
+main.usage=\u7528\u6CD5: {0} (create|list|describe) <OPTIONS> <jmod-file>
+
+error.prefix=\u9519\u8BEF:
+warn.prefix=\u8B66\u544A:
+
+main.opt.mode.create=create - \u521B\u5EFA\u65B0\u7684 jmod \u6863\u6848
+main.opt.mode.list=list - \u8F93\u51FA\u6240\u6709\u6761\u76EE\u7684\u540D\u79F0
+main.opt.mode.describe=describe - \u8F93\u51FA\u6A21\u5757\u8BE6\u7EC6\u4FE1\u606F
+
+main.opt.help=\u8F93\u51FA\u6B64\u7528\u6CD5\u6D88\u606F
+main.opt.version=\u7248\u672C\u4FE1\u606F
+main.opt.class-path=\u5305\u542B\u7C7B\u7684\u5E94\u7528\u7A0B\u5E8F jar \u6587\u4EF6|\u76EE\u5F55
+main.opt.libs=\u672C\u673A\u5E93\u7684\u4F4D\u7F6E
+main.opt.cmds=\u672C\u673A\u547D\u4EE4\u7684\u4F4D\u7F6E
+main.opt.config=\u7528\u6237\u53EF\u7F16\u8F91\u914D\u7F6E\u6587\u4EF6\u7684\u4F4D\u7F6E
+main.opt.exclude=\u6392\u9664\u4EE5\u6A21\u5F0F\u6307\u5B9A\u7684\u6587\u4EF6
+main.opt.module-version= \u6A21\u5757\u7248\u672C
+main.opt.modulepath=\u6A21\u5757\u8DEF\u5F84
+main.opt.main-class=\u4E3B\u7C7B
+main.opt.main-class.arg=class-name
+main.opt.os-name=\u64CD\u4F5C\u7CFB\u7EDF\u540D\u79F0
+main.opt.os-name.arg=os-name
+main.opt.os-arch=\u64CD\u4F5C\u7CFB\u7EDF\u4F53\u7CFB\u7ED3\u6784
+main.opt.os-arch.arg=os-arch
+main.opt.os-version=\u64CD\u4F5C\u7CFB\u7EDF\u7248\u672C
+main.opt.os-version.arg=os-version
+main.opt.hash-dependencies=\u8BA1\u7B97\u548C\u8BB0\u5F55\u6309\u6A21\u5F0F\u5339\u914D\u7684\u88AB\u4F9D\u8D56\u5BF9\u8C61\u7684\u6563\u5217
+main.opt.cmdfile=\u4ECE\u6307\u5B9A\u6587\u4EF6\u8BFB\u53D6\u9009\u9879
+
+err.missing.mode=\u5FC5\u987B\u6307\u5B9A\u521B\u5EFA, \u5217\u51FA\u6216\u63CF\u8FF0\u4E4B\u4E00
+err.invalid.mode=\u6A21\u5F0F\u5FC5\u987B\u4E3A\u521B\u5EFA, \u5217\u51FA\u6216\u63CF\u8FF0\u4E4B\u4E00: {0}
+err.classpath.must.be.specified=\u5FC5\u987B\u6307\u5B9A --class-path
+err.jmod.must.be.specified=\u5FC5\u987B\u6307\u5B9A jmod-file
+err.invalid.version=\u65E0\u6548\u7684\u6A21\u5757\u7248\u672C {0}
+err.output.must.be.specified:\u5FC5\u987B\u6307\u5B9A --output
+err.mods.must.be.specified:\u5FC5\u987B\u6307\u5B9A --mods
+err.modulepath.must.be.specified:\u5BF9\u88AB\u4F9D\u8D56\u5BF9\u8C61\u8FDB\u884C\u6563\u5217\u5904\u7406\u65F6\u5FC5\u987B\u6307\u5B9A --module-path
+err.invalid.main-class:\u65E0\u6548\u7684\u4E3B\u7C7B\u540D\u79F0: {0}
+err.path.not.found=\u627E\u4E0D\u5230\u8DEF\u5F84: {0}
+err.path.not.valid=\u65E0\u6548\u8DEF\u5F84: {0}
+err.path.not.a.dir=\u8DEF\u5F84\u5FC5\u987B\u4E3A\u76EE\u5F55: {0}
+err.invalid.class.path.entry=\u65E0\u6548\u7684\u7C7B\u8DEF\u5F84\u6761\u76EE: {0}
+err.file.already.exists=\u6587\u4EF6\u5DF2\u5B58\u5728: {0}
+err.jmod.not.found=\u627E\u4E0D\u5230 jmod \u6587\u4EF6: {0}
+err.bad.pattern=\u9519\u8BEF\u7684\u6A21\u5F0F {0}
+err.unknown.option=\u672A\u77E5\u9009\u9879: {0}
+err.missing.arg=\u6CA1\u6709\u4E3A{0}\u6307\u5B9A\u503C
+err.internal.error=\u5185\u90E8\u9519\u8BEF: {0} {1} {2}
+err.module.descriptor.not.found=\u627E\u4E0D\u5230\u6A21\u5757\u63CF\u8FF0\u7B26
+warn.invalid.arg=\u7C7B\u540D\u65E0\u6548\u6216\u8DEF\u5F84\u540D\u4E0D\u5B58\u5728: {0}
--- a/jdk/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/MonitoredVmUtil.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/MonitoredVmUtil.java Thu Jun 16 20:56:45 2016 +0000
@@ -102,35 +102,42 @@
*/
public static String mainClass(MonitoredVm vm, boolean fullPath)
throws MonitorException {
- String commandLine = commandLine(vm);
- String arg0 = commandLine;
-
- int firstSpace = commandLine.indexOf(' ');
+ String cmdLine = commandLine(vm);
+ int firstSpace = cmdLine.indexOf(' ');
if (firstSpace > 0) {
- arg0 = commandLine.substring(0, firstSpace);
+ cmdLine = cmdLine.substring(0, firstSpace);
+ }
+ if (fullPath) {
+ return cmdLine;
}
- if (!fullPath) {
+ /*
+ * Can't use File.separator() here because the separator for the target
+ * jvm may be different than the separator for the monitoring jvm.
+ * And we also strip embedded module e.g. "module/MainClass"
+ */
+ int lastSlash = cmdLine.lastIndexOf("/");
+ int lastBackslash = cmdLine.lastIndexOf("\\");
+ int lastSeparator = lastSlash > lastBackslash ? lastSlash : lastBackslash;
+ if (lastSeparator > 0) {
+ cmdLine = cmdLine.substring(lastSeparator + 1);
+ }
+
+ int lastPackageSeparator = cmdLine.lastIndexOf('.');
+ if (lastPackageSeparator > 0) {
+ String lastPart = cmdLine.substring(lastPackageSeparator + 1);
/*
- * can't use File.separator() here because the separator
- * for the target jvm may be different than the separator
- * for the monitoring jvm.
+ * We could have a relative path "my.module" or
+ * a module called "my.module" and a jar file called "my.jar" or
+ * class named "jar" in package "my", e.g. "my.jar".
+ * We can never be sure here, but we assume *.jar is a jar file
*/
- int lastFileSeparator = arg0.lastIndexOf('/');
- if (lastFileSeparator > 0) {
- return arg0.substring(lastFileSeparator + 1);
+ if (lastPart.equals("jar")) {
+ return cmdLine; /* presumably a file name without path */
}
+ return lastPart; /* presumably a class name without package */
+ }
- lastFileSeparator = arg0.lastIndexOf('\\');
- if (lastFileSeparator > 0) {
- return arg0.substring(lastFileSeparator + 1);
- }
-
- int lastPackageSeparator = arg0.lastIndexOf('.');
- if (lastPackageSeparator > 0) {
- return arg0.substring(lastPackageSeparator + 1);
- }
- }
- return arg0;
+ return cmdLine;
}
/**
--- a/jdk/src/jdk.pack200/share/native/unpack200/main.cpp Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.pack200/share/native/unpack200/main.cpp Thu Jun 16 20:56:45 2016 +0000
@@ -146,14 +146,18 @@
#define USAGE_OPTIONS \
"\n" \
"Unpacking Options\n" \
- " -H{h}, --deflate-hint={h} override transmitted deflate hint: true, false, or keep (default)\n" \
+ " -H{h}, --deflate-hint={h} override transmitted deflate hint:\n" \
+ " true, false, or keep (default)\n" \
" -r, --remove-pack-file remove input file after unpacking\n" \
" -v, --verbose increase program verbosity\n" \
" -q, --quiet set verbosity to lowest level\n" \
- " -l{F}, --log-file={F} output to the given log file, or '-' for standard output (default)\n" \
+ " -l{F}, --log-file={F} output to the given log file,\n" \
+ " or '-' for standard output (default)\n" \
" -?, -h, --help print this message\n" \
" -V, --version print program version\n" \
- " -J{X} Java VM argument (ignored)\n"
+ "\n" \
+ "Exit Status:\n" \
+ " 0 if successful, >0 if an error occurred\n"
static void usage(unpacker* u, const char* progname, bool full = false) {
// WinMain does not set argv[0] to the progrname
--- a/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_de.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_de.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,16 +44,16 @@
{"Usage.policytool.options.", "Verwendung: policytool [Optionen]"},
{".file.file.policy.file.location",
" [-file <Datei>] Policy-Dateiverzeichnis"},
- {"New", "Neu"},
- {"Open", "\u00D6ffnen"},
- {"Save", "Speichern"},
- {"Save.As", "Speichern unter"},
- {"View.Warning.Log", "Warnungslog anzeigen"},
- {"Exit", "Beenden"},
- {"Add.Policy.Entry", "Policy-Eintrag hinzuf\u00FCgen"},
- {"Edit.Policy.Entry", "Policy-Eintrag bearbeiten"},
- {"Remove.Policy.Entry", "Policy-Eintrag entfernen"},
- {"Edit", "Bearbeiten"},
+ {"New", "&Neu"},
+ {"Open", "&\u00D6ffnen..."},
+ {"Save", "&Speichern"},
+ {"Save.As", "Speichern &unter..."},
+ {"View.Warning.Log", "&Warnungslog anzeigen"},
+ {"Exit", "B&eenden"},
+ {"Add.Policy.Entry", "Policy-Eintrag &hinzuf\u00FCgen"},
+ {"Edit.Policy.Entry", "Policy-Eintrag &bearbeiten"},
+ {"Remove.Policy.Entry", "Policy-Eintrag &entfernen"},
+ {"Edit", "&Bearbeiten"},
{"Retain", "Beibehalten"},
{"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
@@ -61,8 +61,8 @@
{"Add.Public.Key.Alias", "Public Key-Alias hinzuf\u00FCgen"},
{"Remove.Public.Key.Alias", "Public Key-Alias entfernen"},
- {"File", "Datei"},
- {"KeyStore", "KeyStore"},
+ {"File", "&Datei"},
+ {"KeyStore", "&KeyStore"},
{"Policy.File.", "Policy-Datei:"},
{"Could.not.open.policy.file.policyFile.e.toString.",
"Policy-Datei konnte nicht ge\u00F6ffnet werden: {0}: {1}"},
@@ -84,20 +84,20 @@
{"OK.to.overwrite.existing.file.filename.",
"Vorhandene Datei {0} \u00FCberschreiben?"},
{"Cancel", "Abbrechen"},
- {"CodeBase.", "CodeBase:"},
- {"SignedBy.", "SignedBy:"},
- {"Add.Principal", "Principal hinzuf\u00FCgen"},
- {"Edit.Principal", "Principal bearbeiten"},
- {"Remove.Principal", "Principal entfernen"},
- {"Principals.", "Principals:"},
- {".Add.Permission", " Berechtigung hinzuf\u00FCgen"},
- {".Edit.Permission", " Berechtigung bearbeiten"},
- {"Remove.Permission", "Berechtigung entfernen"},
+ {"CodeBase.", "&CodeBase:"},
+ {"SignedBy.", "&SignedBy:"},
+ {"Add.Principal", "Principal &hinzuf\u00FCgen"},
+ {"Edit.Principal", "Principal &bearbeiten"},
+ {"Remove.Principal", "Principal ent&fernen"},
+ {"Principals.", "&Principals:"},
+ {".Add.Permission", " B&erechtigung hinzuf\u00FCgen"},
+ {".Edit.Permission", " Be&rechtigung bearbeiten"},
+ {"Remove.Permission", "Berec&htigung entfernen"},
{"Done", "Fertig"},
- {"KeyStore.URL.", "KeyStore-URL:"},
- {"KeyStore.Type.", "KeyStore-Typ:"},
- {"KeyStore.Provider.", "KeyStore-Provider:"},
- {"KeyStore.Password.URL.", "KeyStore-Kennwort-URL:"},
+ {"KeyStore.URL.", "KeyStore-&URL:"},
+ {"KeyStore.Type.", "KeyStore-&Typ:"},
+ {"KeyStore.Provider.", "KeyStore-&Provider:"},
+ {"KeyStore.Password.URL.", "KeyStore-Kenn&wort-URL:"},
{"Principals", "Principals"},
{".Edit.Principal.", " Principal bearbeiten:"},
{".Add.New.Principal.", " Neuen Principal hinzuf\u00FCgen:"},
@@ -117,8 +117,8 @@
"Policy erfolgreich in {0} geschrieben"},
{"null.filename", "Null-Dateiname"},
{"Save.changes.", "\u00C4nderungen speichern?"},
- {"Yes", "Ja"},
- {"No", "Nein"},
+ {"Yes", "&Ja"},
+ {"No", "&Nein"},
{"Policy.Entry", "Policy-Eintrag"},
{"Save.Changes", "\u00C4nderungen speichern"},
{"No.Policy.Entry.selected", "Kein Policy-Eintrag ausgew\u00E4hlt"},
--- a/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_es.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_es.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,16 +44,16 @@
{"Usage.policytool.options.", "Sintaxis: policytool [opciones]"},
{".file.file.policy.file.location",
" [-file <archivo>] ubicaci\u00F3n del archivo de normas"},
- {"New", "Nuevo"},
- {"Open", "Abrir"},
- {"Save", "Guardar"},
- {"Save.As", "Guardar como"},
- {"View.Warning.Log", "Ver Log de Advertencias"},
- {"Exit", "Salir"},
- {"Add.Policy.Entry", "Agregar Entrada de Pol\u00EDtica"},
- {"Edit.Policy.Entry", "Editar Entrada de Pol\u00EDtica"},
- {"Remove.Policy.Entry", "Eliminar Entrada de Pol\u00EDtica"},
- {"Edit", "Editar"},
+ {"New", "&Nueva"},
+ {"Open", "&Abrir..."},
+ {"Save", "&Guardar"},
+ {"Save.As", "Guardar &como..."},
+ {"View.Warning.Log", "Ver &log de advertencias"},
+ {"Exit", "&Salir"},
+ {"Add.Policy.Entry", "Agregar &entrada de pol\u00EDtica"},
+ {"Edit.Policy.Entry", "E&ditar entrada de pol\u00EDtica"},
+ {"Remove.Policy.Entry", "&Eliminar entrada de pol\u00EDtica"},
+ {"Edit", "&Editar"},
{"Retain", "Mantener"},
{"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
@@ -61,8 +61,8 @@
{"Add.Public.Key.Alias", "Agregar Alias de Clave P\u00FAblico"},
{"Remove.Public.Key.Alias", "Eliminar Alias de Clave P\u00FAblico"},
- {"File", "Archivo"},
- {"KeyStore", "Almac\u00E9n de Claves"},
+ {"File", "&Archivo"},
+ {"KeyStore", "Al&mac\u00E9n de claves"},
{"Policy.File.", "Archivo de Pol\u00EDtica:"},
{"Could.not.open.policy.file.policyFile.e.toString.",
"No se ha podido abrir el archivo de pol\u00EDtica: {0}: {1}"},
@@ -84,20 +84,20 @@
{"OK.to.overwrite.existing.file.filename.",
"\u00BFSobrescribir el archivo existente {0}?"},
{"Cancel", "Cancelar"},
- {"CodeBase.", "CodeBase:"},
- {"SignedBy.", "SignedBy:"},
- {"Add.Principal", "Agregar Principal"},
- {"Edit.Principal", "Editar Principal"},
- {"Remove.Principal", "Eliminar Principal"},
- {"Principals.", "Principales:"},
- {".Add.Permission", " Agregar Permiso"},
- {".Edit.Permission", " Editar Permiso"},
- {"Remove.Permission", "Eliminar Permiso"},
+ {"CodeBase.", "&CodeBase:"},
+ {"SignedBy.", "&SignedBy:"},
+ {"Add.Principal", "&Agregar principal"},
+ {"Edit.Principal", "&Editar principal"},
+ {"Remove.Principal", "Elimina&r principal"},
+ {"Principals.", "&Principales:"},
+ {".Add.Permission", "A&gregar permiso"},
+ {".Edit.Permission", "Ed&itar permiso"},
+ {"Remove.Permission", "Eli&minar permiso"},
{"Done", "Listo"},
- {"KeyStore.URL.", "URL de Almac\u00E9n de Claves:"},
- {"KeyStore.Type.", "Tipo de Almac\u00E9n de Claves:"},
- {"KeyStore.Provider.", "Proveedor de Almac\u00E9n de Claves:"},
- {"KeyStore.Password.URL.", "URL de Contrase\u00F1a de Almac\u00E9n de Claves:"},
+ {"KeyStore.URL.", "&URL de almac\u00E9n de claves:"},
+ {"KeyStore.Type.", "&Tipo de almac\u00E9n de claves:"},
+ {"KeyStore.Provider.", "&Proveedor de almac\u00E9n de claves:"},
+ {"KeyStore.Password.URL.", "URL de Contra&se\u00F1a de almac\u00E9n de claves:"},
{"Principals", "Principales"},
{".Edit.Principal.", " Editar Principal:"},
{".Add.New.Principal.", " Agregar Nuevo Principal:"},
@@ -117,8 +117,8 @@
"Pol\u00EDtica escrita correctamente en {0}"},
{"null.filename", "nombre de archivo nulo"},
{"Save.changes.", "\u00BFGuardar los cambios?"},
- {"Yes", "S\u00ED"},
- {"No", "No"},
+ {"Yes", "&S\u00ED"},
+ {"No", "&No"},
{"Policy.Entry", "Entrada de Pol\u00EDtica"},
{"Save.Changes", "Guardar Cambios"},
{"No.Policy.Entry.selected", "No se ha seleccionado la entrada de pol\u00EDtica"},
--- a/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_fr.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_fr.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,25 +44,25 @@
{"Usage.policytool.options.", "Syntaxe : policytool [options]"},
{".file.file.policy.file.location",
" [-file <file>] emplacement du fichier de r\u00E8gles"},
- {"New", "Nouveau"},
- {"Open", "Ouvrir"},
- {"Save", "Enregistrer"},
- {"Save.As", "Enregistrer sous"},
- {"View.Warning.Log", "Afficher le journal des avertissements"},
- {"Exit", "Quitter"},
- {"Add.Policy.Entry", "Ajouter une r\u00E8gle"},
- {"Edit.Policy.Entry", "Modifier une r\u00E8gle"},
- {"Remove.Policy.Entry", "Enlever une r\u00E8gle"},
- {"Edit", "Modifier"},
+ {"New", "&Nouveau"},
+ {"Open", "&Ouvrir..."},
+ {"Save", "Enregi&strer"},
+ {"Save.As", "Enregistrer so&us..."},
+ {"View.Warning.Log", "Affic&her le journal des avertissements"},
+ {"Exit", "&Quitter"},
+ {"Add.Policy.Entry", "&Ajouter une r\u00E8gle"},
+ {"Edit.Policy.Entry", "Modifi&er une r\u00E8gle"},
+ {"Remove.Policy.Entry", "Enlever une &r\u00E8gle"},
+ {"Edit", "Modifi&er"},
{"Retain", "Conserver"},
{"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
- "Avertissement : il se peut que le nom de fichier contienne des barres obliques inverses avec caract\u00E8re d'\u00E9chappement. Il n'est pas n\u00E9cessaire d'ajouter un caract\u00E8re d'\u00E9chappement aux barres obliques inverses. L'outil proc\u00E8de \u00E0 l'\u00E9chappement si n\u00E9cessaire lorsqu'il \u00E9crit le contenu des r\u00E8gles dans la zone de stockage persistant).\n\nCliquez sur Conserver pour garder le nom saisi ou sur Modifier pour le remplacer."},
+ "Avertissement : il se peut que le nom de fichier contienne des barres obliques inverses avec caract\u00E8re d'\u00E9chappement. Il n'est pas n\u00E9cessaire d'ajouter un caract\u00E8re d'\u00E9chappement aux barres obliques inverses. L'outil proc\u00E8de \u00E0 l'\u00E9chappement si n\u00E9cessaire lorsqu'il \u00E9crit le contenu des r\u00E8gles dans la zone de stockage persistant.\n\nCliquez sur Conserver pour garder le nom saisi ou sur Modifier pour le remplacer."},
{"Add.Public.Key.Alias", "Ajouter un alias de cl\u00E9 publique"},
{"Remove.Public.Key.Alias", "Enlever un alias de cl\u00E9 publique"},
- {"File", "Fichier"},
- {"KeyStore", "Fichier de cl\u00E9s"},
+ {"File", "&Fichier"},
+ {"KeyStore", "Fichier &de cl\u00E9s"},
{"Policy.File.", "Fichier de r\u00E8gles :"},
{"Could.not.open.policy.file.policyFile.e.toString.",
"Impossible d''ouvrir le fichier de r\u00E8gles\u00A0: {0}: {1}"},
@@ -84,20 +84,20 @@
{"OK.to.overwrite.existing.file.filename.",
"Remplacer le fichier existant {0} ?"},
{"Cancel", "Annuler"},
- {"CodeBase.", "Base de code :"},
- {"SignedBy.", "Sign\u00E9 par :"},
- {"Add.Principal", "Ajouter un principal"},
- {"Edit.Principal", "Modifier un principal"},
- {"Remove.Principal", "Enlever un principal"},
- {"Principals.", "Principaux :"},
- {".Add.Permission", " Ajouter un droit"},
- {".Edit.Permission", " Modifier un droit"},
- {"Remove.Permission", "Enlever un droit"},
+ {"CodeBase.", "Base de &code :"},
+ {"SignedBy.", "&Sign\u00E9 par :"},
+ {"Add.Principal", "&Ajouter un principal"},
+ {"Edit.Principal", "Modifi&er un principal"},
+ {"Remove.Principal", "Enleve&r un principal"},
+ {"Principals.", "&Principaux :"},
+ {".Add.Permission", " Ajouter un &droit"},
+ {".Edit.Permission", " Mod&ifier un droit"},
+ {"Remove.Permission", "Enlever un dr&oit"},
{"Done", "Termin\u00E9"},
- {"KeyStore.URL.", "URL du fichier de cl\u00E9s :"},
- {"KeyStore.Type.", "Type du fichier de cl\u00E9s :"},
- {"KeyStore.Provider.", "Fournisseur du fichier de cl\u00E9s :"},
- {"KeyStore.Password.URL.", "URL du mot de passe du fichier de cl\u00E9s :"},
+ {"KeyStore.URL.", "&URL du fichier de cl\u00E9s :"},
+ {"KeyStore.Type.", "&Type du fichier de cl\u00E9s :"},
+ {"KeyStore.Provider.", "Four&nisseur du fichier de cl\u00E9s :"},
+ {"KeyStore.Password.URL.", "UR&L du mot de passe du fichier de cl\u00E9s :"},
{"Principals", "Principaux"},
{".Edit.Principal.", " Modifier un principal :"},
{".Add.New.Principal.", " Ajouter un principal :"},
@@ -117,8 +117,8 @@
"R\u00E8gle \u00E9crite dans {0}"},
{"null.filename", "nom de fichier NULL"},
{"Save.changes.", "Enregistrer les modifications ?"},
- {"Yes", "Oui"},
- {"No", "Non"},
+ {"Yes", "&Oui"},
+ {"No", "&Non"},
{"Policy.Entry", "R\u00E8gle"},
{"Save.Changes", "Enregistrer les modifications"},
{"No.Policy.Entry.selected", "Aucune r\u00E8gle s\u00E9lectionn\u00E9e"},
--- a/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_it.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_it.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,16 +44,16 @@
{"Usage.policytool.options.", "Uso: policytool [opzioni]"},
{".file.file.policy.file.location",
" [-file <file>] posizione del file dei criteri"},
- {"New", "Nuovo"},
- {"Open", "Apri"},
- {"Save", "Salva"},
- {"Save.As", "Salva con nome"},
- {"View.Warning.Log", "Visualizza registro avvertenze"},
- {"Exit", "Esci"},
- {"Add.Policy.Entry", "Aggiungi voce dei criteri"},
- {"Edit.Policy.Entry", "Modifica voce dei criteri"},
- {"Remove.Policy.Entry", "Rimuovi voce dei criteri"},
- {"Edit", "Modifica"},
+ {"New", "&Nuovo"},
+ {"Open", "&Apri..."},
+ {"Save", "&Salva"},
+ {"Save.As", "Sal&va con nome..."},
+ {"View.Warning.Log", "Visuali&zza registro avvertenze"},
+ {"Exit", "&Esci"},
+ {"Add.Policy.Entry", "Aggi&ungi voce criteri"},
+ {"Edit.Policy.Entry", "&Modifica voce criteri"},
+ {"Remove.Policy.Entry", "&Rimuovi voce criteri"},
+ {"Edit", "&Modifica"},
{"Retain", "Mantieni"},
{"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
@@ -61,8 +61,8 @@
{"Add.Public.Key.Alias", "Aggiungi alias chiave pubblica"},
{"Remove.Public.Key.Alias", "Rimuovi alias chiave pubblica"},
- {"File", "File"},
- {"KeyStore", "Keystore"},
+ {"File", "&File"},
+ {"KeyStore", "&Keystore"},
{"Policy.File.", "File dei criteri:"},
{"Could.not.open.policy.file.policyFile.e.toString.",
"Impossibile aprire il file di criteri {0}: {1}"},
@@ -84,20 +84,20 @@
{"OK.to.overwrite.existing.file.filename.",
"OK per sovrascrivere il file {0}?"},
{"Cancel", "Annulla"},
- {"CodeBase.", "CodeBase:"},
- {"SignedBy.", "SignedBy:"},
- {"Add.Principal", "Aggiungi principal"},
- {"Edit.Principal", "Modifica principal"},
- {"Remove.Principal", "Rimuovi principal"},
- {"Principals.", "Principal:"},
- {".Add.Permission", " Aggiungi autorizzazione"},
- {".Edit.Permission", " Modifica autorizzazione"},
- {"Remove.Permission", "Rimuovi autorizzazione"},
+ {"CodeBase.", "&CodeBase:"},
+ {"SignedBy.", "&SignedBy:"},
+ {"Add.Principal", "&Aggiungi principal"},
+ {"Edit.Principal", "&Modifica principal"},
+ {"Remove.Principal", "&Rimuovi principal"},
+ {"Principals.", "&Principal:"},
+ {".Add.Permission", " Aggiu&ngi autorizzazione"},
+ {".Edit.Permission", " Mo&difica autorizzazione"},
+ {"Remove.Permission", "R&imuovi autorizzazione"},
{"Done", "Fine"},
- {"KeyStore.URL.", "URL keystore:"},
- {"KeyStore.Type.", "Tipo keystore:"},
- {"KeyStore.Provider.", "Provider keystore:"},
- {"KeyStore.Password.URL.", "URL password keystore:"},
+ {"KeyStore.URL.", "&URL keystore:"},
+ {"KeyStore.Type.", "&Tipo keystore:"},
+ {"KeyStore.Provider.", "Pro&vider keystore:"},
+ {"KeyStore.Password.URL.", "URL pass&word keystore:"},
{"Principals", "Principal:"},
{".Edit.Principal.", " Modifica principal:"},
{".Add.New.Principal.", " Aggiungi nuovo principal:"},
@@ -117,8 +117,8 @@
"I criteri sono stati scritti in {0}"},
{"null.filename", "nome file nullo"},
{"Save.changes.", "Salvare le modifiche?"},
- {"Yes", "S\u00EC"},
- {"No", "No"},
+ {"Yes", "&S\u00EC"},
+ {"No", "&No"},
{"Policy.Entry", "Voce dei criteri"},
{"Save.Changes", "Salva le modifiche"},
{"No.Policy.Entry.selected", "Nessuna voce dei criteri selezionata"},
--- a/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_ja.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_ja.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,16 +44,16 @@
{"Usage.policytool.options.", "\u4F7F\u7528\u65B9\u6CD5: policytool [options]"},
{".file.file.policy.file.location",
" [-file <file>] \u30DD\u30EA\u30B7\u30FC\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u5834\u6240"},
- {"New", "\u65B0\u898F"},
- {"Open", "\u958B\u304F"},
- {"Save", "\u4FDD\u5B58"},
- {"Save.As", "\u5225\u540D\u4FDD\u5B58"},
- {"View.Warning.Log", "\u8B66\u544A\u30ED\u30B0\u306E\u8868\u793A"},
- {"Exit", "\u7D42\u4E86"},
- {"Add.Policy.Entry", "\u30DD\u30EA\u30B7\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u8FFD\u52A0"},
- {"Edit.Policy.Entry", "\u30DD\u30EA\u30B7\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u7DE8\u96C6"},
- {"Remove.Policy.Entry", "\u30DD\u30EA\u30B7\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u524A\u9664"},
- {"Edit", "\u7DE8\u96C6"},
+ {"New", "\u65B0\u898F(&N)"},
+ {"Open", "\u958B\u304F(&O)..."},
+ {"Save", "\u4FDD\u5B58(&S)"},
+ {"Save.As", "\u5225\u540D\u4FDD\u5B58(&A)..."},
+ {"View.Warning.Log", "\u8B66\u544A\u30ED\u30B0\u306E\u8868\u793A(&W)"},
+ {"Exit", "\u7D42\u4E86(&X)"},
+ {"Add.Policy.Entry", "\u30DD\u30EA\u30B7\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u8FFD\u52A0(&A)"},
+ {"Edit.Policy.Entry", "\u30DD\u30EA\u30B7\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u7DE8\u96C6(&E)"},
+ {"Remove.Policy.Entry", "\u30DD\u30EA\u30B7\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u524A\u9664(&R)"},
+ {"Edit", "\u7DE8\u96C6(&E)"},
{"Retain", "\u4FDD\u6301"},
{"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
@@ -61,8 +61,8 @@
{"Add.Public.Key.Alias", "\u516C\u958B\u9375\u306E\u5225\u540D\u306E\u8FFD\u52A0"},
{"Remove.Public.Key.Alias", "\u516C\u958B\u9375\u306E\u5225\u540D\u3092\u524A\u9664"},
- {"File", "\u30D5\u30A1\u30A4\u30EB"},
- {"KeyStore", "\u30AD\u30FC\u30B9\u30C8\u30A2"},
+ {"File", "\u30D5\u30A1\u30A4\u30EB(&F)"},
+ {"KeyStore", "\u30AD\u30FC\u30B9\u30C8\u30A2(&K)"},
{"Policy.File.", "\u30DD\u30EA\u30B7\u30FC\u30FB\u30D5\u30A1\u30A4\u30EB:"},
{"Could.not.open.policy.file.policyFile.e.toString.",
"\u30DD\u30EA\u30B7\u30FC\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F: {0}: {1}"},
@@ -84,20 +84,20 @@
{"OK.to.overwrite.existing.file.filename.",
"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB{0}\u306B\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\u3002"},
{"Cancel", "\u53D6\u6D88"},
- {"CodeBase.", "CodeBase:"},
- {"SignedBy.", "SignedBy:"},
- {"Add.Principal", "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u306E\u8FFD\u52A0"},
- {"Edit.Principal", "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u306E\u7DE8\u96C6"},
- {"Remove.Principal", "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u306E\u524A\u9664"},
- {"Principals.", "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB:"},
- {".Add.Permission", " \u30A2\u30AF\u30BB\u30B9\u6A29\u306E\u8FFD\u52A0"},
- {".Edit.Permission", " \u30A2\u30AF\u30BB\u30B9\u6A29\u306E\u7DE8\u96C6"},
- {"Remove.Permission", "\u30A2\u30AF\u30BB\u30B9\u6A29\u306E\u524A\u9664"},
+ {"CodeBase.", "CodeBase(&C):"},
+ {"SignedBy.", "SignedBy(&S):"},
+ {"Add.Principal", "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u306E\u8FFD\u52A0(&A)"},
+ {"Edit.Principal", "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u306E\u7DE8\u96C6(&E)"},
+ {"Remove.Principal", "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u306E\u524A\u9664(&R)"},
+ {"Principals.", "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB(&P):"},
+ {".Add.Permission", " \u30A2\u30AF\u30BB\u30B9\u6A29\u306E\u8FFD\u52A0(&D)"},
+ {".Edit.Permission", " \u30A2\u30AF\u30BB\u30B9\u6A29\u306E\u7DE8\u96C6(&I)"},
+ {"Remove.Permission", "\u30A2\u30AF\u30BB\u30B9\u6A29\u306E\u524A\u9664(&M)"},
{"Done", "\u5B8C\u4E86"},
- {"KeyStore.URL.", "\u30AD\u30FC\u30B9\u30C8\u30A2URL:"},
- {"KeyStore.Type.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30BF\u30A4\u30D7:"},
- {"KeyStore.Provider.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0:"},
- {"KeyStore.Password.URL.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9URL:"},
+ {"KeyStore.URL.", "\u30AD\u30FC\u30B9\u30C8\u30A2URL(&U):"},
+ {"KeyStore.Type.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30BF\u30A4\u30D7(&T):"},
+ {"KeyStore.Provider.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0(&P):"},
+ {"KeyStore.Password.URL.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9URL(&W):"},
{"Principals", "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB"},
{".Edit.Principal.", " \u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u306E\u7DE8\u96C6:"},
{".Add.New.Principal.", " \u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u306E\u65B0\u898F\u8FFD\u52A0:"},
@@ -117,8 +117,8 @@
"\u30DD\u30EA\u30B7\u30FC\u306E{0}\u3078\u306E\u66F8\u8FBC\u307F\u306B\u6210\u529F\u3057\u307E\u3057\u305F"},
{"null.filename", "\u30D5\u30A1\u30A4\u30EB\u540D\u304Cnull\u3067\u3059"},
{"Save.changes.", "\u5909\u66F4\u3092\u4FDD\u5B58\u3057\u307E\u3059\u304B\u3002"},
- {"Yes", "\u306F\u3044"},
- {"No", "\u3044\u3044\u3048"},
+ {"Yes", "\u306F\u3044(&Y)"},
+ {"No", "\u3044\u3044\u3048(&N)"},
{"Policy.Entry", "\u30DD\u30EA\u30B7\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA"},
{"Save.Changes", "\u5909\u66F4\u3092\u4FDD\u5B58\u3057\u307E\u3059"},
{"No.Policy.Entry.selected", "\u30DD\u30EA\u30B7\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093"},
--- a/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_ko.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_ko.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,16 +44,16 @@
{"Usage.policytool.options.", "\uC0AC\uC6A9\uBC95: policytool [options]"},
{".file.file.policy.file.location",
" [-file <file>] \uC815\uCC45 \uD30C\uC77C \uC704\uCE58"},
- {"New", "\uC0C8\uB85C \uB9CC\uB4E4\uAE30"},
- {"Open", "\uC5F4\uAE30"},
- {"Save", "\uC800\uC7A5"},
- {"Save.As", "\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uC800\uC7A5"},
- {"View.Warning.Log", "\uACBD\uACE0 \uB85C\uADF8 \uBCF4\uAE30"},
- {"Exit", "\uC885\uB8CC"},
- {"Add.Policy.Entry", "\uC815\uCC45 \uD56D\uBAA9 \uCD94\uAC00"},
- {"Edit.Policy.Entry", "\uC815\uCC45 \uD56D\uBAA9 \uD3B8\uC9D1"},
- {"Remove.Policy.Entry", "\uC815\uCC45 \uD56D\uBAA9 \uC81C\uAC70"},
- {"Edit", "\uD3B8\uC9D1"},
+ {"New", "\uC0C8\uB85C \uB9CC\uB4E4\uAE30(&N)"},
+ {"Open", "\uC5F4\uAE30(&O)..."},
+ {"Save", "\uC800\uC7A5(&S)"},
+ {"Save.As", "\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uC800\uC7A5(&A)..."},
+ {"View.Warning.Log", "\uACBD\uACE0 \uB85C\uADF8 \uBCF4\uAE30(&W)"},
+ {"Exit", "\uC885\uB8CC(&X)"},
+ {"Add.Policy.Entry", "\uC815\uCC45 \uD56D\uBAA9 \uCD94\uAC00(&A)"},
+ {"Edit.Policy.Entry", "\uC815\uCC45 \uD56D\uBAA9 \uD3B8\uC9D1(&E)"},
+ {"Remove.Policy.Entry", "\uC815\uCC45 \uD56D\uBAA9 \uC81C\uAC70(&R)"},
+ {"Edit", "\uD3B8\uC9D1(&E)"},
{"Retain", "\uC720\uC9C0"},
{"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
@@ -61,8 +61,8 @@
{"Add.Public.Key.Alias", "\uACF5\uC6A9 \uD0A4 \uBCC4\uCE6D \uCD94\uAC00"},
{"Remove.Public.Key.Alias", "\uACF5\uC6A9 \uD0A4 \uBCC4\uCE6D \uC81C\uAC70"},
- {"File", "\uD30C\uC77C"},
- {"KeyStore", "\uD0A4 \uC800\uC7A5\uC18C"},
+ {"File", "\uD30C\uC77C(&F)"},
+ {"KeyStore", "\uD0A4 \uC800\uC7A5\uC18C(&K)"},
{"Policy.File.", "\uC815\uCC45 \uD30C\uC77C:"},
{"Could.not.open.policy.file.policyFile.e.toString.",
"\uC815\uCC45 \uD30C\uC77C\uC744 \uC5F4 \uC218 \uC5C6\uC74C: {0}: {1}"},
@@ -84,20 +84,20 @@
{"OK.to.overwrite.existing.file.filename.",
"\uAE30\uC874 \uD30C\uC77C {0}\uC744(\uB97C) \uACB9\uCCD0 \uC4F0\uACA0\uC2B5\uB2C8\uAE4C?"},
{"Cancel", "\uCDE8\uC18C"},
- {"CodeBase.", "CodeBase:"},
- {"SignedBy.", "SignedBy:"},
- {"Add.Principal", "\uC8FC\uCCB4 \uCD94\uAC00"},
- {"Edit.Principal", "\uC8FC\uCCB4 \uD3B8\uC9D1"},
- {"Remove.Principal", "\uC8FC\uCCB4 \uC81C\uAC70"},
- {"Principals.", "\uC8FC\uCCB4:"},
- {".Add.Permission", " \uAD8C\uD55C \uCD94\uAC00"},
- {".Edit.Permission", " \uAD8C\uD55C \uD3B8\uC9D1"},
- {"Remove.Permission", "\uAD8C\uD55C \uC81C\uAC70"},
+ {"CodeBase.", "CodeBase(&C)"},
+ {"SignedBy.", "SignedBy(&S):"},
+ {"Add.Principal", "\uC8FC\uCCB4 \uCD94\uAC00(&A)"},
+ {"Edit.Principal", "\uC8FC\uCCB4 \uD3B8\uC9D1(&E)"},
+ {"Remove.Principal", "\uC8FC\uCCB4 \uC81C\uAC70(&R)"},
+ {"Principals.", "\uC8FC\uCCB4(&P):"},
+ {".Add.Permission", " \uAD8C\uD55C \uCD94\uAC00(&D)"},
+ {".Edit.Permission", " \uAD8C\uD55C \uD3B8\uC9D1(&I)"},
+ {"Remove.Permission", "\uAD8C\uD55C \uC81C\uAC70(&M)"},
{"Done", "\uC644\uB8CC"},
- {"KeyStore.URL.", "\uD0A4 \uC800\uC7A5\uC18C URL:"},
- {"KeyStore.Type.", "\uD0A4 \uC800\uC7A5\uC18C \uC720\uD615:"},
- {"KeyStore.Provider.", "\uD0A4 \uC800\uC7A5\uC18C \uC81C\uACF5\uC790:"},
- {"KeyStore.Password.URL.", "\uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638 URL:"},
+ {"KeyStore.URL.", "\uD0A4 \uC800\uC7A5\uC18C URL(&U):"},
+ {"KeyStore.Type.", "\uD0A4 \uC800\uC7A5\uC18C \uC720\uD615(&T):"},
+ {"KeyStore.Provider.", "\uD0A4 \uC800\uC7A5\uC18C \uC81C\uACF5\uC790(&P):"},
+ {"KeyStore.Password.URL.", "\uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638 URL(&W):"},
{"Principals", "\uC8FC\uCCB4"},
{".Edit.Principal.", " \uC8FC\uCCB4 \uD3B8\uC9D1:"},
{".Add.New.Principal.", " \uC0C8 \uC8FC\uCCB4 \uCD94\uAC00:"},
@@ -116,11 +116,11 @@
{"Policy.successfully.written.to.filename",
"{0}\uC5D0 \uC131\uACF5\uC801\uC73C\uB85C \uC815\uCC45\uC744 \uC37C\uC2B5\uB2C8\uB2E4."},
{"null.filename", "\uB110 \uD30C\uC77C \uC774\uB984"},
- {"Save.changes.", "\uBCC0\uACBD \uC0AC\uD56D\uC744 \uC800\uC7A5\uD558\uACA0\uC2B5\uB2C8\uAE4C?"},
- {"Yes", "\uC608"},
- {"No", "\uC544\uB2C8\uC624"},
+ {"Save.changes.", "\uBCC0\uACBD\uC0AC\uD56D\uC744 \uC800\uC7A5\uD558\uACA0\uC2B5\uB2C8\uAE4C?"},
+ {"Yes", "\uC608(&Y)"},
+ {"No", "\uC544\uB2C8\uC624(&N)"},
{"Policy.Entry", "\uC815\uCC45 \uD56D\uBAA9"},
- {"Save.Changes", "\uBCC0\uACBD \uC0AC\uD56D \uC800\uC7A5"},
+ {"Save.Changes", "\uBCC0\uACBD\uC0AC\uD56D \uC800\uC7A5"},
{"No.Policy.Entry.selected", "\uC120\uD0DD\uB41C \uC815\uCC45 \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},
{"Unable.to.open.KeyStore.ex.toString.",
"\uD0A4 \uC800\uC7A5\uC18C\uB97C \uC5F4 \uC218 \uC5C6\uC74C: {0}"},
--- a/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_pt_BR.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_pt_BR.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,16 +44,16 @@
{"Usage.policytool.options.", "Uso: policytool [op\u00E7\u00F5es]"},
{".file.file.policy.file.location",
" [-file <arquivo>] localiza\u00E7\u00E3o do arquivo de pol\u00EDtica"},
- {"New", "Novo"},
- {"Open", "Abrir"},
- {"Save", "Salvar"},
- {"Save.As", "Salvar Como"},
- {"View.Warning.Log", "Exibir Log de Advert\u00EAncias"},
- {"Exit", "Sair"},
- {"Add.Policy.Entry", "Adicionar Entrada de Pol\u00EDtica"},
- {"Edit.Policy.Entry", "Editar Entrada de Pol\u00EDtica"},
- {"Remove.Policy.Entry", "Remover Entrada de Pol\u00EDtica"},
- {"Edit", "Editar"},
+ {"New", "&Novo"},
+ {"Open", "&Abrir..."},
+ {"Save", "&Salvar"},
+ {"Save.As", "Salvar c&omo..."},
+ {"View.Warning.Log", "E&xibir Log de Advert\u00EAncias"},
+ {"Exit", "S&air"},
+ {"Add.Policy.Entry", "&Adicionar Entrada de Pol\u00EDtica"},
+ {"Edit.Policy.Entry", "&Editar Entrada de Pol\u00EDtica"},
+ {"Remove.Policy.Entry", "&Remover Entrada de Pol\u00EDtica"},
+ {"Edit", "&Editar"},
{"Retain", "Reter"},
{"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
@@ -61,8 +61,8 @@
{"Add.Public.Key.Alias", "Adicionar Alias de Chave P\u00FAblica"},
{"Remove.Public.Key.Alias", "Remover Alias de Chave P\u00FAblica"},
- {"File", "Arquivo"},
- {"KeyStore", "KeyStore"},
+ {"File", "&Arquivo"},
+ {"KeyStore", "&KeyStore"},
{"Policy.File.", "Arquivo de Pol\u00EDtica:"},
{"Could.not.open.policy.file.policyFile.e.toString.",
"N\u00E3o foi poss\u00EDvel abrir o arquivo de pol\u00EDtica: {0}: {1}"},
@@ -84,20 +84,20 @@
{"OK.to.overwrite.existing.file.filename.",
"Est\u00E1 correto substituir o arquivo existente {0}?"},
{"Cancel", "Cancelar"},
- {"CodeBase.", "CodeBase:"},
- {"SignedBy.", "SignedBy:"},
- {"Add.Principal", "Adicionar Principal"},
- {"Edit.Principal", "Editar Principal"},
- {"Remove.Principal", "Remover Principal"},
- {"Principals.", "Principais:"},
- {".Add.Permission", " Adicionar Permiss\u00E3o"},
- {".Edit.Permission", " Editar Permiss\u00E3o"},
- {"Remove.Permission", "Remover Permiss\u00E3o"},
+ {"CodeBase.", "&CodeBase:"},
+ {"SignedBy.", "&SignedBy:"},
+ {"Add.Principal", "&Adicionar Principal"},
+ {"Edit.Principal", "&Editar Principal"},
+ {"Remove.Principal", "&Remover Principal"},
+ {"Principals.", "&Principais:"},
+ {".Add.Permission", " A&dicionar Permiss\u00E3o"},
+ {".Edit.Permission", " Ed&itar Permiss\u00E3o"},
+ {"Remove.Permission", "Re&mover Permiss\u00E3o"},
{"Done", "Conclu\u00EDdo"},
- {"KeyStore.URL.", "URL do KeyStore:"},
- {"KeyStore.Type.", "Tipo de KeyStore:"},
- {"KeyStore.Provider.", "Fornecedor de KeyStore:"},
- {"KeyStore.Password.URL.", "URL da Senha do KeyStore:"},
+ {"KeyStore.URL.", "&URL do KeyStore:"},
+ {"KeyStore.Type.", "&Tipo de KeyStore:"},
+ {"KeyStore.Provider.", "&Fornecedor de KeyStore:"},
+ {"KeyStore.Password.URL.", "URL da Senha do Ke&yStore:"},
{"Principals", "Principais"},
{".Edit.Principal.", " Editar Principal:"},
{".Add.New.Principal.", " Adicionar Novo Principal:"},
@@ -117,8 +117,8 @@
"Pol\u00EDtica gravada com \u00EAxito em {0}"},
{"null.filename", "nome de arquivo nulo"},
{"Save.changes.", "Salvar altera\u00E7\u00F5es?"},
- {"Yes", "Sim"},
- {"No", "N\u00E3o"},
+ {"Yes", "&Sim"},
+ {"No", "&N\u00E3o"},
{"Policy.Entry", "Entrada de Pol\u00EDtica"},
{"Save.Changes", "Salvar Altera\u00E7\u00F5es"},
{"No.Policy.Entry.selected", "Nenhuma Entrada de Pol\u00EDtica Selecionada"},
--- a/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_sv.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_sv.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,16 +44,16 @@
{"Usage.policytool.options.", "Syntax: policytool [alternativ]"},
{".file.file.policy.file.location",
" [-file <fil>] policyfilens plats"},
- {"New", "Nytt"},
- {"Open", "\u00D6ppna"},
- {"Save", "Spara"},
- {"Save.As", "Spara som"},
- {"View.Warning.Log", "Visa varningslogg"},
- {"Exit", "Avsluta"},
- {"Add.Policy.Entry", "L\u00E4gg till policypost"},
- {"Edit.Policy.Entry", "Redigera policypost"},
- {"Remove.Policy.Entry", "Ta bort policypost"},
- {"Edit", "Redigera"},
+ {"New", "&Nytt"},
+ {"Open", "&\u00D6ppna..."},
+ {"Save", "S¶"},
+ {"Save.As", "Spara &som..."},
+ {"View.Warning.Log", "Visa varningslo&gg"},
+ {"Exit", "A&vsluta"},
+ {"Add.Policy.Entry", "&L\u00E4gg till policypost"},
+ {"Edit.Policy.Entry", "&Redigera policypost"},
+ {"Remove.Policy.Entry", "&Ta bort policypost"},
+ {"Edit", "&Redigera"},
{"Retain", "Beh\u00E5ll"},
{"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
@@ -61,8 +61,8 @@
{"Add.Public.Key.Alias", "L\u00E4gg till offentligt nyckelalias"},
{"Remove.Public.Key.Alias", "Ta bort offentligt nyckelalias"},
- {"File", "Fil"},
- {"KeyStore", "Nyckellager"},
+ {"File", "&Arkiv"},
+ {"KeyStore", "&KeyStore"},
{"Policy.File.", "Policyfil:"},
{"Could.not.open.policy.file.policyFile.e.toString.",
"Kan inte \u00F6ppna policyfilen: {0}: {1}"},
@@ -84,24 +84,24 @@
{"OK.to.overwrite.existing.file.filename.",
"Ska den befintliga filen {0} skrivas \u00F6ver?"},
{"Cancel", "Avbryt"},
- {"CodeBase.", "Kodbas:"},
- {"SignedBy.", "Signerad av:"},
- {"Add.Principal", "L\u00E4gg till identitetshavare"},
- {"Edit.Principal", "Redigera identitetshavare"},
- {"Remove.Principal", "Ta bort identitetshavare"},
+ {"CodeBase.", "&CodeBase:"},
+ {"SignedBy.", "&SignedBy:"},
+ {"Add.Principal", "&L\u00E4gg till identitetshavare"},
+ {"Edit.Principal", "&Redigera identitetshavare"},
+ {"Remove.Principal", "&Ta bort identitetshavare"},
{"Principals.", "Identitetshavare:"},
- {".Add.Permission", " L\u00E4gg till beh\u00F6righet"},
- {".Edit.Permission", " Redigera beh\u00F6righet"},
- {"Remove.Permission", "Ta bort beh\u00F6righet"},
+ {".Add.Permission", " L&\u00E4gg till beh\u00F6righet"},
+ {".Edit.Permission", " Re&digera beh\u00F6righet"},
+ {"Remove.Permission", "Ta &bort beh\u00F6righet"},
{"Done", "Utf\u00F6rd"},
- {"KeyStore.URL.", "URL f\u00F6r nyckellager:"},
- {"KeyStore.Type.", "Nyckellagertyp:"},
- {"KeyStore.Provider.", "Nyckellagerleverant\u00F6r:"},
- {"KeyStore.Password.URL.", "URL f\u00F6r l\u00F6senord till nyckellager:"},
+ {"KeyStore.URL.", "KeyStore-&URL:"},
+ {"KeyStore.Type.", "KeyStore-&typ:"},
+ {"KeyStore.Provider.", "KeyStore-&leverant\u00F6r:"},
+ {"KeyStore.Password.URL.", "KeyStore-l\u00F6sen&ords-URL:"},
{"Principals", "Identitetshavare"},
{".Edit.Principal.", " Redigera identitetshavare:"},
{".Add.New.Principal.", " L\u00E4gg till ny identitetshavare:"},
- {"Permissions", "Beh\u00F6righet"},
+ {"Permissions", "Beh\u00F6righeter"},
{".Edit.Permission.", " Redigera beh\u00F6righet:"},
{".Add.New.Permission.", " L\u00E4gg till ny beh\u00F6righet:"},
{"Signed.By.", "Signerad av:"},
@@ -117,8 +117,8 @@
"Policy har skrivits till {0}"},
{"null.filename", "nullfilnamn"},
{"Save.changes.", "Vill du spara \u00E4ndringarna?"},
- {"Yes", "Ja"},
- {"No", "Nej"},
+ {"Yes", "&Ja"},
+ {"No", "&Nej"},
{"Policy.Entry", "Policyfel"},
{"Save.Changes", "Spara \u00E4ndringar"},
{"No.Policy.Entry.selected", "Ingen policypost har valts"},
--- a/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_zh_CN.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_zh_CN.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,16 +44,16 @@
{"Usage.policytool.options.", "\u7528\u6CD5: policytool [\u9009\u9879]"},
{".file.file.policy.file.location",
" [-file <file>] \u7B56\u7565\u6587\u4EF6\u4F4D\u7F6E"},
- {"New", "\u65B0\u5EFA"},
- {"Open", "\u6253\u5F00"},
- {"Save", "\u4FDD\u5B58"},
- {"Save.As", "\u53E6\u5B58\u4E3A"},
- {"View.Warning.Log", "\u67E5\u770B\u8B66\u544A\u65E5\u5FD7"},
- {"Exit", "\u9000\u51FA"},
- {"Add.Policy.Entry", "\u6DFB\u52A0\u7B56\u7565\u6761\u76EE"},
- {"Edit.Policy.Entry", "\u7F16\u8F91\u7B56\u7565\u6761\u76EE"},
- {"Remove.Policy.Entry", "\u5220\u9664\u7B56\u7565\u6761\u76EE"},
- {"Edit", "\u7F16\u8F91"},
+ {"New", "\u65B0\u5EFA(&N)"},
+ {"Open", "\u6253\u5F00(&O)..."},
+ {"Save", "\u4FDD\u5B58(&S)"},
+ {"Save.As", "\u53E6\u5B58\u4E3A(&A)..."},
+ {"View.Warning.Log", "\u67E5\u770B\u8B66\u544A\u65E5\u5FD7(&W)"},
+ {"Exit", "\u9000\u51FA(&X)"},
+ {"Add.Policy.Entry", "\u6DFB\u52A0\u7B56\u7565\u6761\u76EE(&A)"},
+ {"Edit.Policy.Entry", "\u7F16\u8F91\u7B56\u7565\u6761\u76EE(&E)"},
+ {"Remove.Policy.Entry", "\u5220\u9664\u7B56\u7565\u6761\u76EE(&R)"},
+ {"Edit", "\u7F16\u8F91(&E)"},
{"Retain", "\u4FDD\u7559"},
{"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
@@ -61,8 +61,8 @@
{"Add.Public.Key.Alias", "\u6DFB\u52A0\u516C\u5171\u5BC6\u94A5\u522B\u540D"},
{"Remove.Public.Key.Alias", "\u5220\u9664\u516C\u5171\u5BC6\u94A5\u522B\u540D"},
- {"File", "\u6587\u4EF6"},
- {"KeyStore", "\u5BC6\u94A5\u5E93"},
+ {"File", "\u6587\u4EF6(&F)"},
+ {"KeyStore", "\u5BC6\u94A5\u5E93(&K)"},
{"Policy.File.", "\u7B56\u7565\u6587\u4EF6:"},
{"Could.not.open.policy.file.policyFile.e.toString.",
"\u65E0\u6CD5\u6253\u5F00\u7B56\u7565\u6587\u4EF6: {0}: {1}"},
@@ -84,20 +84,20 @@
{"OK.to.overwrite.existing.file.filename.",
"\u786E\u8BA4\u8986\u76D6\u73B0\u6709\u7684\u6587\u4EF6{0}?"},
{"Cancel", "\u53D6\u6D88"},
- {"CodeBase.", "CodeBase:"},
- {"SignedBy.", "SignedBy:"},
- {"Add.Principal", "\u6DFB\u52A0\u4E3B\u7528\u6237"},
- {"Edit.Principal", "\u7F16\u8F91\u4E3B\u7528\u6237"},
- {"Remove.Principal", "\u5220\u9664\u4E3B\u7528\u6237"},
- {"Principals.", "\u4E3B\u7528\u6237:"},
- {".Add.Permission", " \u6DFB\u52A0\u6743\u9650"},
- {".Edit.Permission", " \u7F16\u8F91\u6743\u9650"},
- {"Remove.Permission", "\u5220\u9664\u6743\u9650"},
+ {"CodeBase.", "CodeBase(&C):"},
+ {"SignedBy.", "SignedBy(&S):"},
+ {"Add.Principal", "\u6DFB\u52A0\u4E3B\u7528\u6237(&A)"},
+ {"Edit.Principal", "\u7F16\u8F91\u4E3B\u7528\u6237(&E)"},
+ {"Remove.Principal", "\u5220\u9664\u4E3B\u7528\u6237(&R)"},
+ {"Principals.", "\u4E3B\u7528\u6237(&P):"},
+ {".Add.Permission", " \u6DFB\u52A0\u6743\u9650(&D)"},
+ {".Edit.Permission", " \u7F16\u8F91\u6743\u9650(&I)"},
+ {"Remove.Permission", "\u5220\u9664\u6743\u9650(&M)"},
{"Done", "\u5B8C\u6210"},
- {"KeyStore.URL.", "\u5BC6\u94A5\u5E93 URL:"},
- {"KeyStore.Type.", "\u5BC6\u94A5\u5E93\u7C7B\u578B:"},
- {"KeyStore.Provider.", "\u5BC6\u94A5\u5E93\u63D0\u4F9B\u65B9:"},
- {"KeyStore.Password.URL.", "\u5BC6\u94A5\u5E93\u53E3\u4EE4 URL:"},
+ {"KeyStore.URL.", "\u5BC6\u94A5\u5E93 URL(&U):"},
+ {"KeyStore.Type.", "\u5BC6\u94A5\u5E93\u7C7B\u578B(&T):"},
+ {"KeyStore.Provider.", "\u5BC6\u94A5\u5E93\u63D0\u4F9B\u65B9(&P):"},
+ {"KeyStore.Password.URL.", "\u5BC6\u94A5\u5E93\u53E3\u4EE4 URL(&W):"},
{"Principals", "\u4E3B\u7528\u6237"},
{".Edit.Principal.", " \u7F16\u8F91\u4E3B\u7528\u6237:"},
{".Add.New.Principal.", " \u6DFB\u52A0\u65B0\u4E3B\u7528\u6237:"},
@@ -117,8 +117,8 @@
"\u7B56\u7565\u5DF2\u6210\u529F\u5199\u5165\u5230{0}"},
{"null.filename", "\u7A7A\u6587\u4EF6\u540D"},
{"Save.changes.", "\u662F\u5426\u4FDD\u5B58\u6240\u505A\u7684\u66F4\u6539?"},
- {"Yes", "\u662F"},
- {"No", "\u5426"},
+ {"Yes", "\u662F(&Y)"},
+ {"No", "\u5426(&N)"},
{"Policy.Entry", "\u7B56\u7565\u6761\u76EE"},
{"Save.Changes", "\u4FDD\u5B58\u66F4\u6539"},
{"No.Policy.Entry.selected", "\u6CA1\u6709\u9009\u62E9\u7B56\u7565\u6761\u76EE"},
--- a/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_zh_TW.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_zh_TW.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -35,7 +35,7 @@
private static final Object[][] contents = {
{"NEWLINE", "\n"},
{"Warning.A.public.key.for.alias.signers.i.does.not.exist.Make.sure.a.KeyStore.is.properly.configured.",
- "\u8B66\u544A: \u5225\u540D {0} \u7684\u516C\u958B\u91D1\u9470\u4E0D\u5B58\u5728\u3002\u8ACB\u78BA\u5B9A\u91D1\u9470\u5132\u5B58\u5EAB\u914D\u7F6E\u6B63\u78BA\u3002"},
+ "\u8B66\u544A: \u5225\u540D {0} \u7684\u516C\u958B\u91D1\u9470\u4E0D\u5B58\u5728\u3002\u8ACB\u78BA\u5B9A\u91D1\u9470\u5132\u5B58\u5EAB\u8A2D\u5B9A\u6B63\u78BA\u3002"},
{"Warning.Class.not.found.class", "\u8B66\u544A: \u627E\u4E0D\u5230\u985E\u5225 {0}"},
{"Warning.Invalid.argument.s.for.constructor.arg",
"\u8B66\u544A: \u7121\u6548\u7684\u5EFA\u69CB\u5B50\u5F15\u6578: {0}"},
@@ -44,16 +44,16 @@
{"Usage.policytool.options.", "\u7528\u6CD5: policytool [options]"},
{".file.file.policy.file.location",
" [-file <file>] \u539F\u5247\u6A94\u6848\u4F4D\u7F6E"},
- {"New", "\u65B0\u589E"},
- {"Open", "\u958B\u555F"},
- {"Save", "\u5132\u5B58"},
- {"Save.As", "\u53E6\u5B58\u65B0\u6A94"},
- {"View.Warning.Log", "\u6AA2\u8996\u8B66\u544A\u8A18\u9304"},
- {"Exit", "\u7D50\u675F"},
- {"Add.Policy.Entry", "\u65B0\u589E\u539F\u5247\u9805\u76EE"},
- {"Edit.Policy.Entry", "\u7DE8\u8F2F\u539F\u5247\u9805\u76EE"},
- {"Remove.Policy.Entry", "\u79FB\u9664\u539F\u5247\u9805\u76EE"},
- {"Edit", "\u7DE8\u8F2F"},
+ {"New", "\u65B0\u5EFA(&N)"},
+ {"Open", "\u958B\u555F(&O)..."},
+ {"Save", "\u5132\u5B58(&S)"},
+ {"Save.As", "\u53E6\u5B58\u65B0\u6A94(&A)..."},
+ {"View.Warning.Log", "\u6AA2\u8996\u8B66\u544A\u8A18\u9304(&W)"},
+ {"Exit", "\u7D50\u675F(&X)"},
+ {"Add.Policy.Entry", "\u65B0\u589E\u539F\u5247\u9805\u76EE(&A)"},
+ {"Edit.Policy.Entry", "\u7DE8\u8F2F\u539F\u5247\u9805\u76EE(&E)"},
+ {"Remove.Policy.Entry", "\u79FB\u9664\u539F\u5247\u9805\u76EE(&R)"},
+ {"Edit", "\u7DE8\u8F2F(&E)"},
{"Retain", "\u4FDD\u7559"},
{"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
@@ -61,8 +61,8 @@
{"Add.Public.Key.Alias", "\u65B0\u589E\u516C\u958B\u91D1\u9470\u5225\u540D"},
{"Remove.Public.Key.Alias", "\u79FB\u9664\u516C\u958B\u91D1\u9470\u5225\u540D"},
- {"File", "\u6A94\u6848"},
- {"KeyStore", "\u91D1\u9470\u5132\u5B58\u5EAB"},
+ {"File", "\u6A94\u6848(&F)"},
+ {"KeyStore", "\u91D1\u9470\u5132\u5B58\u5EAB(&K)"},
{"Policy.File.", "\u539F\u5247\u6A94\u6848: "},
{"Could.not.open.policy.file.policyFile.e.toString.",
"\u7121\u6CD5\u958B\u555F\u539F\u5247\u6A94\u6848: {0}: {1}"},
@@ -84,20 +84,20 @@
{"OK.to.overwrite.existing.file.filename.",
"\u78BA\u8A8D\u8986\u5BEB\u73FE\u5B58\u7684\u6A94\u6848 {0}\uFF1F"},
{"Cancel", "\u53D6\u6D88"},
- {"CodeBase.", "CodeBase:"},
- {"SignedBy.", "SignedBy:"},
- {"Add.Principal", "\u65B0\u589E Principal"},
- {"Edit.Principal", "\u7DE8\u8F2F Principal"},
- {"Remove.Principal", "\u79FB\u9664 Principal"},
- {"Principals.", "Principal:"},
- {".Add.Permission", " \u65B0\u589E\u6B0A\u9650"},
- {".Edit.Permission", " \u7DE8\u8F2F\u6B0A\u9650"},
- {"Remove.Permission", "\u79FB\u9664\u6B0A\u9650"},
+ {"CodeBase.", "CodeBase(&C):"},
+ {"SignedBy.", "SignedBy(&S):"},
+ {"Add.Principal", "\u65B0\u589E Principal(&A)"},
+ {"Edit.Principal", "\u7DE8\u8F2F Principal(&E)"},
+ {"Remove.Principal", "\u79FB\u9664 Principal(&R)"},
+ {"Principals.", "Principal(&P):"},
+ {".Add.Permission", " \u65B0\u589E\u6B0A\u9650(&D)"},
+ {".Edit.Permission", " \u7DE8\u8F2F\u6B0A\u9650(&I)"},
+ {"Remove.Permission", "\u79FB\u9664\u6B0A\u9650(&M)"},
{"Done", "\u5B8C\u6210"},
- {"KeyStore.URL.", "\u91D1\u9470\u5132\u5B58\u5EAB URL: "},
- {"KeyStore.Type.", "\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B:"},
- {"KeyStore.Provider.", "\u91D1\u9470\u5132\u5B58\u5EAB\u63D0\u4F9B\u8005:"},
- {"KeyStore.Password.URL.", "\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC URL: "},
+ {"KeyStore.URL.", "\u91D1\u9470\u5132\u5B58\u5EAB URL(&U): "},
+ {"KeyStore.Type.", "\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B(&T):"},
+ {"KeyStore.Provider.", "\u91D1\u9470\u5132\u5B58\u5EAB\u63D0\u4F9B\u8005(&P):"},
+ {"KeyStore.Password.URL.", "\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC URL(&W): "},
{"Principals", "Principal"},
{".Edit.Principal.", " \u7DE8\u8F2F Principal: "},
{".Add.New.Principal.", " \u65B0\u589E Principal: "},
@@ -117,8 +117,8 @@
"\u539F\u5247\u6210\u529F\u5BEB\u5165\u81F3 {0}"},
{"null.filename", "\u7A7A\u503C\u6A94\u540D"},
{"Save.changes.", "\u5132\u5B58\u8B8A\u66F4\uFF1F"},
- {"Yes", "\u662F"},
- {"No", "\u5426"},
+ {"Yes", "\u662F(&Y)"},
+ {"No", "\u5426(&N)"},
{"Policy.Entry", "\u539F\u5247\u9805\u76EE"},
{"Save.Changes", "\u5132\u5B58\u8B8A\u66F4"},
{"No.Policy.Entry.selected", "\u6C92\u6709\u9078\u53D6\u539F\u5247\u9805\u76EE"},
--- a/jdk/src/jdk.rmic/share/classes/sun/rmi/rmic/resources/rmic_ja.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.rmic/share/classes/sun/rmi/rmic/resources/rmic_ja.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,6 @@
#
#
-# Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -71,7 +71,7 @@
generator.env.idl=sun.rmi.rmic.iiop.BatchEnvironment
generator.env.xprint=sun.rmi.rmic.iiop.BatchEnvironment
-rmic.usage=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <class names>\n\n<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002\n -keep \u4E2D\u9593\u751F\u6210\u3055\u308C\u305F\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u306A\u3044\n -keepgenerated("-keep"\u3068\u540C\u3058)\n -v1.1 1.1\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u7528\u306E\u30B9\u30BF\u30D6/\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u4F5C\u6210\u3059\u308B\n -vcompat 1.1\u30681.2\u306E\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u3068\n \u4E92\u63DB\u6027\u306E\u3042\u308B\u30B9\u30BF\u30D6/\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u4F5C\u6210\u3059\u308B\n -v1.2 (\u30C7\u30D5\u30A9\u30EB\u30C8)1.2\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u5C02\u7528\u306E\u30B9\u30BF\u30D6\u3092\u4F5C\u6210\u3059\u308B\n -iiop IIOP\u7528\u306E\u30B9\u30BF\u30D6\u3092\u4F5C\u6210\u3059\u308B\u3002\u6307\u5B9A\u3059\u308B\u3068<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u3082\u542B\u307E\u308C\u307E\u3059\u3002\n\n -always \u6700\u65B0\u306E\u5834\u5408\u3067\u3082\u30B9\u30BF\u30D6\u3092\u4F5C\u6210\u3059\u308B\n -alwaysgenerate ("-always"\u3068\u540C\u3058)\n -nolocalstubs \u540C\u3058\u30D7\u30ED\u30BB\u30B9\u306B\u3064\u3044\u3066\u6700\u9069\u5316\u3055\u308C\u305F\u30B9\u30BF\u30D6\u306F\u4F5C\u6210\u3057\u306A\u3044\n\n -idl IDL\u3092\u4F5C\u6210\u3059\u308B\u3002\u6307\u5B9A\u3059\u308B\u3068<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u3082\u542B\u307E\u308C\u307E\u3059\u3002\n\n -noValueMethods valuetypes\u306B\u5BFE\u3057\u3066\u30E1\u30BD\u30C3\u30C9\u3092\u751F\u6210\u3057\u306A\u3044\n -always \u6700\u65B0\u306E\u5834\u5408\u3067\u3082IDL\u3092\u751F\u6210\u3059\u308B\n -alwaysgenerate ("-always"\u3068\u540C\u3058)\n\n -g \u30C7\u30D0\u30C3\u30B0\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n -nowarn \u8B66\u544A\u3092\u751F\u6210\u3057\u306A\u3044\n -nowrite \u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u305F\u30AF\u30E9\u30B9\u3092\u30D5\u30A1\u30A4\u30EB\u30FB\u30B7\u30B9\u30C6\u30E0\u306B\u66F8\u304D\u8FBC\u307E\u306A\u3044\n -verbose \u30B3\u30F3\u30D1\u30A4\u30E9\u306E\u52D5\u4F5C\u306B\u95A2\u3059\u308B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B\n -classpath <path> \u5165\u529B\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B\n -bootclasspath<path> \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u4F4D\u7F6E\u3092\u7F6E\u304D\u63DB\u3048\u308B\n -extdirs<path> \u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u62E1\u5F35\u6A5F\u80FD\u306E\u4F4D\u7F6E\u3092\u7F6E\u304D\u63DB\u3048\u308B\n -d <directory> \u751F\u6210\u3055\u308C\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u683C\u7D0D\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B\n -J<runtime flag> java\u30A4\u30F3\u30BF\u30D7\u30EA\u30BF\u306B\u5F15\u6570\u3092\u6E21\u3059\n
+rmic.usage=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <class names>\n\n<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002\n -keep \u4E2D\u9593\u751F\u6210\u3055\u308C\u305F\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u306A\u3044\n -keepgenerated("-keep"\u3068\u540C\u3058)\n -v1.1 1.1\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u7528\u306E\u30B9\u30BF\u30D6/\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u4F5C\u6210\u3059\u308B(\u975E\u63A8\u5968)\n -vcompat 1.1\u30681.2\u306E\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u3068\n \u4E92\u63DB\u6027\u306E\u3042\u308B\u30B9\u30BF\u30D6/\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u4F5C\u6210\u3059\u308B(\u975E\u63A8\u5968)\n -v1.2 (\u30C7\u30D5\u30A9\u30EB\u30C8)1.2\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u5C02\u7528\u306E\u30B9\u30BF\u30D6\u3092\u4F5C\u6210\u3059\u308B(\u975E\u63A8\u5968)\n -iiop IIOP\u7528\u306E\u30B9\u30BF\u30D6\u3092\u4F5C\u6210\u3059\u308B\u3002\u6307\u5B9A\u3059\u308B\u3068<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u3082\u542B\u307E\u308C\u307E\u3059\u3002\n\n -always \u6700\u65B0\u306E\u5834\u5408\u3067\u3082\u30B9\u30BF\u30D6\u3092\u4F5C\u6210\u3059\u308B\n -alwaysgenerate ("-always"\u3068\u540C\u3058)\n -nolocalstubs \u540C\u3058\u30D7\u30ED\u30BB\u30B9\u306B\u3064\u3044\u3066\u6700\u9069\u5316\u3055\u308C\u305F\u30B9\u30BF\u30D6\u306F\u4F5C\u6210\u3057\u306A\u3044\n\n -idl IDL\u3092\u4F5C\u6210\u3059\u308B\u3002\u6307\u5B9A\u3059\u308B\u3068<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u3082\u542B\u307E\u308C\u307E\u3059\u3002\n\n -noValueMethods valuetypes\u306B\u5BFE\u3057\u3066\u30E1\u30BD\u30C3\u30C9\u3092\u751F\u6210\u3057\u306A\u3044\n -always \u6700\u65B0\u306E\u5834\u5408\u3067\u3082IDL\u3092\u751F\u6210\u3059\u308B\n -alwaysgenerate ("-always"\u3068\u540C\u3058)\n\n -g \u30C7\u30D0\u30C3\u30B0\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n -nowarn \u8B66\u544A\u3092\u751F\u6210\u3057\u306A\u3044\n -nowrite \u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u305F\u30AF\u30E9\u30B9\u3092\u30D5\u30A1\u30A4\u30EB\u30FB\u30B7\u30B9\u30C6\u30E0\u306B\u66F8\u304D\u8FBC\u307E\u306A\u3044\n -verbose \u30B3\u30F3\u30D1\u30A4\u30E9\u306E\u52D5\u4F5C\u306B\u95A2\u3059\u308B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B\n -classpath <path> \u5165\u529B\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n -bootclasspath<path> \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u5834\u6240\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n -d <directory> \u751F\u6210\u3055\u308C\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u683C\u7D0D\u3059\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n -J<runtime flag> java\u30A4\u30F3\u30BF\u30D7\u30EA\u30BF\u306B\u5F15\u6570\u3092\u6E21\u3059\n
#
# Generic Messages
@@ -111,6 +111,7 @@
rmic.must.throw.remoteexception={0}\u306F\u4E0D\u6B63\u306A\u30EA\u30E2\u30FC\u30C8\u30FB\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3002\u30E1\u30BD\u30C3\u30C9{1}\u306Fjava.rmi.RemoteException\u3092\u30B9\u30ED\u30FC\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
rmic.must.only.throw.exception=\u30E1\u30BD\u30C3\u30C9{0}\u306F{1}\u3092\u30B9\u30ED\u30FC\u3059\u308B\u306E\u3067\u4E0D\u6B63\u306A\u30EA\u30E2\u30FC\u30C8\u30FB\u30E1\u30BD\u30C3\u30C9\u5B9F\u88C5\u3067\u3059\u3002\u30EA\u30E2\u30FC\u30C8\u30FB\u30E1\u30BD\u30C3\u30C9\u306E\u5B9F\u88C5\u304C\u30B9\u30ED\u30FC\u3059\u308B\u306E\u306Fjava.lang.Exception\u304B\u305D\u306E\u30B5\u30D6\u30AF\u30E9\u30B9\u306E\u307F\u3067\u3059\u3002
warn.rmic.tie.found=IIOP "tie"\u306F\u30AF\u30E9\u30B9{0}\u306E\u305F\u3081\u306B\u3042\u308A\u307E\u3059\u3002\n {1}\nPortableRemoteObject.exportObject\u3092\u4F7F\u7528\u3059\u308B\u5834\u5408\u306F\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u524A\u9664\u3057\u306A\u3044\u3068\u3001\u30B5\u30FC\u30D0\u30FC\u30FB\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306FJRMP\u3067\u306A\u304FIIOP\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u307E\u3059\u3002
+rmic.jrmp.stubs.deprecated=\u8B66\u544A: JRMP\u306E\u30B9\u30B1\u30EB\u30C8\u30F3\u3068static\u30B9\u30BF\u30D6\u306E\u751F\u6210\u3068\u4F7F\u7528\u306F\n\u975E\u63A8\u5968\u3067\u3059\u3002\u30B9\u30B1\u30EB\u30C8\u30F3\u306F\u4E0D\u8981\u3067\u3001static\u30B9\u30BF\u30D6\u306F\n\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u308B\u30B9\u30BF\u30D6\u306B\u5DEE\u3057\u66FF\u3048\u3089\u308C\u307E\u3057\u305F\u3002\u30E6\u30FC\u30B6\u30FC\u306F\n\u30B9\u30B1\u30EB\u30C8\u30F3\u3068static\u30B9\u30BF\u30D6\u3092\u751F\u6210\u3059\u308B\u305F\u3081\u306B{0}\u3092\u4F7F\u7528\u305B\u305A\u306B\u79FB\u884C\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\njava.rmi.server.UnicastRemoteObject\u306B\u95A2\u3059\u308B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
#
# RMI-IIOP Messages
--- a/jdk/src/jdk.rmic/share/classes/sun/rmi/rmic/resources/rmic_zh_CN.properties Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/src/jdk.rmic/share/classes/sun/rmi/rmic/resources/rmic_zh_CN.properties Thu Jun 16 20:56:45 2016 +0000
@@ -1,6 +1,6 @@
#
#
-# Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -71,7 +71,7 @@
generator.env.idl=sun.rmi.rmic.iiop.BatchEnvironment
generator.env.xprint=sun.rmi.rmic.iiop.BatchEnvironment
-rmic.usage=\u7528\u6CD5: {0} <options> <class names>\n\n\u5176\u4E2D, <options> \u5305\u62EC:\n -keep \u4E0D\u5220\u9664\u4E34\u65F6\u751F\u6210\u7684\u6E90\u6587\u4EF6\n -keepgenerated (\u4E0E "-keep" \u76F8\u540C)\n -v1.1 \u521B\u5EFA 1.1 \u5B58\u6839\u534F\u8BAE\u7248\u672C\u7684\u5B58\u6839/\u9AA8\u67B6\n -vcompat \u521B\u5EFA\u4E0E 1.1 \u548C 1.2 \u5B58\u6839\u534F\u8BAE\u7248\u672C\n \u90FD\u517C\u5BB9\u7684\u5B58\u6839/\u9AA8\u67B6\n -v1.2 (\u9ED8\u8BA4\u503C) \u4EC5\u521B\u5EFA 1.2 \u5B58\u6839\u534F\u8BAE\u7248\u672C\u7684\u5B58\u6839\n -iiop \u521B\u5EFA IIOP \u7684\u5B58\u6839\u3002\u5982\u679C\u63D0\u4F9B, <options> \u8FD8\u5305\u62EC:\n\n -always \u521B\u5EFA\u5B58\u6839 (\u5373\u4F7F\u5F53\u524D\u663E\u793A)\n -alwaysgenerate (\u4E0E "-always" \u76F8\u540C)\n -nolocalstubs \u4E0D\u521B\u5EFA\u5BF9\u76F8\u540C\u8FDB\u7A0B\u4F18\u5316\u7684\u5B58\u6839\n\n -idl \u521B\u5EFA IDL\u3002\u5982\u679C\u63D0\u4F9B, <options> \u8FD8\u5305\u62EC:\n\n -noValueMethods \u4E0D\u4E3A valuetype \u751F\u6210\u65B9\u6CD5\n -always \u521B\u5EFA IDL (\u5373\u4F7F\u5F53\u524D\u663E\u793A)\n -alwaysgenerate (\u4E0E "-always" \u76F8\u540C)\n\n -g \u751F\u6210\u8C03\u8BD5\u4FE1\u606F\n -nowarn \u4E0D\u751F\u6210\u4EFB\u4F55\u8B66\u544A\n -nowrite \u4E0D\u5C06\u7F16\u8BD1\u7684\u7C7B\u5199\u5165\u6587\u4EF6\u7CFB\u7EDF\n -verbose \u8F93\u51FA\u6709\u5173\u7F16\u8BD1\u5668\u6B63\u5728\u6267\u884C\u7684\u64CD\u4F5C\u7684\u6D88\u606F\n -classpath <path> \u6307\u5B9A\u67E5\u627E\u8F93\u5165\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n -bootclasspath <path> \u8986\u76D6\u5F15\u5BFC\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n -extdirs <path> \u8986\u76D6\u6240\u5B89\u88C5\u6269\u5C55\u7684\u4F4D\u7F6E\n -d <directory> \u6307\u5B9A\u653E\u7F6E\u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n -J<runtime flag> \u5C06\u53C2\u6570\u4F20\u9012\u7ED9 java \u89E3\u91CA\u5668\n
+rmic.usage=\u7528\u6CD5: {0} <options> <class names>\n\n\u5176\u4E2D <options> \u5305\u62EC:\n -keep \u4E0D\u5220\u9664\u4E34\u65F6\u751F\u6210\u7684\u6E90\u6587\u4EF6\n -keepgenerated (\u4E0E "-keep" \u76F8\u540C)\n -v1.1 \u521B\u5EFA 1.1 \u5B58\u6839\u534F\u8BAE\u7248\u672C\u7684\u5B58\u6839/\u9AA8\u67B6 (\u5DF2\u8FC7\u65F6)\n -vcompat \u521B\u5EFA\u4E0E 1.1 \u548C 1.2 \u5B58\u6839\u534F\u8BAE\u7248\u672C\n \u90FD\u517C\u5BB9\u7684\u5B58\u6839/\u9AA8\u67B6 (\u5DF2\u8FC7\u65F6)\n -v1.2 (\u9ED8\u8BA4\u503C) \u4EC5\u521B\u5EFA 1.2 \u5B58\u6839\u534F\u8BAE\u7248\u672C\u7684\u5B58\u6839 (\u5DF2\u8FC7\u65F6)\n -iiop \u521B\u5EFA IIOP \u7684\u5B58\u6839\u3002\u5982\u679C\u63D0\u4F9B, <options> \u8FD8\u5305\u62EC:\n\n -always \u521B\u5EFA\u5B58\u6839 (\u5373\u4F7F\u5F53\u524D\u663E\u793A)\n -alwaysgenerate (\u4E0E "-always" \u76F8\u540C)\n -nolocalstubs \u4E0D\u521B\u5EFA\u5BF9\u76F8\u540C\u8FDB\u7A0B\u4F18\u5316\u7684\u5B58\u6839\n\n -idl \u521B\u5EFA IDL\u3002\u5982\u679C\u63D0\u4F9B, <options> \u8FD8\u5305\u62EC:\n\n -noValueMethods \u4E0D\u4E3A\u503C\u7C7B\u578B\u751F\u6210\u65B9\u6CD5\n -always \u521B\u5EFA IDL (\u5373\u4F7F\u5F53\u524D\u663E\u793A)\n -alwaysgenerate (\u4E0E "-always" \u76F8\u540C)\n\n -g \u751F\u6210\u8C03\u8BD5\u4FE1\u606F\n -nowarn \u4E0D\u751F\u6210\u4EFB\u4F55\u8B66\u544A\n -nowrite \u4E0D\u5C06\u7F16\u8BD1\u7684\u7C7B\u5199\u5165\u6587\u4EF6\u7CFB\u7EDF\n -verbose \u8F93\u51FA\u6709\u5173\u7F16\u8BD1\u5668\u6B63\u5728\u6267\u884C\u7684\u64CD\u4F5C\u7684\u6D88\u606F\n -classpath <path> \u6307\u5B9A\u67E5\u627E\u8F93\u5165\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n -bootclasspath <path> \u8986\u76D6\u5F15\u5BFC\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n -d <directory> \u6307\u5B9A\u653E\u7F6E\u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n -J<runtime flag> \u5C06\u53C2\u6570\u4F20\u9012\u7ED9 java \u89E3\u91CA\u5668\n
#
# Generic Messages
@@ -111,6 +111,7 @@
rmic.must.throw.remoteexception={0}\u4E0D\u662F\u6709\u6548\u8FDC\u7A0B\u63A5\u53E3: \u65B9\u6CD5{1}\u5FC5\u987B\u629B\u51FA java.rmi.RemoteException\u3002
rmic.must.only.throw.exception=\u65B9\u6CD5{0}\u4E0D\u662F\u6709\u6548\u7684\u8FDC\u7A0B\u65B9\u6CD5\u5B9E\u73B0, \u56E0\u4E3A\u5B83\u629B\u51FA\u4E86{1}; \u8FDC\u7A0B\u65B9\u6CD5\u5B9E\u73B0\u53EA\u53EF\u80FD\u629B\u51FA java.lang.Exception \u6216\u5176\u5B50\u7C7B\u3002
warn.rmic.tie.found=\u5BF9\u4E8E\u7C7B{0}, \u5B58\u5728 IIOP "tie":\n {1}\n\u5982\u679C\u4F7F\u7528 PortableRemoteObject.exportObject, \u5219\u5E94\u8BE5\u5220\u9664\u6B64\u6587\u4EF6, \u5426\u5219, \u60A8\u7684\u670D\u52A1\u5668\u5BF9\u8C61\u5C06\u4F1A\u5BFC\u51FA\u5230 IIOP \u800C\u975E JRMP\u3002
+rmic.jrmp.stubs.deprecated=\u8B66\u544A: \u4E3A JRMP \u751F\u6210\u548C\u4F7F\u7528\u9AA8\u67B6\u53CA\u9759\u6001\u5B58\u6839\n\u5DF2\u8FC7\u65F6\u3002\u9AA8\u67B6\u4E0D\u518D\u5FC5\u8981, \u800C\u9759\u6001\u5B58\u6839\n\u5DF2\u7531\u52A8\u6001\u751F\u6210\u7684\u5B58\u6839\u53D6\u4EE3\u3002\u5EFA\u8BAE\u7528\u6237\n\u4E0D\u518D\u4F7F\u7528{0}\u6765\u751F\u6210\u9AA8\u67B6\u548C\u9759\u6001\u5B58\u6839\u3002\n\u8BF7\u53C2\u9605 java.rmi.server.UnicastRemoteObject \u7684\u6587\u6863\u3002
#
# RMI-IIOP Messages
--- a/jdk/test/ProblemList.txt Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/ProblemList.txt Thu Jun 16 20:56:45 2016 +0000
@@ -116,9 +116,6 @@
# jdk_beans
-java/beans/XMLDecoder/8028054/TestConstructorFinder.java 8156579 generic-all
-java/beans/XMLDecoder/8028054/TestMethodFinder.java 8156579 generic-all
-
java/beans/Introspector/8132566/OverridePropertyInfoTest.java 8132565 generic-all
java/beans/Introspector/8132566/OverrideUserDefPropertyInfoTest.java 8132565 generic-all
@@ -291,8 +288,6 @@
# jdk_sound
-javax/sound/sampled/DirectAudio/bug6400879.java 8148915 linux-all
-
############################################################################
# jdk_imageio
@@ -304,6 +299,8 @@
# jdk_swing
+sanity/client/SwingSet/src/ButtonDemoScreenshotTest.java 8157338 generic-all
+
############################################################################
# jdk_text
@@ -396,28 +393,6 @@
tools/jlink/plugins/IncludeLocalesPluginTest.java 8158272 generic-all
-tools/jlink/basic/BasicTest.java 8159206 generic-all
-
-tools/jlink/IntegrationTest.java 8159206 generic-all
-
-tools/jlink/JLinkOptimTest.java 8159206 generic-all
-
-tools/jlink/JLinkTest.java 8159206 generic-all
-
-tools/jlink/plugins/CompressorPluginTest.java 8159206 generic-all
-
-tools/jlink/plugins/ExcludeFilesPluginTest.java 8159206 generic-all
-
-tools/jlink/plugins/ExcludePluginTest.java 8159206 generic-all
-
-tools/jlink/plugins/ExcludeVMPluginTest.java 8159206 generic-all
-
-tools/jlink/plugins/OrderResourcesPluginTest.java 8159206 generic-all
-
-tools/jlink/plugins/ResourceFilterTest.java 8159206 generic-all
-
-tools/jlink/plugins/StringSharingPluginTest.java 8159206 generic-all
-
-tools/jmod/JmodTest.java 8159206 generic-all
+tools/jlink/JLinkOptimTest.java 8159264 generic-all
############################################################################
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Dialog/ChildProperties/ChildDialogProperties.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,151 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+ /*
+ @test
+ @bug 8057574
+ @summary Verify that child Dialog does not inherit parent's Properties
+ @run main ChildDialogProperties
+ */
+import java.awt.Color;
+import java.awt.Dialog;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.Label;
+
+public class ChildDialogProperties {
+
+ private Dialog parentDialog;
+ private Dialog dialogChild;
+ private Frame parentFrame;
+ private Dialog frameChildDialog;
+ private Label parentLabel;
+ private Font parentFont;
+ private Label childLabel;
+
+ private static final int WIDTH = 200;
+ private static final int HEIGHT = 200;
+
+ public void testChildPropertiesWithDialogAsParent() {
+
+ parentDialog = new Dialog((Dialog) null, "parent Dialog");
+ parentDialog.setSize(WIDTH, HEIGHT);
+ parentDialog.setLocation(100, 100);
+ parentDialog.setBackground(Color.RED);
+
+ parentLabel = new Label("ParentForegroundAndFont");
+ parentFont = new Font("Courier New", Font.ITALIC, 15);
+ parentDialog.setForeground(Color.BLUE);
+ parentDialog.setFont(parentFont);
+
+ parentDialog.add(parentLabel);
+ parentDialog.setVisible(true);
+
+ dialogChild = new Dialog(parentDialog, "Dialog's child");
+ dialogChild.setSize(WIDTH, HEIGHT);
+ dialogChild.setLocation(WIDTH + 200, 100);
+ childLabel = new Label("ChildForegroundAndFont");
+ dialogChild.add(childLabel);
+
+ dialogChild.setVisible(true);
+
+ if (parentDialog.getBackground() == dialogChild.getBackground()) {
+ dispose();
+ throw new RuntimeException("Child Dialog Should NOT Inherit "
+ + "Parent Dialog's Background Color");
+ }
+
+ if (parentDialog.getForeground() == dialogChild.getForeground()) {
+ dispose();
+ throw new RuntimeException("Child Dialog Should NOT Inherit "
+ + "Parent Dialog's Foreground Color");
+ }
+
+ if (parentDialog.getFont() == dialogChild.getFont()) {
+ dispose();
+ throw new RuntimeException("Child Dialog Should NOT Inherit "
+ + "Parent Dialog's Font Style/Color");
+ }
+
+ }
+
+ public void testChildPropertiesWithFrameAsParent() {
+
+ parentFrame = new Frame("parent Frame");
+ parentFrame.setSize(WIDTH, HEIGHT);
+ parentFrame.setLocation(100, 400);
+ parentFrame.setBackground(Color.BLUE);
+ parentLabel = new Label("ParentForegroundAndFont");
+ parentFont = new Font("Courier New", Font.ITALIC, 15);
+ parentFrame.setForeground(Color.RED);
+ parentFrame.setFont(parentFont);
+ parentFrame.add(parentLabel);
+ parentFrame.setVisible(true);
+
+ frameChildDialog = new Dialog(parentFrame, "Frame's child");
+ frameChildDialog.setSize(WIDTH, HEIGHT);
+ frameChildDialog.setLocation(WIDTH + 200, 400);
+ childLabel = new Label("ChildForegroundAndFont");
+ frameChildDialog.add(childLabel);
+ frameChildDialog.setVisible(true);
+
+ if (parentFrame.getBackground() == frameChildDialog.getBackground()) {
+ dispose();
+ throw new RuntimeException("Child Dialog Should NOT Inherit "
+ + "Parent Frame's Background Color");
+ }
+
+ if (parentFrame.getForeground() == frameChildDialog.getForeground()) {
+ dispose();
+ throw new RuntimeException("Child Dialog Should NOT Inherit "
+ + "Parent Frame's Foreground Color");
+ }
+
+ if (parentFrame.getFont() == frameChildDialog.getFont()) {
+ dispose();
+ throw new RuntimeException("Child Dialog Should NOT Inherit "
+ + "Parent Frame's Font Style/Color");
+ }
+ }
+
+ private void dispose() {
+
+ if (parentDialog != null) {
+ parentDialog.dispose();
+ }
+ if (parentFrame != null) {
+ parentFrame.dispose();
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+
+ ChildDialogProperties obj = new ChildDialogProperties();
+ // TestCase1: When Parent is Dialog, Child is Dialog
+ obj.testChildPropertiesWithDialogAsParent();
+ // TestCase2: When Parent is Frame, chis is Dialog
+ obj.testChildPropertiesWithFrameAsParent();
+ obj.dispose();
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/FileDialog/FileDialogIconTest/FileDialogIconTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 8157163
+ * @summary AWT FileDialog does not inherit icon image from parent Frame
+ * @requires os.family=="windows"
+ * @run main FileDialogIconTest
+ */
+import javax.swing.*;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.lang.reflect.InvocationTargetException;
+
+public class FileDialogIconTest {
+ private static Frame frame;
+ private static Dialog dialog;
+
+ public static void main(final String[] args) throws InterruptedException, InvocationTargetException, AWTException {
+ Robot robot;
+ Point p;
+ try {
+ frame = new Frame();
+ frame.setIconImage(createImage());
+ frame.setVisible(true);
+ robot = new Robot();
+ robot.waitForIdle();
+ robot.delay(200);
+
+ dialog = new FileDialog(frame, "Dialog");
+ dialog.setModal(false);
+ dialog.setVisible(true);
+ robot.waitForIdle();
+ robot.delay(200);
+
+ p = new Point(10, 10);
+ SwingUtilities.convertPointToScreen(p, dialog);
+ Color color = robot.getPixelColor(p.x, p.y);
+ if (!Color.RED.equals(color)) {
+ throw new RuntimeException("Dialog icon was not inherited from " +
+ "owning window. Wrong color: " + color);
+ }
+ } finally {
+ dialog.dispose();
+ frame.dispose();
+ }
+ }
+
+ private static Image createImage() {
+ BufferedImage image = new BufferedImage(64, 64,
+ BufferedImage.TYPE_INT_ARGB);
+ Graphics g = image.getGraphics();
+ g.setColor(Color.RED);
+ g.fillRect(0, 0, image.getWidth(), image.getHeight());
+ g.dispose();
+ return image;
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ @test
+ @bug 8139218
+ @summary Dialog that opens and closes quickly changes focus in original
+ focusowner
+ @run main RollbackFocusFromAnotherWindowTest
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+
+import javax.swing.*;
+
+public class RollbackFocusFromAnotherWindowTest extends JFrame
+ implements KeyListener
+{
+ private static RollbackFocusFromAnotherWindowTest tfs;
+ private static Robot robot;
+
+ public static void main(String[] args) throws Exception {
+ robot = new Robot();
+
+ SwingUtilities.invokeAndWait(() -> {
+ tfs = new RollbackFocusFromAnotherWindowTest();
+ tfs.setVisible(true);
+ });
+
+ robot.waitForIdle();
+ robot.delay(200);
+
+ try {
+ for (int i = 0; i < 10; i++) {
+ robot.keyPress(KeyEvent.VK_A);
+ robot.delay(10);
+ robot.keyRelease(KeyEvent.VK_A);
+ robot.waitForIdle();
+ robot.delay(200);
+ SwingUtilities.invokeAndWait(() -> {
+ String name = tfs.getFocusOwner().getName();
+ System.out.println(name);
+ if (!"Comp0".equals(name)) {
+ throw new RuntimeException(
+ "Focus is not restored correctly");
+ }
+ });
+ }
+ System.out.println("ok");
+ } finally {
+ SwingUtilities.invokeLater(() -> tfs.dispose());
+ }
+ }
+
+ public RollbackFocusFromAnotherWindowTest()
+ {
+ setUndecorated(true);
+ Container c = getContentPane();
+ c.setLayout(new FlowLayout());
+ for (int i = 0; i < 10; i++)
+ {
+ JTextField tf = new JTextField("" + i, 10);
+ tf.setName("Comp" + i);
+ c.add(tf);
+ tf.addKeyListener(this);
+ }
+ pack();
+ }
+
+ @Override
+ public void keyTyped(KeyEvent e) {
+
+ }
+
+ @Override
+ public void keyPressed(KeyEvent e) {
+ Frame frame = new Frame();
+ frame.setVisible(true);
+ try {
+ Thread.sleep(2);
+ } catch (InterruptedException e1) {
+ e1.printStackTrace();
+ }
+ frame.dispose();
+ }
+
+ @Override
+ public void keyReleased(KeyEvent e) {
+
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Gtk/GtkVersionTest/GtkVersionTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 8156121
+ * @summary "Fail forward" fails for GTK3 if no GTK2 available
+ * @modules java.desktop/sun.awt
+ * @requires (os.family == "linux")
+ * @run main GtkVersionTest
+ */
+
+import sun.awt.UNIXToolkit;
+
+import java.awt.*;
+import java.io.*;
+
+public class GtkVersionTest {
+ public static class LoadGtk {
+ public static void main(String[] args) {
+ ((UNIXToolkit)Toolkit.getDefaultToolkit()).loadGTK();
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ test(null, "2");
+ test("2", "2");
+ test("2.2", "2");
+ test("3", "3");
+ }
+
+ private static void test(String version, String expect) throws Exception {
+ System.out.println( "Test " +
+ (version == null ? "no" : " GTK" + version) + " preference.");
+ Process p = Runtime.getRuntime().exec(System.getProperty("java.home") +
+ "/bin/java " +
+ (version == null ? "" : "-Djdk.gtk.version=" + version) +
+ " -Djdk.gtk.verbose=true " +
+ "-XaddExports:java.desktop/sun.awt=ALL-UNNAMED " +
+ "-cp " + System.getProperty("java.class.path", ".") +
+ " GtkVersionTest$LoadGtk");
+ p.waitFor();
+
+ try (BufferedReader br = new BufferedReader(
+ new InputStreamReader(p.getErrorStream()))) {
+ String line;
+ while ((line = br.readLine()) != null) {
+ System.out.println(line);
+ if (line.contains("Looking for GTK" + expect + " library")) {
+ return;
+ } else if (line.contains("Looking for GTK")) {
+ break;
+ }
+ }
+ throw new RuntimeException("Wrong GTK library version: \n" + line);
+ }
+ }
+
+}
--- a/jdk/test/java/awt/PrintJob/PrinterException.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/awt/PrintJob/PrinterException.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,7 @@
*/
/*
* @test
- * @bug 7161283
+ * @bug 7161283 8158520
* @summary Toolkit.getPrintJob throws NPE if no printer available
* @run main PrinterException
*/
@@ -30,9 +30,19 @@
import java.awt.JobAttributes;
import java.awt.PrintJob;
import java.awt.Toolkit;
+import java.awt.Robot;
+import java.awt.event.KeyEvent;
public class PrinterException {
- public static void main(String[] args) {
+
+ public static void main(String[] args) throws Exception {
+ Robot robot = new Robot();
+ Thread t = new Thread (() -> {
+ robot.waitForIdle();
+ robot.delay(2000);
+ robot.keyPress(KeyEvent.VK_ESCAPE);
+ robot.keyRelease(KeyEvent.VK_ESCAPE);
+ });
Toolkit tk = Toolkit.getDefaultToolkit();
PrintJob pj = null;
@@ -40,12 +50,19 @@
JobAttributes ja = new JobAttributes(1,
java.awt.JobAttributes.DefaultSelectionType.ALL,
JobAttributes.DestinationType.FILE, JobAttributes.DialogType.NATIVE,
- "", Integer.MAX_VALUE, 1,
+ "filename.ps", Integer.MAX_VALUE, 1,
JobAttributes.MultipleDocumentHandlingType.SEPARATE_DOCUMENTS_UNCOLLATED_COPIES,
pageRange, "", JobAttributes.SidesType.ONE_SIDED);
+
Frame testFrame = new Frame("print");
- if (tk != null) {
- pj = tk.getPrintJob(testFrame, null, ja, null);
+ try {
+ if (tk != null) {
+ t.start();
+ pj = tk.getPrintJob(testFrame, null, ja, null);
+ }
+ } finally {
+ testFrame.dispose();
}
}
+
}
--- a/jdk/test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -104,6 +104,16 @@
int screenX = (int) splashBounds.getCenterX();
int screenY = (int) splashBounds.getCenterY();
+ if (splashBounds.width != IMAGE_WIDTH) {
+ throw new RuntimeException(
+ "SplashScreen#getBounds has wrong width");
+ }
+
+ if (splashBounds.height != IMAGE_HEIGHT) {
+ throw new RuntimeException(
+ "SplashScreen#getBounds has wrong height");
+ }
+
Robot robot = new Robot();
Color splashScreenColor = robot.getPixelColor(screenX, screenY);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Window/ChildProperties/ChildWindowProperties.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,163 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+ /*
+ @test
+ @bug 8057574
+ @summary Verify that child Window does not inherit parent's Properties
+ @run main ChildWindowProperties
+ */
+import java.awt.Color;
+import java.awt.Dialog;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.Label;
+import java.awt.Panel;
+import java.awt.Window;
+
+public class ChildWindowProperties {
+
+ private Dialog parentDialog;
+ private Window windowChild;
+ private Frame parentFrame;
+ private Window frameChildWindow;
+ private Label parentLabel;
+ private Font parentFont;
+ private Label childLabel;
+
+ private static final int WIDTH = 200;
+ private static final int HEIGHT = 200;
+
+ public void testChildPropertiesWithDialogAsParent() {
+
+ parentDialog = new Dialog((Dialog) null, "parent Dialog");
+ parentDialog.setSize(WIDTH, HEIGHT);
+ parentDialog.setLocation(100, 100);
+ parentDialog.setBackground(Color.RED);
+ parentLabel = new Label("ParentForegroundAndFont");
+ parentFont = new Font("Courier New", Font.ITALIC, 15);
+ parentDialog.setForeground(Color.BLUE);
+ parentDialog.setFont(parentFont);
+
+ parentDialog.add(parentLabel);
+ parentDialog.setVisible(true);
+
+ windowChild = new Window(parentDialog);
+ windowChild.setSize(WIDTH, HEIGHT);
+ windowChild.setLocation(WIDTH + 200, 100);
+ childLabel = new Label("ChildForegroundAndFont");
+ windowChild.add(childLabel);
+ windowChild.setVisible(true);
+
+ if (parentDialog.getBackground() == windowChild.getBackground()) {
+ dispose();
+ throw new RuntimeException("Child Window Should NOT Inherit "
+ + "Parent Dialog's Background Color");
+ }
+ if (parentDialog.getForeground() == windowChild.getForeground()) {
+ dispose();
+ throw new RuntimeException("Child Window Should NOT Inherit "
+ + "Parent Dialog's Foreground Color");
+ }
+ if (parentDialog.getFont() == windowChild.getFont()) {
+ dispose();
+ throw new RuntimeException("Child Window Should NOT Inherit "
+ + "Parent Dialog's Font Color");
+ }
+ }
+
+ public void testChildPropertiesWithFrameAsParent() {
+
+ parentFrame = new Frame("parent Frame");
+ parentFrame.setSize(WIDTH, HEIGHT);
+ parentFrame.setLocation(100, 400);
+ parentFrame.setBackground(Color.BLUE);
+ parentLabel = new Label("ParentForegroundAndFont");
+ parentFont = new Font("Courier New", Font.ITALIC, 15);
+ parentFrame.setForeground(Color.RED);
+ parentFrame.setFont(parentFont);
+ parentFrame.add(parentLabel);
+ parentFrame.setVisible(true);
+
+ frameChildWindow = new Window(parentFrame);
+ frameChildWindow.setSize(WIDTH, HEIGHT);
+ frameChildWindow.setLocation(WIDTH + 200, 400);
+ childLabel = new Label("ChildForegroundAndFont");
+ frameChildWindow.add(childLabel);
+ frameChildWindow.setVisible(true);
+
+ if (parentFrame.getBackground() == frameChildWindow.getBackground()) {
+ dispose();
+ throw new RuntimeException("Child Window Should NOT Inherit "
+ + "Parent Frame's Background Color");
+ }
+ if (parentDialog.getForeground() == windowChild.getForeground()) {
+ dispose();
+ throw new RuntimeException("Child Window Should NOT Inherit "
+ + "Parent Frame's Foreground Color");
+ }
+ if (parentDialog.getFont() == windowChild.getFont()) {
+ dispose();
+ throw new RuntimeException("Child Window Should NOT Inherit "
+ + "Parent Frame's Font Color");
+ }
+ }
+
+ public void testPanelBackground() {
+ Window window = new Frame();
+ window.setBackground(Color.GREEN);
+ Panel panel = new Panel();
+ window.add(panel);
+ window.pack();
+ window.setVisible(true);
+ if (panel.getBackground() != Color.GREEN) {
+ window.dispose();
+ throw new RuntimeException("Panel Background Color Not Valid");
+ }
+ window.dispose();
+ }
+
+ private void dispose() {
+
+ if (parentDialog != null) {
+ parentDialog.dispose();
+ }
+ if (parentFrame != null) {
+ parentFrame.dispose();
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+
+ ChildWindowProperties obj = new ChildWindowProperties();
+ // TestCase1: When Parent is Dialog, Child is Window
+ obj.testChildPropertiesWithDialogAsParent();
+ // TestCase2: When Parent is Frame, chis is Window
+ obj.testChildPropertiesWithFrameAsParent();
+ // TestCase3: Panel Background Test
+ obj.testPanelBackground();
+ obj.dispose();
+ }
+
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Window/WindowJumpingTest/WindowJumpingTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 8080729
+ * @summary Dialogs on multiscreen jump to parent frame on focus gain
+ * @author Dmitry Markov
+ * @library ../../regtesthelpers
+ * @build Util
+ * @run main WindowJumpingTest
+ */
+import java.awt.*;
+
+import test.java.awt.regtesthelpers.Util;
+
+public class WindowJumpingTest {
+ public static void main(String[] args) throws AWTException {
+ Robot r = Util.createRobot();
+
+ GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
+ GraphicsDevice[] graphicsDevices = graphicsEnvironment.getScreenDevices();
+ if (graphicsDevices.length < 2) {
+ System.out.println("This is multi-screen test... Skipping!");
+ return;
+ }
+
+ Frame frame = new Frame("Frame", graphicsDevices[0].getDefaultConfiguration());
+ frame.setSize(400, 300);
+ frame.setVisible(true);
+ Util.waitForIdle(r);
+
+ Dialog dialog = new Dialog(frame, "Dialog", false, graphicsDevices[1].getDefaultConfiguration());
+ dialog.setSize(400, 300);
+ dialog.setVisible(true);
+ Util.waitForIdle(r);
+
+ checkGraphicsDevice(frame, graphicsDevices[0]);
+ checkGraphicsDevice(dialog, graphicsDevices[1]);
+
+ Util.clickOnComp(frame, r);
+ Util.waitForIdle(r);
+
+ checkGraphicsDevice(frame, graphicsDevices[0]);
+ checkGraphicsDevice(dialog, graphicsDevices[1]);
+
+ Util.clickOnComp(dialog, r);
+ Util.waitForIdle(r);
+
+ checkGraphicsDevice(frame, graphicsDevices[0]);
+ checkGraphicsDevice(dialog, graphicsDevices[1]);
+
+ dialog.dispose();
+ frame.dispose();
+ }
+
+ private static void checkGraphicsDevice(Window window, GraphicsDevice graphicsDevice) {
+ GraphicsDevice actualGraphicsDevice = window.getGraphicsConfiguration().getDevice();
+
+ if (!actualGraphicsDevice.equals(graphicsDevice)) {
+ System.err.println("Expected screen: " + graphicsDevice);
+ System.err.println("Actual screen: "+ actualGraphicsDevice);
+ throw new RuntimeException("Test FAILED: " + window + " is displayed on wrong screen");
+ }
+ }
+}
+
--- a/jdk/test/java/awt/Window/WindowsLeak/WindowsLeak.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/awt/Window/WindowsLeak/WindowsLeak.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,42 +23,42 @@
/*
* @test
- * @bug 8013563
+ * @bug 8013563 8028486
* @summary Tests that windows are removed from windows list
+ * @library /javax/swing/regtesthelpers
* @modules java.desktop/sun.awt
+ * java.desktop/sun.java2d
+ * @build Util
* @run main/othervm -Xms32M -Xmx32M WindowsLeak
*/
-import java.awt.*;
-import sun.awt.AppContext;
+import java.awt.Frame;
+import java.awt.Robot;
+import java.awt.Window;
+import java.lang.ref.WeakReference;
+import java.util.Vector;
-import java.lang.ref.WeakReference;
-
-import java.util.Vector;
+import sun.awt.AppContext;
+import sun.java2d.Disposer;
public class WindowsLeak {
- public static void main(String[] args) {
- for (int i = 0; i < 100; i++)
- {
+ private static volatile boolean disposerPhantomComplete;
+
+ public static void main(String[] args) throws Exception {
+ Robot r = new Robot();
+ for (int i = 0; i < 100; i++) {
Frame f = new Frame();
f.pack();
f.dispose();
}
+ r.waitForIdle();
- Vector garbage = new Vector();
- while (true)
- {
- try
- {
- garbage.add(new byte[1000]);
- }
- catch (OutOfMemoryError e)
- {
- break;
- }
+ Disposer.addRecord(new Object(), () -> disposerPhantomComplete = true);
+
+ while (!disposerPhantomComplete) {
+ Util.generateOOME();
}
- garbage = null;
Vector<WeakReference<Window>> windowList =
(Vector<WeakReference<Window>>) AppContext.getAppContext().get(Window.class);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/print/PrinterJob/LandscapeStackOverflow.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6842011
+ * @summary Test if StackOverflowError occurs during printing landscape with
+ * scale and transform.
+ * @run main LandscapeStackOverflow
+ */
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.geom.Path2D;
+import java.awt.print.PageFormat;
+import java.awt.print.Printable;
+import java.awt.print.PrinterException;
+import java.awt.print.PrinterJob;
+import javax.print.attribute.HashPrintRequestAttributeSet;
+import javax.print.attribute.PrintRequestAttributeSet;
+import javax.print.attribute.standard.OrientationRequested;
+
+public class LandscapeStackOverflow {
+
+ public static final void main( String[] parameters ) {
+ PrinterJob printjob = PrinterJob.getPrinterJob();
+ printjob.setJobName( "Test Print Job" );
+
+ PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
+ attributes.add( OrientationRequested.LANDSCAPE );
+
+ boolean print = printjob.printDialog( attributes );
+ if( !print ) return;
+
+ try {
+ printjob.setPrintable( new Painter() );
+ printjob.print( attributes );
+ } catch( PrinterException exception ) {
+ exception.printStackTrace();
+ }
+ }
+}
+
+/**
+ * Paints a 2 inch by 2 inch rectangle in the center of the page.
+ */
+class Painter implements Printable {
+
+ public int print( Graphics graphics, PageFormat format, int index ) {
+ Graphics2D g2d = (Graphics2D)graphics;
+
+ double scalex = g2d.getTransform().getScaleX();
+ double scaley = g2d.getTransform().getScaleY();
+
+ double centerx = ( format.getImageableX() +
+ ( format.getImageableWidth() / 2 ) ) * scalex;
+ double centery = ( format.getImageableY() +
+ ( format.getImageableHeight() / 2 ) ) * scaley;
+
+ // The following 2 lines cause an error when printing in landscape.
+ g2d.scale( 1 / scalex, 1 / scaley );
+ g2d.translate( centerx, centery );
+
+ Path2D.Double path = new Path2D.Double();
+ path.moveTo( -scalex * 72, -scaley * 72 );
+ path.lineTo( -scalex * 72, scaley * 72 );
+ path.lineTo( scalex * 72, scaley * 72 );
+ path.lineTo( scalex * 72, -scaley * 72 );
+ path.closePath();
+
+ g2d.draw( path );
+
+ return index == 0 ? PAGE_EXISTS : NO_SUCH_PAGE;
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/print/PrinterJob/PageDialogMarginValidation.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6509729
+ * @summary Verifies pageDialog margin validation is correct
+ * @run main/manual PageDialogMarginValidation
+ */
+import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+import java.awt.print.PageFormat;
+import java.awt.print.PrinterJob;
+import javax.print.attribute.HashPrintRequestAttributeSet;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JPanel;
+import javax.swing.JTextArea;
+import javax.swing.SwingUtilities;
+
+public class PageDialogMarginValidation {
+
+ private static Thread mainThread;
+ private static boolean testPassed;
+ private static boolean testGeneratedInterrupt;
+ private static PrinterJob printJob;
+
+ public static void pageMarginTest() {
+ PrinterJob pj = PrinterJob.getPrinterJob();
+ HashPrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
+ PageFormat pf;
+ pf = pj.pageDialog(aset);
+ }
+
+ public static void main(String[] args) throws Exception {
+ SwingUtilities.invokeAndWait(() -> {
+ doTest(PageDialogMarginValidation::pageMarginTest);
+ });
+ mainThread = Thread.currentThread();
+ try {
+ Thread.sleep(30000);
+ } catch (InterruptedException e) {
+ if (!testPassed && testGeneratedInterrupt) {
+ throw new RuntimeException(""
+ + "Margin validation is not correct");
+ }
+ }
+ if (!testGeneratedInterrupt) {
+ throw new RuntimeException("user has not executed the test");
+ }
+ }
+
+ public static synchronized void pass() {
+ testPassed = true;
+ testGeneratedInterrupt = true;
+ mainThread.interrupt();
+ }
+
+ public static synchronized void fail() {
+ testPassed = false;
+ testGeneratedInterrupt = true;
+ mainThread.interrupt();
+ }
+
+ private static void doTest(Runnable action) {
+ String description
+ = " Initially, a page dialog will be shown.\n "
+ + " The left, right, bottom, right margin will have value 1.0.\n"
+ + " Modify right margin from 1.0 to 0.0 and press tab.\n"
+ + " Please verify the right margin changes back to 1.0. \n"
+ + " Please do the same for bottom margin.\n"
+ + " If right and bottom margin changes back to 1.0, press PASS else press fail";
+
+ final JDialog dialog = new JDialog();
+ dialog.setTitle("printSelectionTest");
+ JTextArea textArea = new JTextArea(description);
+ textArea.setEditable(false);
+ final JButton testButton = new JButton("Start Test");
+ final JButton passButton = new JButton("PASS");
+ passButton.setEnabled(false);
+ passButton.addActionListener((e) -> {
+ dialog.dispose();
+ pass();
+ });
+ final JButton failButton = new JButton("FAIL");
+ failButton.setEnabled(false);
+ failButton.addActionListener((e) -> {
+ dialog.dispose();
+ fail();
+ });
+ testButton.addActionListener((e) -> {
+ testButton.setEnabled(false);
+ action.run();
+ passButton.setEnabled(true);
+ failButton.setEnabled(true);
+ });
+ JPanel mainPanel = new JPanel(new BorderLayout());
+ mainPanel.add(textArea, BorderLayout.CENTER);
+ JPanel buttonPanel = new JPanel(new FlowLayout());
+ buttonPanel.add(testButton);
+ buttonPanel.add(passButton);
+ buttonPanel.add(failButton);
+ mainPanel.add(buttonPanel, BorderLayout.SOUTH);
+ dialog.add(mainPanel);
+ dialog.pack();
+ dialog.setVisible(true);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/print/PrinterJob/PrintDlgSelectionAttribTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+ /*
+ * @test
+ * @bug 6529030
+ * @summary Verifies if Java Printing: Selection radiobutton gets enabled.
+ * @requires (os.family == "windows")
+ * @run main/manual PrintDlgSelectionAttribTest
+ */
+import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+import java.awt.Graphics;
+import java.awt.print.Printable;
+import java.awt.print.PageFormat;
+import java.awt.print.PrinterException;
+import java.awt.print.PrinterJob;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JPanel;
+import javax.swing.JTextArea;
+import javax.swing.SwingUtilities;
+
+public class PrintDlgSelectionAttribTest {
+
+ private static Thread mainThread;
+ private static boolean testPassed;
+ private static boolean testGeneratedInterrupt;
+ private static PrinterJob printJob;
+
+ public static void print() {
+
+ // Set working printable to print pages
+ printJob.setPrintable(new Printable() {
+ public int print(Graphics graphics, PageFormat pageFormat,
+ int pageIndex) throws PrinterException {
+ return NO_SUCH_PAGE;
+ }
+ });
+
+ // Display Print dialog
+ if (!printJob.printDialog()) {
+ System.out.println("\tPrinting canceled by user");
+ return;
+ }
+
+ try {
+ printJob.print();
+ } catch (PrinterException e) {
+ }
+ }
+
+ public static void printTest() {
+ printJob = PrinterJob.getPrinterJob();
+ System.out.println(" -=- Starting printing #1 -=-");
+ print();
+ System.out.println(" -=- Starting printing #2 -=-");
+ print();
+ }
+
+ public static void main(String[] args) throws Exception {
+ SwingUtilities.invokeAndWait(() -> {
+ doTest(PrintDlgSelectionAttribTest::printTest);
+ });
+ mainThread = Thread.currentThread();
+ try {
+ Thread.sleep(30000);
+ } catch (InterruptedException e) {
+ if (!testPassed && testGeneratedInterrupt) {
+ throw new RuntimeException(""
+ + "Selection radio button is enabled in print dialog");
+ }
+ }
+ if (!testGeneratedInterrupt) {
+ throw new RuntimeException("user has not executed the test");
+ }
+ }
+
+ public static synchronized void pass() {
+ testPassed = true;
+ testGeneratedInterrupt = true;
+ mainThread.interrupt();
+ }
+
+ public static synchronized void fail() {
+ testPassed = false;
+ testGeneratedInterrupt = true;
+ mainThread.interrupt();
+ }
+
+ private static void doTest(Runnable action) {
+ String description
+ = " Visual inspection of print dialog is required.\n"
+ + " Initially, a print dialog will be shown.\n "
+ + " Please verify Selection radio button is disabled.\n"
+ + " Press OK. Then 2nd print dialog will be shown.\n"
+ + " Please verify the Selection radio button is disabled\n"
+ + " in 2nd print dialog. If disabled, press PASS else press fail";
+
+ final JDialog dialog = new JDialog();
+ dialog.setTitle("printSelectionTest");
+ JTextArea textArea = new JTextArea(description);
+ textArea.setEditable(false);
+ final JButton testButton = new JButton("Start Test");
+ final JButton passButton = new JButton("PASS");
+ passButton.setEnabled(false);
+ passButton.addActionListener((e) -> {
+ dialog.dispose();
+ pass();
+ });
+ final JButton failButton = new JButton("FAIL");
+ failButton.setEnabled(false);
+ failButton.addActionListener((e) -> {
+ dialog.dispose();
+ fail();
+ });
+ testButton.addActionListener((e) -> {
+ testButton.setEnabled(false);
+ action.run();
+ passButton.setEnabled(true);
+ failButton.setEnabled(true);
+ });
+ JPanel mainPanel = new JPanel(new BorderLayout());
+ mainPanel.add(textArea, BorderLayout.CENTER);
+ JPanel buttonPanel = new JPanel(new FlowLayout());
+ buttonPanel.add(testButton);
+ buttonPanel.add(passButton);
+ buttonPanel.add(failButton);
+ mainPanel.add(buttonPanel, BorderLayout.SOUTH);
+ dialog.add(mainPanel);
+ dialog.pack();
+ dialog.setVisible(true);
+ }
+}
--- a/jdk/test/java/beans/Introspector/AnonymousClassBeanPropertyTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/beans/Introspector/AnonymousClassBeanPropertyTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -38,8 +38,7 @@
* @author a.stepanov
* @run main AnonymousClassBeanPropertyTest
*/
-
-
+//TODO in final revision each test should have only one checkInfo/checkAlternate
public class AnonymousClassBeanPropertyTest {
private final static String DESCRIPTION = "TEST";
@@ -655,8 +654,6 @@
System.out.println("OK = " + ok);
passed = passed && ok;
- // TODO: please uncomment/update after 8132973 fix
- /*
IGetSet testGetSet_3 = new IGetSet() {
private double x;
@@ -688,10 +685,7 @@
};
ok = checkInfo(testGetSet_3.getClass(), "IGetSet-3", true);
System.out.println("OK = " + ok);
- ok2 = checkAlternativeInfo(testGetSet_3.getClass(), "IGetSet-3");
- System.out.println("OK = " + ok2);
- passed = passed && (ok || ok2);
- */
+ passed = passed && ok;
//----------------------------------------------------------------------
@@ -746,8 +740,6 @@
System.out.println("OK = " + ok);
passed = passed && ok;
- // TODO: please uncomment/update after 8132973 fix
- /*
IGetSetByIndex testGetSetByIndex_3 = new IGetSetByIndex() {
private double x[] = {X, X};
@@ -783,11 +775,7 @@
};
ok = checkInfo(testGetSetByIndex_3.getClass(), "IGetSetByIndex-3", true);
System.out.println("OK = " + ok);
- ok2 = checkAlternativeInfo(
- testGetSetByIndex_3.getClass(), "IGetSetByIndex-3");
- System.out.println("OK = " + ok2);
- passed = passed && (ok || ok2);
- */
+ passed = passed && ok;
//----------------------------------------------------------------------
@@ -855,7 +843,7 @@
passed = passed && ok;
*/
- // TODO: please uncomment/update after 8132973 fix
+ // TODO: please uncomment/update after 8155013 fix
/*
IGetSetBoth testGetSetBoth_3 = new IGetSetBoth() {
@@ -978,8 +966,6 @@
System.out.println("OK = " + ok2);
passed = passed && (ok || ok2);
- // TODO: please uncomment/update after 8132973 fix
- /*
IIs testIs_4 = new IIs() {
private boolean b;
@@ -1010,11 +996,7 @@
};
ok = checkInfo(testIs_4.getClass(), "IIs-4", false);
System.out.println("OK = " + ok);
- ok2 = checkAlternativeInfo(testIs_4.getClass(), "IIs-4");
- System.out.println("OK = " + ok2);
- passed = passed && (ok || ok2);
- */
-
+ passed = passed && ok;
//----------------------------------------------------------------------
--- a/jdk/test/java/beans/Introspector/BeanPropertyTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/beans/Introspector/BeanPropertyTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -38,8 +38,6 @@
* @author a.stepanov
* @run main BeanPropertyTest
*/
-
-
public class BeanPropertyTest {
private final static String DESCRIPTION = "TEST";
@@ -853,8 +851,7 @@
public void removePropertyChangeListener(PropertyChangeListener l) {}
}
- // JDK-8155103
- public static enum E {
+ public enum E {
ONE,
TWO {
@@ -889,7 +886,7 @@
}
- private static enum EB {
+ private enum EB {
TRUE(true), FALSE(false);
@@ -1036,7 +1033,7 @@
G13.class, // S13.class, // TODO: please update after 8154756 fix
// G14.class, S14.class, // TODO: please update after 8132888 fix or
// remove these cases if it is not an issue
- // GS.class, // TODO: please update after 8132973 fix
+ GS.class,
getX.class, setX.class,
Self.class, SelfArr.class
};
@@ -1064,9 +1061,7 @@
// enums
Class<?> enumCases[] = {
-
- // TODO: uncomment/update after 8155103 fix
- //E.class, E.TWO.getClass(), EB.class
+ E.class, E.TWO.getClass(), EB.class
};
int ne = 1;
@@ -1076,7 +1071,7 @@
ne++;
BeanInfo i;
- try { i = Introspector.getBeanInfo(c, Object.class); }
+ try { i = Introspector.getBeanInfo(c, Enum.class); }
catch (IntrospectionException e) { throw new RuntimeException(e); }
boolean ok = checkInfo(i, !ignoreVals(c));
System.out.println(ok ? "OK" : "NOK");
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/beans/Introspector/TestMethodOrderDependence.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.beans.BeanInfo;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.io.Serializable;
+import java.util.AbstractList;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Vector;
+
+/**
+ * @test
+ * @bug 8156043
+ */
+public final class TestMethodOrderDependence {
+
+ public static class Base {
+
+ public Object getI() {
+ return null;
+ }
+
+ public Object getE() {
+ return null;
+ }
+ }
+
+ public static class Super extends Base {
+
+ public Number getI() {
+ return null;
+ }
+ public Comparable<?> getE() {
+ return null;
+ }
+ }
+
+ public static class Sub extends Super {
+
+ public Integer getI() {
+ return null;
+ }
+
+ public void setFoo(Character foo) {
+ }
+
+ public void setFoo(String foo) {
+ }
+
+ public void setFoo(Object[] foo) {
+ }
+
+ public void setFoo(Enum foo) {
+ }
+
+ public void setFoo(Long foo) {
+ }
+
+ public void setFoo(Long[] foo) {
+ }
+
+ public void setFoo(Long foo, int i) {
+ }
+
+ public void setFoo(Object foo) {
+ }
+
+ public void setFoo(AbstractList foo) {
+ }
+
+ public void setFoo(ArrayList foo) {
+ }
+
+ public void setFoo(Integer foo) {
+ }
+
+ public void setFoo(Number foo) {
+ }
+
+ public void setFoo(Comparable<?> foo) {
+ }
+
+ public void setFoo(Serializable foo) {
+ }
+
+ public void setFoo(Vector<?> foo) {
+ }
+
+ public void setFoo(long foo) {
+ }
+
+ public void setFoo(int foo) {
+ }
+
+ public Enum getE() {
+ return null;
+ }
+
+ public void setE(Enum e) {
+ }
+
+ public void setE(Float e) {
+ }
+
+ public void setE(Long e) {
+ }
+ }
+
+ public static void main(final String[] args) throws Exception {
+ final BeanInfo beanInfo = Introspector.getBeanInfo(Sub.class);
+ final PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
+ for (final PropertyDescriptor pd : pds) {
+ System.err.println("pd = " + pd);
+ final Class<?> type = pd.getPropertyType();
+ if (type != Class.class && type != Long[].class
+ && type != Integer.class && type != Enum.class) {
+ throw new RuntimeException(Arrays.toString(pds));
+ }
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/beans/Statement/ClassForName/ClassForName.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.beans.Expression;
+import java.beans.Statement;
+
+/**
+ * @test
+ * @bug 8146313
+ * @run main/othervm ClassForName
+ * @run main/othervm/policy=java.policy -Djava.security.manager ClassForName
+ */
+public final class ClassForName {
+
+ static boolean initialized;
+
+ static final String[] classes = {
+ "A.A", "java.lang.String", "ClassForName$Bean", "sun.awt.SunToolkit"
+ };
+
+ static final ClassLoader appl = new Object() {}.getClass().getClassLoader();
+
+ static final ClassLoader[] loaders = {
+ String.class.getClassLoader(), null, appl
+ };
+
+ static boolean[] inits = {false, true};
+
+ public static void main(final String[] args) throws Exception {
+ // Check that the Class.forName(name, boolean, classloader) is executed
+ // when requested via JavaBeans
+ simpleTest();
+
+ // Check that the Class.forName and Expression returns the same classes
+ for (final String cls : classes) {
+ complexTest1Args(cls);
+ for (final ClassLoader loader : loaders) {
+ for (final boolean init : inits) {
+ complexTest3Args(cls, loader, init);
+ }
+ }
+ }
+ }
+
+ private static void simpleTest() throws Exception {
+ // load the class without initialization
+ new Statement(Class.class, "forName", new Object[]{
+ "ClassForName$Bean", false, Bean.class.getClassLoader()
+ }).execute();
+ if (initialized) {
+ throw new RuntimeException("Should not be initialized");
+ }
+
+ // load the class and initialize it
+ new Statement(Class.class, "forName", new Object[]{
+ "ClassForName$Bean", true, Bean.class.getClassLoader()
+ }).execute();
+ if (!initialized) {
+ throw new RuntimeException("Should be initialized");
+ }
+ }
+
+ private static void complexTest1Args(final String cls) {
+ // load via standard Class.forName();
+ Class<?> classForName = null;
+ try {
+ classForName = Class.forName(cls);
+ } catch (final Exception ignored) {
+ }
+
+ // load via Expression.execute()
+ Class<?> classStatement = null;
+ try {
+ final Expression exp = new Expression(Class.class, "forName",
+ new Object[]{
+ cls
+ });
+ exp.execute();
+ classStatement = (Class<?>) exp.getValue();
+ } catch (final Exception ignored) {
+ }
+ if (classForName != classStatement) {
+ System.err.println(classForName);
+ System.err.println(classStatement);
+ throw new RuntimeException();
+ }
+ }
+
+ private static void complexTest3Args(final String cls,
+ final ClassLoader loader,
+ final boolean init) {
+ // load via standard Class.forName();
+ Class<?> classForName = null;
+ Class<?> excForName = null;
+ try {
+ classForName = Class.forName(cls, init, loader);
+ } catch (final Exception e) {
+ excForName = e.getClass();
+ }
+
+ // load via Expression.execute()
+ Class<?> classStatement = null;
+ Class<?> excStatement = null;
+ try {
+ final Expression exp = new Expression(Class.class, "forName",
+ new Object[]{
+ cls, init, loader
+ });
+ exp.execute();
+ classStatement = (Class<?>) exp.getValue();
+ } catch (final Exception e) {
+ excStatement = e.getClass();
+ }
+ if (classForName != classStatement) {
+ System.err.println(classForName);
+ System.err.println(classStatement);
+ throw new RuntimeException();
+ }
+ if (excForName != excStatement) {
+ System.err.println(excForName);
+ System.err.println(excStatement);
+ throw new RuntimeException();
+ }
+ }
+
+ public static final class Bean {
+
+ static {
+ initialized = true;
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/beans/Statement/ClassForName/java.policy Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,1 @@
+;
\ No newline at end of file
--- a/jdk/test/java/beans/XMLDecoder/8028054/TestConstructorFinder.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/beans/XMLDecoder/8028054/TestConstructorFinder.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -34,8 +34,12 @@
* @summary Tests that cached constructors have synchronized access
* @author Sergey Malenkov
* @modules java.desktop/com.sun.beans.finder
+ * java.activation
+ * java.transaction
+ * java.corba
+ * java.xml.bind
* @compile -XDignore.symbol.file TestConstructorFinder.java
- * @run main TestConstructorFinder
+ * @run main/othervm -addmods java.activation -addmods java.transaction -addmods java.corba -addmods java.xml.bind TestConstructorFinder
*/
public class TestConstructorFinder {
--- a/jdk/test/java/beans/XMLDecoder/8028054/TestMethodFinder.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/beans/XMLDecoder/8028054/TestMethodFinder.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -34,8 +34,12 @@
* @summary Tests that cached methods have synchronized access
* @author Sergey Malenkov
* @modules java.desktop/com.sun.beans.finder
+ * java.activation
+ * java.transaction
+ * java.corba
+ * java.xml.bind
* @compile -XDignore.symbol.file TestMethodFinder.java
- * @run main TestMethodFinder
+ * @run main/othervm -addmods java.activation -addmods java.transaction -addmods java.corba -addmods java.xml.bind TestMethodFinder
*/
public class TestMethodFinder {
--- a/jdk/test/java/lang/Class/GetModuleTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/lang/Class/GetModuleTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -25,6 +25,7 @@
* @test
* @summary Exercise Class#getModule
* @modules java.base/jdk.internal.org.objectweb.asm
+ * java.base/jdk.internal.misc
* java.desktop
* @run testng GetModuleTest
*/
@@ -35,7 +36,7 @@
import jdk.internal.org.objectweb.asm.ClassWriter;
import static jdk.internal.org.objectweb.asm.Opcodes.*;
-import sun.misc.Unsafe;
+import jdk.internal.misc.Unsafe;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
--- a/jdk/test/java/lang/ClassLoader/EndorsedDirs.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/lang/ClassLoader/EndorsedDirs.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,20 +24,23 @@
/*
* @test
* @bug 8060206 8067366
+ * @library /lib/testlibrary
* @summary Endorsed standards and override mechanism is removed
*/
-import java.io.*;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
+import jdk.testlibrary.ProcessTools;
+
+import java.util.stream.Stream;
public class EndorsedDirs {
+ private static String TEST_CLASSES = System.getProperty("test.classes", ".");
+
private static String[] VALUES = new String[] {
null,
"",
"\"\""
};
+
public static void main(String... args) throws Exception {
String value = System.getProperty("java.endorsed.dirs");
System.out.format("java.endorsed.dirs = '%s'%n", value);
@@ -64,59 +67,20 @@
start(2, "-Djava.endorsed.dirs=\"\"");
}
- static ProcessBuilder newProcessBuilder(int testParam, String... args) throws Exception {
- List<String> commands = new ArrayList<>();
- String java = System.getProperty("java.home") + "/bin/java";
- commands.add(java);
- for (String s : args) {
- commands.add(s);
- }
- String cpath = System.getProperty("test.classes", ".");
- commands.add("-cp");
- commands.add(cpath);
- commands.add("EndorsedDirs");
- commands.add(String.valueOf(testParam));
-
- System.out.println("Testing " + commands.stream().collect(Collectors.joining(" ")));
- return new ProcessBuilder(commands);
+ static String[] launchOptions(int testParam, String... args) {
+ return Stream.concat(Stream.of(args),
+ Stream.of("-cp", TEST_CLASSES, "EndorsedDirs",
+ String.valueOf(testParam)))
+ .toArray(String[]::new);
}
static void start(int testParam, String... args) throws Exception {
- start(newProcessBuilder(testParam, args), false);
+ ProcessTools.executeTestJava(launchOptions(testParam, args))
+ .shouldHaveExitValue(0);
}
static void fatalError(int testParam, String... args) throws Exception {
- start(newProcessBuilder(testParam, args), true);
- }
-
- static void start(ProcessBuilder pb, boolean fatalError) throws Exception {
- final Process process = pb.start();
- BufferedReader errorStream = new BufferedReader(
- new InputStreamReader(process.getErrorStream()));
- BufferedReader outStream = new BufferedReader(
- new InputStreamReader(process.getInputStream()));
- String errorLine;
- StringBuilder errors = new StringBuilder();
- String outLines;
- while ((errorLine = errorStream.readLine()) != null) {
- errors.append(errorLine).append("\n");
- }
- while ((outLines = outStream.readLine()) != null) {
- System.out.println(outLines);
- }
- errorLine = errors.toString();
- System.err.println(errorLine);
- process.waitFor(1000, TimeUnit.MILLISECONDS);
- int exitStatus = process.exitValue();
- if (fatalError) {
- if (exitStatus == 0) {
- throw new RuntimeException("Expected fatal error");
- }
- if (!errorLine.contains("Could not create the Java Virtual Machine")) {
- throw new RuntimeException(errorLine);
- }
- } else if (exitStatus != 0) {
- throw new RuntimeException("Failed: " + errorLine);
- }
+ ProcessTools.executeTestJava(launchOptions(testParam, args))
+ .stderrShouldContain("Could not create the Java Virtual Machine");
}
}
--- a/jdk/test/java/lang/ClassLoader/ExtDirs.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/lang/ClassLoader/ExtDirs.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,21 +24,24 @@
/*
* @test
* @bug 8060206 8067366
+ * @library /lib/testlibrary
* @summary Extension mechanism is removed
*/
-import java.io.*;
+import jdk.testlibrary.ProcessTools;
+
import java.lang.Integer;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
+import java.util.stream.Stream;
public class ExtDirs {
+ private static String TEST_CLASSES = System.getProperty("test.classes", ".");
+
private static String[] VALUES = new String[] {
null,
"",
"\"\""
};
+
public static void main(String... args) throws Exception {
String value = System.getProperty("java.ext.dirs");
System.out.format("java.ext.dirs = '%s'%n", value);
@@ -65,59 +68,20 @@
start(2, "-Djava.ext.dirs=\"\"");
}
- static ProcessBuilder newProcessBuilder(int testParam, String... args) throws Exception {
- List<String> commands = new ArrayList<>();
- String java = System.getProperty("java.home") + "/bin/java";
- commands.add(java);
- for (String s : args) {
- commands.add(s);
- }
- String cpath = System.getProperty("test.classes", ".");
- commands.add("-cp");
- commands.add(cpath);
- commands.add("ExtDirs");
- commands.add(String.valueOf(testParam));
-
- System.out.println("Testing " + commands.stream().collect(Collectors.joining(" ")));
- return new ProcessBuilder(commands);
+ static String[] launchOptions(int testParam, String... args) {
+ return Stream.concat(Stream.of(args),
+ Stream.of("-cp", TEST_CLASSES, "ExtDirs",
+ String.valueOf(testParam)))
+ .toArray(String[]::new);
}
static void start(int testParam, String... args) throws Exception {
- start(newProcessBuilder(testParam, args), false);
+ ProcessTools.executeTestJava(launchOptions(testParam, args))
+ .shouldHaveExitValue(0);
}
static void fatalError(int testParam, String... args) throws Exception {
- start(newProcessBuilder(testParam, args), true);
- }
-
- static void start(ProcessBuilder pb, boolean fatalError) throws Exception {
- final Process process = pb.start();
- BufferedReader errorStream = new BufferedReader(
- new InputStreamReader(process.getErrorStream()));
- BufferedReader outStream = new BufferedReader(
- new InputStreamReader(process.getInputStream()));
- String errorLine;
- StringBuilder errors = new StringBuilder();
- String outLines;
- while ((errorLine = errorStream.readLine()) != null) {
- errors.append(errorLine).append("\n");
- }
- while ((outLines = outStream.readLine()) != null) {
- System.out.println(outLines);
- }
- errorLine = errors.toString();
- System.err.println(errorLine);
- process.waitFor(1000, TimeUnit.MILLISECONDS);
- int exitStatus = process.exitValue();
- if (fatalError) {
- if (exitStatus == 0) {
- throw new RuntimeException("Expected fatal error");
- }
- if (!errorLine.contains("Could not create the Java Virtual Machine")) {
- throw new RuntimeException(errorLine);
- }
- } else if (exitStatus != 0) {
- throw new RuntimeException("Failed: " + errorLine);
- }
+ ProcessTools.executeTestJava(launchOptions(testParam, args))
+ .stderrShouldContain("Could not create the Java Virtual Machine");
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/annotation/EqualityTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8071859
+ * @summary Check annotation equality behavior against the invocation handler
+ */
+
+import java.lang.annotation.*;
+import java.lang.reflect.*;
+
+@TestAnnotation
+public class EqualityTest {
+ public static void main(String... args) throws Exception {
+ TestAnnotation annotation =
+ EqualityTest.class.getAnnotation(TestAnnotation.class);
+ InvocationHandler handler = Proxy.getInvocationHandler(annotation);
+
+ testEquality(annotation, handler, false);
+ testEquality(annotation, annotation, true);
+ testEquality(handler, handler, true);
+ }
+
+ private static void testEquality(Object a, Object b, boolean expected) {
+ boolean result = a.equals(b);
+ if (result != b.equals(a) || result != expected)
+ throw new RuntimeException("Unexpected result");
+ }
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface TestAnnotation {
+}
+
--- a/jdk/test/java/lang/instrument/ManyMethodsBenchmarkAgent.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/lang/instrument/ManyMethodsBenchmarkAgent.java Thu Jun 16 20:56:45 2016 +0000
@@ -29,6 +29,7 @@
*
* @modules jdk.compiler
* java.instrument
+ * jdk.zipfs
* @run build ManyMethodsBenchmarkApp ManyMethodsBenchmarkAgent
* @run shell MakeJAR3.sh ManyMethodsBenchmarkAgent 'Can-Retransform-Classes: true'
* @run main/othervm -javaagent:ManyMethodsBenchmarkAgent.jar ManyMethodsBenchmarkApp
--- a/jdk/test/java/lang/instrument/PremainClass/NoPremainAgentTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/lang/instrument/PremainClass/NoPremainAgentTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
* @summary test when the agent's class is missing the premain() function.
* @library /lib/testlibrary
* @modules java.management
+ * java.instrument
* @run build jdk.testlibrary.* DummyMain
* @run shell ../MakeJAR3.sh NoPremainAgent
* @run main/othervm -XX:-CreateCoredumpOnCrash NoPremainAgentTest
--- a/jdk/test/java/lang/instrument/PremainClass/ZeroArgPremainAgentTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/lang/instrument/PremainClass/ZeroArgPremainAgentTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
* @summary test when the agent's class has a zero arg premain() function.
* @library /lib/testlibrary
* @modules java.management
+ * java.instrument
* @run build jdk.testlibrary.* DummyMain
* @run shell ../MakeJAR3.sh ZeroArgPremainAgent
* @run main/othervm -XX:-CreateCoredumpOnCrash ZeroArgPremainAgentTest
--- a/jdk/test/java/lang/instrument/RedefineMethodInBacktrace.sh Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/lang/instrument/RedefineMethodInBacktrace.sh Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
# @author Stefan Karlsson
#
# @modules java.instrument
-# java.management
+# jdk.management
# @run shell MakeJAR3.sh RedefineMethodInBacktraceAgent 'Can-Redefine-Classes: true'
# @run build RedefineMethodInBacktraceTarget RedefineMethodInBacktraceApp
# @run shell RedefineMethodInBacktrace.sh
--- a/jdk/test/java/lang/invoke/PrivateInvokeTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/lang/invoke/PrivateInvokeTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -34,8 +34,6 @@
import java.lang.reflect.*;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import org.junit.*;
import static org.junit.Assert.*;
--- a/jdk/test/java/lang/reflect/Module/AddExportsTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/lang/reflect/Module/AddExportsTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -23,6 +23,7 @@
/**
* @test
+ * @modules java.desktop
* @run main/othervm -XaddExports:java.desktop/sun.awt=java.base AddExportsTest
* @run main/othervm -XaddExports:java.desktop/sun.awt=ALL-UNNAMED AddExportsTest
* @summary Test Module isExported methods with exports changed by -AddExportsTest
--- a/jdk/test/java/lang/reflect/Module/access/AccessTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/lang/reflect/Module/access/AccessTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -35,7 +35,7 @@
/**
* @test
* @library /lib/testlibrary
- * @modules java.compiler
+ * @modules jdk.compiler
* @build AccessTest CompilerUtils jdk.testlibrary.*
* @run testng AccessTest
* @summary Driver for test that checks access to public members in exported
--- a/jdk/test/java/security/Provider/DefaultProviderList.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/security/Provider/DefaultProviderList.java Thu Jun 16 20:56:45 2016 +0000
@@ -23,7 +23,7 @@
/**
* @test
- * @bug 7191662 8157469
+ * @bug 7191662 8157469 8157489
* @summary Ensure non-java.base providers can be found by ServiceLoader
* @author Valerie Peng
*/
@@ -33,6 +33,7 @@
import java.util.Arrays;
import java.util.Iterator;
import java.util.ServiceLoader;
+import java.lang.reflect.Module;
public class DefaultProviderList {
@@ -43,37 +44,54 @@
ServiceLoader<Provider> sl = ServiceLoader.load(Provider.class);
boolean failed = false;
+
+ Module baseMod = Object.class.getModule();
+
+ // Test#1: check that all non-base security providers can be found
+ // through ServiceLoader
for (Provider p : defaultProvs) {
String pName = p.getName();
- // only providers outside java.base are loaded by ServiceLoader
- if (pName.equals("SUN") || pName.equals("SunRsaSign") ||
- pName.equals("SunJCE") || pName.equals("SunJSSE") ||
- pName.equals("Apple")) {
- System.out.println("Skip test for provider " + pName);
- continue;
- }
- String pClassName = p.getClass().getName();
- // Should be able to find each one through ServiceLoader
- Iterator<Provider> provIter = sl.iterator();
- boolean found = false;
- while (provIter.hasNext()) {
- Provider pFromSL = provIter.next();
- if (pFromSL.getClass().getName().equals(pClassName)) {
- found = true;
- break;
+ Class pClass = p.getClass();
+
+ if (pClass.getModule() != baseMod) {
+ String pClassName = pClass.getName();
+ Iterator<Provider> provIter = sl.iterator();
+ boolean found = false;
+ while (provIter.hasNext()) {
+ Provider pFromSL = provIter.next();
+
+ // check for match by class name because PKCS11 provider
+ // will have a different name after being configured.
+ if (pFromSL.getClass().getName().equals(pClassName)) {
+ found = true;
+ System.out.println("SL found provider " + pName);
+ break;
+ }
+ }
+ if (!found) {
+ failed = true;
+ System.out.println("Error: SL cannot find provider " +
+ pName);
}
}
- System.out.println("Found " + p.getName() + " = " + found);
- if (!found) {
+ }
+
+ // Test#2: check that all security providers found through ServiceLoader
+ // are not from base module
+ Iterator<Provider> provIter = sl.iterator();
+ while (provIter.hasNext()) {
+ Provider pFromSL = provIter.next();
+ if (pFromSL.getClass().getModule() == baseMod) {
failed = true;
- System.out.println("Error: no provider class " + pClassName +
- " found");
+ System.out.println("Error: base provider " +
+ pFromSL.getName() + " loaded by SL");
}
}
+
if (!failed) {
System.out.println("Test Passed");
} else {
- throw new Exception("One or more provider not loaded by SL");
+ throw new Exception("One or more tests failed");
}
}
}
--- a/jdk/test/java/time/test/java/util/TestFormatter.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/time/test/java/util/TestFormatter.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
/* @test
* @summary Unit test for j.u.Formatter threeten date/time support
- * @bug 8003680 8012638
+ * @bug 8003680 8043387 8012638
*/
@Test
public class TestFormatter {
@@ -235,10 +235,6 @@
}
}
- private String toZoneIdStr(String expected) {
- return expected.replaceAll("(?:GMT|UTC)(?<off>[+\\-]?[0-9]{2}:[0-9]{2})", "${off}");
- }
-
private String toZoneOffsetStr(String expected) {
return expected.replaceAll("(?:GMT|UTC)(?<off>[+\\-]?[0-9]{2}:[0-9]{2})", "${off}")
.replaceAll("GMT|UTC|UT", "Z");
@@ -247,7 +243,7 @@
private void testZoneId(Locale locale, ChronoZonedDateTime<?> zdt, Calendar cal) {
String fmtStr = "z:[%tz] z:[%1$Tz] Z:[%1$tZ] Z:[%1$TZ]";
printFmtStr(locale, fmtStr);
- String expected = toZoneIdStr(test(fmtStr, locale, null, cal));
+ String expected = test(fmtStr, locale, null, cal);
test(fmtStr, locale, expected, zdt);
// get a new cal with fixed tz
Calendar cal0 = Calendar.getInstance();
@@ -263,7 +259,7 @@
// datetime + zid
fmtStr = "c:[%tc] c:[%1$Tc]";
printFmtStr(locale, fmtStr);
- expected = toZoneIdStr(test(fmtStr, locale, null, cal));
+ expected = test(fmtStr, locale, null, cal);
test(fmtStr, locale, expected, zdt);
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/Locale/Bug8135061.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8135061
+ * @summary Checks that the Locale.lookup executes properly without throwing
+ * any exception for some specific language ranges
+ * @run main Bug8135061
+ */
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+import java.util.Locale.LanguageRange;
+
+public class Bug8135061 {
+
+ public static void main(String[] args) {
+
+ /* lookup should run without throwing any exception and
+ * return null as the language range does not match with the language
+ * tag
+ */
+ List<LanguageRange> ranges = LanguageRange.parse("nv");
+ Collection<Locale> locales = Collections.singleton(Locale.ENGLISH);
+
+ try {
+ Locale match = Locale.lookup(ranges, locales);
+ if (match != null) {
+ throw new RuntimeException("Locale.lookup returned non-null: "
+ + match);
+ }
+ } catch (Exception ex) {
+ throw new RuntimeException("[Locale.lookup failed on language"
+ + " range: " + ranges + " and language tags "
+ + locales + "]", ex);
+ }
+
+ /* lookup should run without throwing any exception and
+ * return "nv" as the matching tag
+ */
+ ranges = LanguageRange.parse("i-navajo");
+ locales = Collections.singleton(new Locale("nv"));
+
+ try {
+ Locale match = Locale.lookup(ranges, locales);
+ if (!match.toLanguageTag().equals("nv")) {
+ throw new RuntimeException("Locale.lookup returned unexpected"
+ + " result: " + match);
+ }
+ } catch (Exception ex) {
+ throw new RuntimeException("[Locale.lookup failed on language"
+ + " range: " + ranges + " and language tags "
+ + locales + "]", ex);
+ }
+
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/PriorityQueue/AddNonComparable.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8066070
+ * @run testng AddNonComparable
+ */
+
+import java.util.PriorityQueue;
+import java.util.Queue;
+import java.util.SortedMap;
+import java.util.SortedSet;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.concurrent.ConcurrentSkipListMap;
+import java.util.concurrent.ConcurrentSkipListSet;
+import java.util.concurrent.PriorityBlockingQueue;
+import java.util.function.BiConsumer;
+import java.util.function.Supplier;
+
+import static org.testng.Assert.*;
+import org.testng.annotations.Test;
+
+public class AddNonComparable {
+
+ static <E> void test(Queue<E> queue, Supplier<E> supplier,
+ BiConsumer<? super Queue<E>, Throwable> checker) {
+ Throwable x = null;
+ try { queue.add(supplier.get()); }
+ catch (Throwable e) { x = e; }
+ checker.accept(queue, x);
+ }
+
+ @Test
+ public void queues() {
+ test(new PriorityQueue<>(), NonComparable::new,
+ (q, e) -> {
+ assertEquals(q.size(), 0);
+ assertTrue(e instanceof ClassCastException);
+ });
+ test(new PriorityQueue<>(), AComparable::new,
+ (q, e) -> {
+ assertEquals(q.size(), 1);
+ assertTrue(e == null);
+ });
+
+ test(new PriorityBlockingQueue<>(), NonComparable::new,
+ (q, e) -> {
+ assertEquals(q.size(), 0);
+ assertTrue(e instanceof ClassCastException);
+ });
+ test(new PriorityBlockingQueue<>(), AComparable::new,
+ (q, e) -> {
+ assertEquals(q.size(), 1);
+ assertTrue(e == null);
+ });
+ }
+
+ static <E> void test(SortedSet<E> set, Supplier<E> supplier,
+ BiConsumer<? super SortedSet<E>, Throwable> checker) {
+ Throwable x = null;
+ try { set.add(supplier.get()); }
+ catch (Throwable e) { x = e; }
+ checker.accept(set, x);
+ }
+
+
+ @Test
+ public void sets() {
+ test(new TreeSet<>(), NonComparable::new,
+ (s, e) -> {
+ assertEquals(s.size(), 0);
+ assertTrue(e instanceof ClassCastException);
+ });
+ test(new TreeSet<>(), AComparable::new,
+ (s, e) -> {
+ assertEquals(s.size(), 1);
+ assertTrue(e == null);
+ });
+
+ test(new ConcurrentSkipListSet<>(), NonComparable::new,
+ (s, e) -> {
+ assertEquals(s.size(), 0);
+ assertTrue(e instanceof ClassCastException);
+ });
+ test(new ConcurrentSkipListSet<>(), AComparable::new,
+ (s, e) -> {
+ assertEquals(s.size(), 1);
+ assertTrue(e == null);
+ });
+ }
+
+ static <K> void test(SortedMap<K,Boolean> map, Supplier<K> supplier,
+ BiConsumer<? super SortedMap<K,Boolean>, Throwable> checker) {
+ Throwable x = null;
+ try { map.put(supplier.get(), Boolean.TRUE); }
+ catch (Throwable e) { x = e; }
+ checker.accept(map, x);
+ }
+
+ @Test
+ public void maps() {
+ test(new TreeMap<>(), NonComparable::new,
+ (m, e) -> {
+ assertEquals(m.size(), 0);
+ assertTrue(e instanceof ClassCastException);
+ });
+ test(new TreeMap<>(), AComparable::new,
+ (m, e) -> {
+ assertEquals(m.size(), 1);
+ assertTrue(e == null);
+ });
+
+ test(new ConcurrentSkipListMap<>(), NonComparable::new,
+ (s, e) -> {
+ assertEquals(s.size(), 0);
+ assertTrue(e instanceof ClassCastException);
+ });
+ test(new ConcurrentSkipListMap<>(), AComparable::new,
+ (s, e) -> {
+ assertEquals(s.size(), 1);
+ assertTrue(e == null);
+ });
+ }
+
+ static class NonComparable { }
+
+ static class AComparable implements Comparable<AComparable> {
+ @Override public int compareTo(AComparable v) { return 0; }
+ }
+
+}
--- a/jdk/test/java/util/Scanner/ScanTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/util/Scanner/ScanTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -24,7 +24,7 @@
/**
* @test
* @bug 4313885 4926319 4927634 5032610 5032622 5049968 5059533 6223711 6277261 6269946 6288823
- * 8072722
+ * 8072722 8072582 8139414
* @summary Basic tests of java.util.Scanner methods
* @key randomness
* @modules jdk.localedata
@@ -70,6 +70,7 @@
ioExceptionTest();
matchTest();
delimiterTest();
+ boundaryDelimTest();
useLocaleTest();
closeTest();
cacheTest();
@@ -504,6 +505,54 @@
report("Single delim test");
}
+ private static void append(StringBuilder sb, char c, int n) {
+ for (int i = 0; i < n; i++) {
+ sb.append(c);
+ }
+ }
+
+ public static void boundaryDelimTest() throws Exception {
+ // 8072582
+ StringBuilder sb = new StringBuilder();
+ append(sb, 'a', 228); sb.append(",");
+ append(sb, 'b', 293); sb.append("#,#");
+ append(sb, 'c', 308); sb.append(",");
+ append(sb, 'd', 188); sb.append("#,#");
+ append(sb, 'e', 2);
+ try (Scanner scanner = new Scanner(sb.toString())) {
+ scanner.useDelimiter("(#,#)|(,)");
+ while(scanner.hasNext()){
+ String next = scanner.next();
+ if(next.contains("#")){
+ System.out.printf("[%s]%n", next);
+ failCount++;
+ }
+ }
+ }
+
+ // 8139414
+ int i = 1019;
+ sb = new StringBuilder();
+ sb.append("--;");
+ for (int j = 0; j < 1019; ++j) {
+ sb.append(j%10);
+ }
+ sb.append("-;-");
+ String text = sb.toString();
+ try (Scanner scanner = new Scanner(text)) {
+ scanner.useDelimiter("-;(-)?");
+ while (scanner.hasNext()) {
+ scanner.next();
+ }
+ } catch (NoSuchElementException e) {
+ System.out.println("Caught NoSuchElementException " + e);
+ e.printStackTrace();
+ failCount++;
+ }
+
+ report("delim at boundary test");
+ }
+
/*
* The hasNextPattern caches a match of a pattern called the regular cache
* The hasNextType caches a match of that type called the type cache
--- a/jdk/test/java/util/concurrent/tck/ConcurrentSkipListSetTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/util/concurrent/tck/ConcurrentSkipListSetTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -226,7 +226,14 @@
q.add(new Object());
q.add(new Object());
shouldThrow();
- } catch (ClassCastException success) {}
+ } catch (ClassCastException success) {
+ assertTrue(q.size() < 2);
+ for (int i = 0, size = q.size(); i < size; i++)
+ assertTrue(q.pollFirst().getClass() == Object.class);
+ assertNull(q.pollFirst());
+ assertTrue(q.isEmpty());
+ assertEquals(0, q.size());
+ }
}
/**
--- a/jdk/test/java/util/concurrent/tck/PriorityBlockingQueueTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/util/concurrent/tck/PriorityBlockingQueueTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -227,9 +227,12 @@
PriorityBlockingQueue q = new PriorityBlockingQueue(1);
try {
q.offer(new Object());
- q.offer(new Object());
shouldThrow();
- } catch (ClassCastException success) {}
+ } catch (ClassCastException success) {
+ assertTrue(q.isEmpty());
+ assertEquals(0, q.size());
+ assertNull(q.poll());
+ }
}
/**
--- a/jdk/test/java/util/concurrent/tck/PriorityQueueTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/java/util/concurrent/tck/PriorityQueueTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -218,9 +218,12 @@
PriorityQueue q = new PriorityQueue(1);
try {
q.offer(new Object());
- q.offer(new Object());
shouldThrow();
- } catch (ClassCastException success) {}
+ } catch (ClassCastException success) {
+ assertTrue(q.isEmpty());
+ assertEquals(0, q.size());
+ assertNull(q.poll());
+ }
}
/**
--- a/jdk/test/javax/net/ssl/SSLSession/SessionCacheSizeTests.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/javax/net/ssl/SSLSession/SessionCacheSizeTests.java Thu Jun 16 20:56:45 2016 +0000
@@ -106,17 +106,21 @@
*/
static int MAX_ACTIVE_CONNECTIONS = 4;
- void doServerSide(int serverPort, int serverConns) throws Exception {
+ static final int FREE_PORT = 0;
+ void doServerSide(int serverConns) throws Exception {
try (SSLServerSocket sslServerSocket =
- (SSLServerSocket) sslssf.createServerSocket(serverPort)) {
+ (SSLServerSocket) sslssf.createServerSocket(FREE_PORT)) {
// timeout to accept a connection
sslServerSocket.setSoTimeout(45000);
// make sure createdPorts++ is atomic
synchronized(serverPorts) {
- serverPorts[createdPorts++] = sslServerSocket.getLocalPort();
+ int serverPort = sslServerSocket.getLocalPort();
+ System.out.printf("server #%d started on port %d%n",
+ createdPorts, serverPort);
+ serverPorts[createdPorts++] = serverPort;
/*
* Signal Client, we're ready for his connect.
@@ -173,11 +177,54 @@
SSLSessionContext sessCtx = sslctx.getClientSessionContext();
sessCtx.setSessionTimeout(0); // no limit
- while (nConnections < (MAX_ACTIVE_CONNECTIONS - 1)) {
- // divide the connections among the available server ports
+ try {
+ while (nConnections < (MAX_ACTIVE_CONNECTIONS - 1)) {
+ // divide the connections among the available server ports
+ int serverPort = serverPorts [nConnections % (serverPorts.length)];
+ System.out.printf("client #%d connects to port %d%n",
+ nConnections, serverPort);
+ sslSockets[nConnections] = (SSLSocket) sslsf.
+ createSocket("localhost",
+ serverPort);
+ InputStream sslIS = sslSockets[nConnections].getInputStream();
+ OutputStream sslOS = sslSockets[nConnections].getOutputStream();
+ sslOS.write(237);
+ sslOS.flush();
+ int read = sslIS.read();
+ SSLSession sess = sslSockets[nConnections].getSession();
+ if (!sessions.contains(sess))
+ sessions.add(sess);
+ nConnections++;
+ }
+ System.out.println("Current cacheSize is set to: " +
+ sessCtx.getSessionCacheSize());
+ System.out.println();
+ System.out.println("Currently cached Sessions......");
+ System.out.println("============================================"
+ + "============================");
+ System.out.println("Session "
+ + " Session-last-accessTime");
+ System.out.println("============================================"
+ + "============================");
+ checkCachedSessions(sessCtx, nConnections);
+ // Change session cache size
+ sessCtx.setSessionCacheSize(2);
+ System.out.println("Session cache size changed to: "
+ + sessCtx.getSessionCacheSize());
+ System.out.println();
+ checkCachedSessions(sessCtx, nConnections);
+
+ // Test the effect of increasing the cache size
+ sessCtx.setSessionCacheSize(3);
+ System.out.println("Session cache size changed to: "
+ + sessCtx.getSessionCacheSize());
+ // create a new session
+ int serverPort = serverPorts [nConnections % (serverPorts.length)];
+ System.out.printf("client #%d connects to port %d%n",
+ nConnections, serverPort);
sslSockets[nConnections] = (SSLSocket) sslsf.
- createSocket("localhost",
- serverPorts [nConnections % (serverPorts.length)]);
+ createSocket("localhost",
+ serverPort);
InputStream sslIS = sslSockets[nConnections].getInputStream();
OutputStream sslOS = sslSockets[nConnections].getOutputStream();
sslOS.write(237);
@@ -187,48 +234,15 @@
if (!sessions.contains(sess))
sessions.add(sess);
nConnections++;
- }
- System.out.println("Current cacheSize is set to: " +
- sessCtx.getSessionCacheSize());
- System.out.println();
- System.out.println("Currently cached Sessions......");
- System.out.println("============================================"
- + "============================");
- System.out.println("Session "
- + " Session-last-accessTime");
- System.out.println("============================================"
- + "============================");
- checkCachedSessions(sessCtx, nConnections);
- // Change session cache size
- sessCtx.setSessionCacheSize(2);
- System.out.println("Session cache size changed to: "
- + sessCtx.getSessionCacheSize());
- System.out.println();
- checkCachedSessions(sessCtx, nConnections);
- // Test the effect of increasing the cache size
- sessCtx.setSessionCacheSize(3);
- System.out.println("Session cache size changed to: "
- + sessCtx.getSessionCacheSize());
- // create a new session
- sslSockets[nConnections] = (SSLSocket) sslsf.
- createSocket("localhost",
- serverPorts [nConnections % (serverPorts.length)]);
- InputStream sslIS = sslSockets[nConnections].getInputStream();
- OutputStream sslOS = sslSockets[nConnections].getOutputStream();
- sslOS.write(237);
- sslOS.flush();
- int read = sslIS.read();
- SSLSession sess = sslSockets[nConnections].getSession();
- if (!sessions.contains(sess))
- sessions.add(sess);
- nConnections++;
-
- // test the number of sessions cached against the cache size
- checkCachedSessions(sessCtx, nConnections);
-
- for (int i = 0; i < nConnections; i++) {
- sslSockets[i].close();
+ // test the number of sessions cached against the cache size
+ checkCachedSessions(sessCtx, nConnections);
+ } finally {
+ for (int i = 0; i < nConnections; i++) {
+ if (sslSockets[i] != null) {
+ sslSockets[i].close();
+ }
+ }
}
System.out.println("Session cache size tests passed");
}
@@ -302,7 +316,9 @@
sslctx = SSLContext.getInstance("TLS");
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
KeyStore ks = KeyStore.getInstance("JKS");
- ks.load(new FileInputStream(keyFilename), passwd.toCharArray());
+ try (FileInputStream fis = new FileInputStream(keyFilename)) {
+ ks.load(fis, passwd.toCharArray());
+ }
kmf.init(ks, passwd.toCharArray());
sslctx.init(kmf.getKeyManagers(), null, null);
sslssf = (SSLServerSocketFactory) sslctx.getServerSocketFactory();
@@ -343,19 +359,21 @@
for (int i = 0; i < serverPorts.length; i++) {
// distribute remaining connections among the
// available ports
- if (i < remainingConns)
- startServer(serverPorts[i], (serverConns + 1), true);
- else
- startServer(serverPorts[i], serverConns, true);
+ if (i < remainingConns) {
+ startServer(serverConns + 1, true);
+ } else {
+ startServer(serverConns, true);
+ }
}
startClient(false);
} else {
startClient(true);
for (int i = 0; i < serverPorts.length; i++) {
- if (i < remainingConns)
- startServer(serverPorts[i], (serverConns + 1), false);
- else
- startServer(serverPorts[i], serverConns, false);
+ if (i < remainingConns) {
+ startServer(serverConns + 1, false);
+ } else {
+ startServer(serverConns, false);
+ }
}
}
} catch (Exception e) {
@@ -420,13 +438,12 @@
// Fall-through: no exception to throw!
}
- void startServer(final int port, final int nConns,
- boolean newThread) throws Exception {
+ void startServer(final int nConns, boolean newThread) throws Exception {
if (newThread) {
serverThread = new Thread() {
public void run() {
try {
- doServerSide(port, nConns);
+ doServerSide(nConns);
} catch (Exception e) {
/*
* Our server thread just died.
@@ -443,7 +460,7 @@
serverThread.start();
} else {
try {
- doServerSide(port, nConns);
+ doServerSide(nConns);
} catch (Exception e) {
serverException = e;
} finally {
--- a/jdk/test/javax/net/ssl/TLSv12/ShortRSAKey512.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/javax/net/ssl/TLSv12/ShortRSAKey512.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,7 @@
*
* SunJSSE does not support dynamic system properties, no way to re-use
* system properties in samevm/agentvm mode.
+ * @key intermittent
* @run main/othervm ShortRSAKey512 PKIX
* @run main/othervm ShortRSAKey512 SunX509
*/
--- a/jdk/test/javax/smartcardio/TerminalFactorySpiTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/javax/smartcardio/TerminalFactorySpiTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -26,7 +26,7 @@
* @bug 8049021
* @summary Test if we can write new provider for smart card
* @compile -addmods java.smartcardio TerminalFactorySpiTest.java
- * @run main/othervm/policy=policy -addmods java.smartcardio TerminalFactorySpiTest
+ * @run main/othervm/java.security.policy=policy -addmods java.smartcardio TerminalFactorySpiTest
*/
import java.security.Provider;
import java.security.Security;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/sound/sampled/Clip/IsRunningHang.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.Clip;
+import javax.sound.sampled.DataLine;
+import javax.sound.sampled.Line;
+import javax.sound.sampled.LineEvent;
+import javax.sound.sampled.LineUnavailableException;
+
+/**
+ * @test
+ * @bug 8156169
+ * @run main/othervm/timeout=300 IsRunningHang
+ */
+public final class IsRunningHang {
+
+ private static CountDownLatch go;
+
+ /**
+ * We will try to use all usually supported formats.
+ */
+ private static final List<AudioFormat> formats = new ArrayList<>();
+
+ private static final AudioFormat.Encoding[] encodings = {
+ AudioFormat.Encoding.ALAW, AudioFormat.Encoding.ULAW,
+ AudioFormat.Encoding.PCM_SIGNED, AudioFormat.Encoding.PCM_UNSIGNED,
+ AudioFormat.Encoding.PCM_FLOAT
+ };
+
+ private static final int[] sampleRates = {8000, 16000, 48000};
+
+ private static final int[] sampleBits = {8, 16, 24, 32, 64};
+
+ private static final int[] channels = {1, 2, 3, 5};
+
+ static {
+ for (final Boolean end : new boolean[]{false, true}) {
+ for (final int sampleSize : sampleBits) {
+ for (final int sampleRate : sampleRates) {
+ for (final int channel : channels) {
+ for (final AudioFormat.Encoding enc : encodings) {
+ int s = ((sampleSize + 7) / 8) * channel;
+ formats.add(new AudioFormat(enc, sampleRate,
+ sampleSize, channel,
+ s, sampleRate, end));
+ }
+ }
+ }
+ }
+ }
+ }
+
+ public static void main(final String[] args) throws Exception {
+ for (final AudioFormat format : formats) {
+ System.out.println("format = " + format);
+ // create a 0.5-second data
+ byte[] soundData = new byte[(int) (format.getFrameRate()
+ * format.getFrameSize()
+ / 2)];
+ try {
+ test(format, soundData);
+ } catch (LineUnavailableException | IllegalArgumentException ignored) {
+ // the test is not applicable
+ }
+ }
+ }
+
+ private static void test(final AudioFormat format, final byte[] data)
+ throws Exception {
+ final Line.Info info = new DataLine.Info(Clip.class, format);
+ final Clip clip = (Clip) AudioSystem.getLine(info);
+
+ go = new CountDownLatch(1);
+ clip.addLineListener(event -> {
+ if (event.getType().equals(LineEvent.Type.START)) {
+ go.countDown();
+ }
+ });
+
+ clip.open(format, data, 0, data.length);
+ clip.start();
+ go.await();
+ while (clip.isRunning()) {
+ // This loop should not hang
+ }
+ while (clip.isActive()) {
+ // This loop should not hang
+ }
+ clip.close();
+ }
+}
--- a/jdk/test/javax/sound/sampled/DirectAudio/bug6400879.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/javax/sound/sampled/DirectAudio/bug6400879.java Thu Jun 16 20:56:45 2016 +0000
@@ -26,10 +26,11 @@
* @bug 6400879 7100140
* @summary Tests that Start/Stop sequence doesn't hang
* @author Alexey Menkov
- * @run main bug6400879
- * @key intermittent
+ * @run main/othervm bug6400879
*/
+import java.util.concurrent.TimeUnit;
+
import javax.sound.sampled.*;
public class bug6400879 extends Thread {
@@ -50,16 +51,16 @@
long prevTime = currentTimeMillis();
while (pThis.isAlive()) {
if (pThis.loopCounter == prevLoop) {
- if (currentTimeMillis() - prevTime > BLOCK_TIMEOUT) {
- // block!
- log("Test FAILED.");
- throw new RuntimeException("Test FAILED: thread has been blocked!");
+ long delay = currentTimeMillis() - prevTime;
+ if (delay > BLOCK_TIMEOUT) {
+ // blocked?
+ log("The test is slow, delay = " + delay);
}
} else {
prevLoop = pThis.loopCounter;
prevTime = currentTimeMillis();
}
- delay(500); // sleep for 0.5 sec
+ delay(1000); // sleep for 1 sec
}
log("Test sucessfully passed.");
}
@@ -111,8 +112,7 @@
// helper routines
static long startTime = currentTimeMillis();
static long currentTimeMillis() {
- //return System.nanoTime() / 1000000L;
- return System.currentTimeMillis();
+ return TimeUnit.NANOSECONDS.toMillis(System.nanoTime());
}
static void log(String s) {
long time = currentTimeMillis() - startTime;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/InputVerifier/VerifyTarget/VerifyTargetTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ @test
+ @bug 8154431
+ @summary Allow source and target based validation for the focus transfer
+ between two JComponents.
+ @run main VerifyTargetTest
+*/
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+
+public class VerifyTargetTest extends InputVerifier implements FocusListener {
+ static boolean success;
+ private static JFrame frame;
+ private static JTextField field2;
+
+ public static void main(String[] args) throws Exception {
+ SwingUtilities.invokeAndWait(() -> setup());
+ try {
+ Robot robot = new Robot();
+ robot.waitForIdle();
+ robot.delay(200);
+ KeyboardFocusManager.getCurrentKeyboardFocusManager()
+ .focusNextComponent();
+ robot.waitForIdle();
+ robot.delay(200);
+ if (!success) {
+ throw new RuntimeException("Failed");
+ } else {
+ System.out.println("ok");
+ }
+ } finally {
+ SwingUtilities.invokeLater(() -> frame.dispose());
+ }
+ }
+
+ static void setup() {
+ frame = new JFrame();
+ JTextField field1 = new JTextField("Input 1");
+ VerifyTargetTest test = new VerifyTargetTest();
+ field1.setInputVerifier(test);
+ field1.addFocusListener(test);
+ frame.getContentPane().add(field1, BorderLayout.NORTH);
+ field2 = new JTextField("Input 2");
+ frame.getContentPane().add(field2, BorderLayout.SOUTH);
+ frame.pack();
+ frame.setVisible(true);
+ }
+
+ @Override
+ public boolean verify(JComponent input) {
+ return true;
+ }
+
+ @Override
+ public boolean verifyTarget(JComponent input) {
+ success = input == field2;
+ return false;
+ }
+
+ @Override
+ public void focusGained(FocusEvent e) {}
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ success = false;
+ }
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JComboBox/8136998/bug8136998.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.awt.AWTException;
+import java.awt.Dimension;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.Robot;
+import javax.swing.Box;
+import javax.swing.BoxLayout;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+import javax.swing.UIManager.LookAndFeelInfo;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.WindowConstants;
+
+/* @test
+ * @bug 8136998
+ * @summary Checks that JComboBox does not prevent mouse-wheel scrolling JScrollPane.
+ * @library ../../regtesthelpers
+ * @build Util
+ * @run main bug8136998
+ * @author Alexey Ivanov
+ */
+public class bug8136998 {
+
+ private static final String[] ITEMS = new String[] {
+ "A", "B", "C", "D", "E", "F"
+ };
+
+ private final Robot robot;
+
+ private JFrame frame;
+ private JComboBox comboBox;
+ private JScrollPane scrollPane;
+
+ public static void main(String[] args) throws Exception {
+ iterateLookAndFeels(new bug8136998());
+ }
+
+ protected static void iterateLookAndFeels(final bug8136998 test) throws Exception {
+ LookAndFeelInfo[] lafInfo = UIManager.getInstalledLookAndFeels();
+ for (LookAndFeelInfo info : lafInfo) {
+ try {
+ UIManager.setLookAndFeel(info.getClassName());
+ System.out.println("Look and Feel: " + info.getClassName());
+ test.runTest();
+ } catch (UnsupportedLookAndFeelException e) {
+ System.out.println("Skipping unsupported LaF: " + info);
+ }
+ }
+ }
+
+ public bug8136998() throws AWTException {
+ robot = new Robot();
+ robot.setAutoDelay(200);
+ }
+
+ private void setupUI() {
+ frame = new JFrame();
+ frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
+
+ comboBox = new JComboBox<>(ITEMS);
+
+ JPanel scrollable = new JPanel();
+ scrollable.setLayout(new BoxLayout(scrollable, BoxLayout.Y_AXIS));
+
+ scrollable.add(Box.createVerticalStrut(200));
+ scrollable.add(comboBox);
+ scrollable.add(Box.createVerticalStrut(200));
+
+ scrollPane = new JScrollPane(scrollable);
+
+ frame.add(scrollPane);
+
+ frame.setSize(100, 200);
+ frame.setVisible(true);
+ }
+
+ public void runTest() throws Exception {
+ try {
+ SwingUtilities.invokeAndWait(this::setupUI);
+
+ robot.waitForIdle();
+
+ SwingUtilities.invokeAndWait(() ->
+ scrollPane.getViewport().scrollRectToVisible(comboBox.getBounds())
+ );
+ robot.waitForIdle();
+
+ // Move mouse pointer to the center of the combo box
+ Point p = comboBox.getLocationOnScreen();
+ Dimension d = comboBox.getSize();
+ robot.mouseMove(p.x + d.width / 2, p.y + d.height / 2);
+
+ // The currently visible rectangle in scrollPane
+ Rectangle viewRect0 = Util.invokeOnEDT(scrollPane.getViewport()::getViewRect);
+
+ // Scroll the scrollPane with mouse wheel
+ robot.mouseWheel(1);
+ robot.waitForIdle();
+
+ // The updated rectangle
+ Rectangle viewRect1 = Util.invokeOnEDT(scrollPane.getViewport()::getViewRect);
+
+ if (viewRect0.y == viewRect1.y) {
+ throw new RuntimeException("Mouse wheel should have scrolled the JScrollPane");
+ }
+ } finally {
+ if (frame != null) {
+ frame.dispose();
+ }
+ }
+
+ System.out.println("Test passed");
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JEditorPane/6882559/bug6882559.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ @bug 6882559
+ @summary new JEditorPane("text/plain","") fails for null context class loader
+ @author Mikhail Cherkasov
+ @run main bug6882559
+*/
+
+import javax.swing.*;
+
+
+public class bug6882559 {
+ public static void main(String[] args) throws Exception {
+ SwingUtilities.invokeAndWait(() -> {
+ Thread.currentThread().setContextClassLoader(null);
+ new javax.swing.JEditorPane("text/plain", "");
+ });
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JEditorPane/8146319/JEditorPaneTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8146319
+ * @summary JEditorPane function setPage leaves a file lock
+ * @run main JEditorPaneTest
+ */
+import java.awt.Robot;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import javax.swing.JEditorPane;
+import javax.swing.SwingUtilities;
+
+public class JEditorPaneTest {
+
+ public static void main(String[] args) throws Exception {
+ Robot robot = new Robot();
+ try {
+ File file = File.createTempFile("Temp_", ".txt");
+ file.deleteOnExit();
+ writeFile(file);
+ SwingUtilities.invokeAndWait(new Runnable() {
+ @Override
+ public void run() {
+ JEditorPane editorPane = new JEditorPane();
+ try {
+ editorPane.setPage(file.toURI().toURL());
+ } catch (IOException ex) {
+ file.delete();
+ throw new RuntimeException("Test Failed" + ex);
+ }
+ }
+ });
+ robot.waitForIdle();
+ if (!file.renameTo(file)) {
+ file.delete();
+ throw new RuntimeException("Test Failed");
+ }
+ } catch (IOException ex) {
+ throw new RuntimeException("Failed to create File" + ex);
+ }
+ }
+
+ private static void writeFile(File file) {
+ FileWriter fw = null;
+ try {
+ fw = new FileWriter(file.getAbsoluteFile());
+ BufferedWriter bw = new BufferedWriter(fw);
+ bw.write("Test Text");
+ bw.close();
+ } catch (IOException ex) {
+ throw new RuntimeException("Failed to write File" + ex);
+ }
+
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JFileChooser/8041694/bug8041694.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ @bug 8041694
+ @summary JFileChooser removes trailing spaces in the selected directory name
+ @author Anton Litvinov
+ @library ../../../../lib/testlibrary
+ @build jdk.testlibrary.OSInfo
+ @run main bug8041694
+ */
+
+import java.awt.AWTException;
+import java.awt.Robot;
+import java.awt.event.KeyEvent;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.concurrent.CountDownLatch;
+import javax.swing.JFileChooser;
+import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.plaf.metal.MetalLookAndFeel;
+
+import jdk.testlibrary.OSInfo;
+
+public class bug8041694 {
+ private static volatile File dir1;
+ private static File dir2;
+ private static volatile File selectedDir;
+
+ private static void runTest() {
+ try {
+ // Set Metal L&F to make the test compatible with OS X.
+ UIManager.setLookAndFeel(new MetalLookAndFeel());
+ Robot robot = new Robot();
+
+ dir1 = Files.createTempDirectory("bug8041694").toFile();
+ if (OSInfo.getOSType() == OSInfo.OSType.WINDOWS) {
+ dir2 = new File(String.format(
+ "\\\\?\\%s\\d ", dir1.getAbsolutePath().replace('/', '\\')));
+ } else {
+ dir2 = new File(dir1.getAbsolutePath() + File.separator + "d ");
+ }
+ dir2.mkdir();
+
+ final CountDownLatch fChooserClosedSignal = new CountDownLatch(1);
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ JFileChooser fChooser = new JFileChooser(dir1);
+ fChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+ if (fChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
+ selectedDir = fChooser.getSelectedFile();
+ }
+ } finally {
+ fChooserClosedSignal.countDown();
+ }
+ }
+ });
+
+ robot.setAutoDelay(50);
+ robot.delay(1000);
+ robot.waitForIdle();
+ robot.keyPress(KeyEvent.VK_D);
+ robot.keyRelease(KeyEvent.VK_D);
+ robot.keyPress(KeyEvent.VK_SPACE);
+ robot.keyRelease(KeyEvent.VK_SPACE);
+ robot.keyPress(KeyEvent.VK_ENTER);
+ robot.keyRelease(KeyEvent.VK_ENTER);
+
+ fChooserClosedSignal.await();
+ if (selectedDir == null) {
+ throw new RuntimeException("No directory was selected in JFileChooser.");
+ }
+ System.out.println(String.format(
+ "The selected directory is '%s'.", selectedDir.getAbsolutePath()));
+ if (selectedDir.getName().equals("d")) {
+ throw new RuntimeException(
+ "JFileChooser removed trailing spaces in the selected directory name.");
+ } else if (!selectedDir.getName().equals("d ")) {
+ throw new RuntimeException("The selected directory name is not the expected 'd '.");
+ }
+ } catch (UnsupportedLookAndFeelException | AWTException | IOException | InterruptedException e) {
+ throw new RuntimeException(e);
+ } finally {
+ if (dir2 != null) {
+ dir2.delete();
+ }
+ if (dir1 != null) {
+ dir1.delete();
+ }
+ }
+ }
+
+ public static void main(String[] args) {
+ runTest();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JFormattedTextField/7070795/JFormattedTextFieldTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7070795
+ * @summary High contrast colour scheme fails to be applied to JFormattedTextField
+ * @requires (os.family == "windows")
+ * @run main/manual JFormattedTextFieldTest
+ */
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.text.NumberFormat;
+import javax.swing.JButton;
+import javax.swing.JFormattedTextField;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+
+public class JFormattedTextFieldTest implements ActionListener {
+
+ private static GridBagLayout layout;
+ private static JPanel mainControlPanel;
+ private static JPanel resultButtonPanel;
+ private static JLabel instructionText;
+ private static JButton passButton;
+ private static JButton failButton;
+ private static JFrame mainFrame;
+
+ public static void main(String[] args) throws Exception {
+ JFormattedTextFieldTest jFormattedTextFieldTest = new JFormattedTextFieldTest();
+ }
+
+ public JFormattedTextFieldTest() throws Exception {
+ createUI();
+ }
+
+ public final void createUI() throws Exception {
+
+ UIManager.setLookAndFeel("com.sun.java.swing.plaf."
+ + "windows.WindowsLookAndFeel");
+
+ SwingUtilities.invokeAndWait(() -> {
+
+ mainFrame = new JFrame("Window LAF JFormattedTextField Test");
+ layout = new GridBagLayout();
+ mainControlPanel = new JPanel(layout);
+ resultButtonPanel = new JPanel(layout);
+
+ GridBagConstraints gbc = new GridBagConstraints();
+ String instructions
+ = "<html>INSTRUCTIONS:<br>"
+ + "Set Windows Theme to HighContrast#1.<br><br>"
+ + "(ControlPanel->Personalization->High Contrast#1)<br><br>"
+ + "If TextFiled colors are same test"
+ + " passes else failed.<br><br></html>";
+
+ instructionText = new JLabel();
+ instructionText.setText(instructions);
+
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ mainControlPanel.add(instructionText, gbc);
+
+ passButton = new JButton("Pass");
+ passButton.setActionCommand("Pass");
+ passButton.addActionListener(JFormattedTextFieldTest.this);
+ failButton = new JButton("Fail");
+ failButton.setActionCommand("Fail");
+ failButton.addActionListener(JFormattedTextFieldTest.this);
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ resultButtonPanel.add(passButton, gbc);
+ gbc.gridx = 1;
+ gbc.gridy = 0;
+ resultButtonPanel.add(failButton, gbc);
+ gbc.gridx = 3;
+ gbc.gridy = 0;
+ resultButtonPanel.add(new JTextField("12345"), gbc);
+
+ NumberFormat format = NumberFormat.getIntegerInstance();
+ format.setMaximumIntegerDigits(5);
+ JFormattedTextField formatted = new JFormattedTextField(format);
+ formatted.setText("67891");
+ gbc.gridx = 5;
+ gbc.gridy = 0;
+ resultButtonPanel.add(formatted, gbc);
+ gbc.gridx = 0;
+ gbc.gridy = 1;
+ mainControlPanel.add(resultButtonPanel, gbc);
+
+ mainFrame.add(mainControlPanel);
+ mainFrame.setSize(400, 200);
+ mainFrame.setLocationRelativeTo(null);
+ mainFrame.setVisible(true);
+ });
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent evt) {
+ if (evt.getSource() instanceof JButton) {
+ JButton btn = (JButton) evt.getSource();
+ cleanUp();
+ switch (btn.getActionCommand()) {
+ case "Pass":
+ break;
+ case "Fail":
+ throw new AssertionError("User Clicked Fail!");
+ }
+ }
+ }
+
+ private static void cleanUp() {
+ mainFrame.dispose();
+ }
+
+}
+
--- a/jdk/test/javax/swing/JInternalFrame/6288609/TestJInternalFrameDispose.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/javax/swing/JInternalFrame/6288609/TestJInternalFrameDispose.java Thu Jun 16 20:56:45 2016 +0000
@@ -67,6 +67,7 @@
robot.waitForIdle();
executeTest();
+ robot.delay(1000);
dispose();
}
--- a/jdk/test/javax/swing/JInternalFrame/8145060/TestJInternalFrameMinimize.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/javax/swing/JInternalFrame/8145060/TestJInternalFrameMinimize.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015,2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -155,7 +155,7 @@
};
}
});
- timer = new Timer(100, listener);
+ timer = new Timer(1000, listener);
timer.start();
robot.delay(1000);
}
--- a/jdk/test/javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java Thu Jun 16 20:56:45 2016 +0000
@@ -65,6 +65,7 @@
createUI();
robot.waitForIdle();
executeTest();
+ robot.delay(1000);
}
}
if (!"".equals(errorMessage)) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JMenuItem/8152981/MenuItemIconTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8152981
+ * @summary Double icons with JMenuItem setHorizontalTextPosition on Win 10
+ * @requires (os.family == "windows")
+ * @run main MenuItemIconTest
+ */
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Point;
+import java.awt.Robot;
+import java.awt.image.BufferedImage;
+import javax.swing.ImageIcon;
+import javax.swing.JFrame;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.SwingConstants;
+import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+
+public class MenuItemIconTest {
+
+ private static JFrame frame;
+ private static Robot robot;
+ private static String errorMessage = "";
+ private static JMenuItem menuItem;
+ private static final int IMAGE_WIDTH_AND_HEIGHT = 25;
+
+ public static void main(String[] args) throws Exception {
+ robot = new Robot();
+ String name = UIManager.getSystemLookAndFeelClassName();
+ try {
+ UIManager.setLookAndFeel(name);
+ } catch (ClassNotFoundException | InstantiationException |
+ IllegalAccessException | UnsupportedLookAndFeelException e) {
+ throw new RuntimeException("Test Failed");
+ }
+ createUI();
+ robot.waitForIdle();
+ executeTest();
+ if (!"".equals(errorMessage)) {
+ throw new RuntimeException(errorMessage);
+ }
+ }
+
+ private static void createUI() throws Exception {
+ SwingUtilities.invokeAndWait(() -> {
+ frame = new JFrame();
+ frame.setTitle("Test");
+ JMenuBar menuBar = new JMenuBar();
+ ImageIcon icon = createIcon();
+ menuItem = new JMenuItem("Command", icon);
+ menuItem.setHorizontalTextPosition(SwingConstants.LEFT);
+ menuBar.add(menuItem);
+ frame.setJMenuBar(menuBar);
+ frame.setPreferredSize(new Dimension(500, 500));
+ frame.pack();
+ frame.setVisible(true);
+ frame.setLocationRelativeTo(null);
+ });
+ }
+
+ private static void checkPixeclColor(int x, int y) {
+ robot.delay(2000);
+ robot.mouseMove(x, y);
+ Color c = robot.getPixelColor(x, y);
+ if (c.getRed() == 255) {
+ errorMessage = "Test Failed";
+ }
+ robot.delay(5000);
+ frame.dispose();
+ }
+
+ protected static ImageIcon createIcon() {
+ BufferedImage bi = new BufferedImage(IMAGE_WIDTH_AND_HEIGHT,
+ IMAGE_WIDTH_AND_HEIGHT, BufferedImage.TYPE_INT_ARGB);
+ Graphics g = bi.createGraphics();
+ g.setColor(Color.RED);
+ g.fillOval(0, 0, IMAGE_WIDTH_AND_HEIGHT, IMAGE_WIDTH_AND_HEIGHT);
+ return new ImageIcon(bi);
+ }
+
+ private static void executeTest() throws Exception {
+ Point point = menuItem.getLocationOnScreen();
+ checkPixeclColor(point.x + IMAGE_WIDTH_AND_HEIGHT / 2,
+ point.y + IMAGE_WIDTH_AND_HEIGHT / 2);
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JMenuItem/ClickMenuTestManual/ClickMenuTestManual.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,183 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+ /* @test
+ * @bug 8158230
+ * @summary Verify menu item option apple.laf.useScreenMenuBar implementation
+ * @requires (os.family=="mac")
+ * @run main ClickMenuTestManual
+ */
+import java.awt.Color;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JTextArea;
+import static javax.swing.WindowConstants.EXIT_ON_CLOSE;
+
+public class ClickMenuTestManual implements
+ ActionListener {
+
+ public static final String TEST_STRING = "STRING";
+
+ private static GridBagLayout layout;
+ private static JPanel mainControlPanel;
+ private static JPanel instructionPanel;
+ private static JPanel testPanel;
+
+ private static JPanel resultButtonPanel;
+ private static JPanel controlPanel;
+ private static JTextArea instructionTextArea;
+ private static JTextArea testTextArea;
+ private static JButton passButton;
+ private static JButton failButton;
+ private static JMenu menu;
+ private static JMenuBar menuBar;
+ private static JMenuItem menuItem;
+ private static JFrame mainFrame;
+
+ public static void main(String[] args) throws Exception {
+ System.setProperty("apple.laf.useScreenMenuBar", "true");
+ ClickMenuTestManual test
+ = new ClickMenuTestManual();
+ }
+
+ public ClickMenuTestManual() throws Exception {
+ createControlPanelUI();
+ }
+
+ public final void createControlPanelUI() throws Exception {
+ layout = new GridBagLayout();
+ mainControlPanel = new JPanel(layout);
+ instructionPanel = new JPanel(layout);
+ testPanel = new JPanel(layout);
+ resultButtonPanel = new JPanel(layout);
+ controlPanel = new JPanel(layout);
+
+ GridBagConstraints gbc = new GridBagConstraints();
+ String instructions
+ = "1) Click on MENU using mouse "
+ + "\n2) Click on MENU ITEM using mouse "
+ + "\n3) Check output on textArea if equal to STRING "
+ + "\n\n If correct string, press \"Pass\" "
+ + "\n Otherwise, press \"Fail\" ";
+ instructionTextArea = new JTextArea();
+ instructionTextArea.setText(instructions);
+ instructionTextArea.setEnabled(false);
+ instructionTextArea.setDisabledTextColor(Color.black);
+ instructionTextArea.setBackground(Color.white);
+ instructionTextArea.setBorder(
+ BorderFactory.createLineBorder(Color.black));
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ instructionPanel.add(instructionTextArea, gbc);
+ testTextArea = new JTextArea();
+ testTextArea.setEnabled(true);
+ testTextArea.setDisabledTextColor(Color.black);
+ testTextArea.setBackground(Color.white);
+ testTextArea.setBorder(
+ BorderFactory.createLineBorder(Color.black));
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ testPanel.add(testTextArea, gbc);
+ passButton = new JButton("Pass");
+ passButton.setActionCommand("Pass");
+ passButton.addActionListener(this);
+ failButton = new JButton("Fail");
+ failButton.setActionCommand("Fail");
+ failButton.addActionListener(this);
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ resultButtonPanel.add(passButton, gbc);
+ gbc.gridx = 1;
+ gbc.gridy = 0;
+ resultButtonPanel.add(failButton, gbc);
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ mainControlPanel.add(instructionPanel, gbc);
+ gbc.gridx = 0;
+ gbc.gridy = 1;
+ mainControlPanel.add(testPanel, gbc);
+ gbc.gridx = 0;
+ gbc.gridy = 2;
+ mainControlPanel.add(resultButtonPanel, gbc);
+ gbc.gridx = 0;
+ gbc.gridy = 3;
+ mainControlPanel.add(controlPanel, gbc);
+ mainFrame = new JFrame("Control Panel");
+ mainFrame.add(mainControlPanel);
+ menuBar = new JMenuBar();
+ menu = new JMenu("MENU");
+ menuItem = new JMenuItem("MENU ITEM");
+ menuItem.addActionListener((e) -> {
+ testTextArea.setText(TEST_STRING);
+ });
+ menu.add(menuItem);
+ menuBar.add(menu);
+ mainFrame.setJMenuBar(menuBar);
+ mainFrame.pack();
+ mainFrame.setDefaultCloseOperation(EXIT_ON_CLOSE);
+ mainFrame.setVisible(true);
+
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent evt) {
+ if (evt.getSource() instanceof JButton) {
+ JButton btn = (JButton) evt.getSource();
+ if (btn.getActionCommand().equals("Pass")) {
+ try {
+ cleanUp();
+ } catch (Exception ex) {
+ Logger.getLogger(ClickMenuTestManual.class
+ .getName()).log(Level.SEVERE, null, ex);
+ }
+ } else if (btn.getActionCommand().equals("Fail")) {
+ try {
+ cleanUp();
+ } catch (Exception ex) {
+ Logger.getLogger(ClickMenuTestManual.class
+ .getName()).log(Level.SEVERE, null, ex);
+ }
+ throw new AssertionError("Test case has failed");
+
+ }
+ }
+ }
+
+ private static void cleanUp() {
+ mainFrame.dispose();
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JPopupMenu/8147521/PopupMenuTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8147521 8158358
+ * @summary [macosx] Internal API Usage: setPopupType used to force creation of
+ * heavyweight popup
+ * @run main PopupMenuTest
+ */
+import java.awt.Component;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import javax.swing.JFrame;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
+import javax.swing.Popup;
+import javax.swing.PopupFactory;
+import javax.swing.SwingUtilities;
+import javax.swing.event.PopupMenuEvent;
+import javax.swing.event.PopupMenuListener;
+import javax.swing.plaf.basic.BasicPopupMenuUI;
+
+public class PopupMenuTest {
+
+ private JPopupMenu jpopup;
+ private static volatile boolean isLightWeight;
+ private static JFrame frame;
+ private static Robot robot;
+ private static JPanel panel;
+
+ public static void main(String s[]) throws Exception {
+ PopupMenuTest obj = new PopupMenuTest();
+ obj.createUI();
+ robot = new Robot();
+ robot.waitForIdle();
+ robot.delay(1000);
+ obj.exectuteTest();
+ obj.dispose();
+ if (isLightWeight) {
+ throw new RuntimeException("Test Failed");
+ }
+ }
+
+ private void createUI() throws Exception {
+ SwingUtilities.invokeAndWait(() -> {
+ frame = new JFrame("Popup Menu");
+ jpopup = new JPopupMenu();
+ jpopup.setUI(new PopMenuUIExt());
+ JMenuItem item = new JMenuItem("Menu Item1");
+ jpopup.add(item);
+ item = new JMenuItem("Menu Item2");
+ jpopup.setLabel("Justification");
+ jpopup.add(item);
+ jpopup.setLabel("Justification");
+ jpopup.addPopupMenuListener(new PopupListener());
+ panel = new JPanel();
+ panel.addMouseListener(new MousePopupListener());
+ frame.setContentPane(panel);
+ frame.setSize(300, 300);
+ frame.setLocationRelativeTo(null);
+ frame.setVisible(true);
+ });
+
+ }
+
+ private void dispose() throws Exception {
+ SwingUtilities.invokeAndWait(() -> {
+ Popup popup = PopMenuUIExt.getPopup();
+ if (popup != null) {
+ popup.hide();
+ }
+ frame.dispose();
+ });
+ }
+
+ private void exectuteTest() {
+ Point p = frame.getLocationOnScreen();
+ Rectangle rect = frame.getBounds();
+ robot.mouseMove(p.x + rect.width / 2, p.y + rect.height / 2);
+ robot.mousePress(InputEvent.BUTTON3_DOWN_MASK);
+ robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK);
+ robot.delay(1000);
+ robot.mouseMove(p.x + rect.width / 2 - 10, p.y + rect.height / 2 - 10);
+ robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
+ robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
+ robot.delay(1000);
+ }
+
+ class MousePopupListener extends MouseAdapter {
+
+ @Override
+ public void mousePressed(MouseEvent e) {
+ showPopup(e);
+ }
+
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ showPopup(e);
+ }
+
+ @Override
+ public void mouseReleased(MouseEvent e) {
+ showPopup(e);
+ }
+
+ private void showPopup(MouseEvent e) {
+ jpopup.show(panel, e.getX(), e.getY());
+ }
+ }
+
+ class PopupListener implements PopupMenuListener {
+
+ public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
+ }
+
+ public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
+ Popup popup = ((PopMenuUIExt) jpopup.getUI()).getPopup();
+ if (popup != null) {
+ isLightWeight = !popup.getClass().toString().
+ contains("HeavyWeightPopup");
+ }
+ }
+
+ public void popupMenuCanceled(PopupMenuEvent e) {
+ }
+ }
+}
+
+class PopMenuUIExt extends BasicPopupMenuUI {
+
+ private static Popup popUp;
+
+ @Override
+ public Popup getPopup(JPopupMenu popup, int x, int y) {
+ PopupFactory.setSharedInstance(new PopupFactory() {
+
+ @Override
+ public Popup getPopup(Component owner, Component contents,
+ int x, int y) {
+ return super.getPopup(owner, contents, x, y, true);
+ }
+ });
+ PopupFactory factory = PopupFactory.getSharedInstance();
+ popUp = factory.getPopup(popup.getInvoker(), popup, x, y);
+ return popUp;
+ }
+
+ public static Popup getPopup() {
+ return popUp;
+ }
+}
+
--- a/jdk/test/javax/swing/JTextField/I18NViewNoWrapMinSpan/I18NViewNoWrapMinSpan.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/javax/swing/JTextField/I18NViewNoWrapMinSpan/I18NViewNoWrapMinSpan.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,34 +28,29 @@
@author Semyon Sadetsky
*/
-import javax.swing.*;
+import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.text.BadLocationException;
-import java.lang.Override;
-import java.lang.Runnable;
public class I18NViewNoWrapMinSpan {
public static void main(String[] args) throws Exception {
- SwingUtilities.invokeAndWait(new Runnable() {
- @Override
- public void run() {
- try {
- JTextField textField = new JTextField(15);
- textField.setText("ม12345");
- float noSpaceMin = textField.getUI().getRootView(textField)
- .getMinimumSpan(0);
- textField.getDocument().insertString(3, " ", null);
- if (noSpaceMin > textField.getUI().getRootView(textField)
- .getMinimumSpan(0)) {
- throw new RuntimeException(
- "Minimum span is calculated for wrapped text");
- }
- } catch (BadLocationException e) {
- throw new RuntimeException(e);
+ SwingUtilities.invokeAndWait(() -> {
+ try {
+ JTextField textField = new JTextField(15);
+ textField.setText("\u0E2112345");
+ float noSpaceMin = textField.getUI().getRootView(textField)
+ .getMinimumSpan(0);
+ textField.getDocument().insertString(3, " ", null);
+ if (noSpaceMin > textField.getUI().getRootView(textField)
+ .getMinimumSpan(0)) {
+ throw new RuntimeException(
+ "Minimum span is calculated for wrapped text");
}
+ } catch (BadLocationException e) {
+ throw new RuntimeException(e);
}
});
System.out.println("ok");
}
-}
\ No newline at end of file
+}
--- a/jdk/test/javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java Thu Jun 16 20:56:45 2016 +0000
@@ -22,12 +22,14 @@
*/
/* @test
- @bug 8129830
- @summary JTree drag/drop on lower half of last child of container incorrect
- @author Semyon Sadetsky
- */
+ * @bug 8129830 8132771
+ * @summary JTree drag/drop on lower half of last child of container incorrect
+ * @run main LastNodeLowerHalfDrop
+ */
-import java.awt.*;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.Robot;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
@@ -35,7 +37,13 @@
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
-import javax.swing.*;
+import javax.swing.DropMode;
+import javax.swing.JComponent;
+import javax.swing.JFrame;
+import javax.swing.JScrollPane;
+import javax.swing.JTree;
+import javax.swing.SwingUtilities;
+import javax.swing.TransferHandler;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeModel;
@@ -74,24 +82,31 @@
testCase(b2, a1, +0.4f);
if (!"b2".equals(jTree.getModel().
getChild(a, a.getChildCount() - 1).toString())) {
- throw new RuntimeException("b1 was not inserted in the last position in a");
+ cleanUp();
+ throw new RuntimeException("b1 was not inserted "
+ +"in the last position in a");
}
testCase(c1, c, -0.4f);
if (!"c1".equals(jTree.getModel().getChild(root, 2).toString())) {
- throw new RuntimeException("c1 was not inserted beetween c and b nodes");
+ cleanUp();
+ throw new RuntimeException("c1 was not inserted "
+ +"between c and b nodes");
}
+ cleanUp();
+ }
- SwingUtilities.invokeLater(new Runnable() {
+ private static void cleanUp() throws Exception {
+ SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
f.dispose();
}
});
- System.out.printf("ok");
}
- static void testCase(DefaultMutableTreeNode drag,
- DefaultMutableTreeNode drop, float shift) throws Exception {
+ private static void testCase(final DefaultMutableTreeNode drag,
+ final DefaultMutableTreeNode drop, final float shift)
+ throws Exception {
Robot robot = new Robot();
robot.waitForIdle();
SwingUtilities.invokeAndWait(new Runnable() {
@@ -112,11 +127,11 @@
robot.mouseMove(dragPoint.x, dragPoint.y);
robot.mousePress(InputEvent.BUTTON1_MASK);
- robot.delay(400);
+ robot.delay(1000);
robot.mouseMove(dropPoint.x, dropPoint.y);
- robot.delay(400);
+ robot.delay(1000);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
-
+ robot.delay(1000);
robot.waitForIdle();
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/UIManager/8136366/CreateLookAndFeelTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.awt.Toolkit;
+import javax.swing.LookAndFeel;
+import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import sun.awt.SunToolkit;
+
+/**
+ * @test
+ * @bug 8136366
+ * @summary Add a public API to create a L&F without installation
+ * @modules java.desktop/sun.awt
+ */
+public class CreateLookAndFeelTest {
+
+ public static void main(String[] args) throws Exception {
+ SwingUtilities.invokeAndWait(CreateLookAndFeelTest::createLAFs);
+ }
+
+ private static void createLAFs() {
+
+ for (LAFTest lafTest : LAFTest.values()) {
+ createLAF(lafTest);
+ }
+
+ try {
+ UIManager.createLookAndFeel(null);
+ } catch (NullPointerException e) {
+ return;
+ } catch (UnsupportedLookAndFeelException ignore) {
+ }
+
+ throw new RuntimeException("NPE is not thrown!");
+ }
+
+ private static void createLAF(LAFTest lafTest) {
+ try {
+ UIManager.createLookAndFeel(lafTest.lafName);
+
+ } catch (UnsupportedLookAndFeelException e) {
+ if (lafTest.isSupported) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ private static boolean isOSAvailable(String supportedOS) {
+ return System.getProperty("os.name")
+ .toLowerCase()
+ .contains(supportedOS);
+ }
+
+ private static boolean isGTKAvailable() {
+ Toolkit toolkit = Toolkit.getDefaultToolkit();
+ if (!(toolkit instanceof SunToolkit)) {
+ return false;
+ }
+ return ((SunToolkit) toolkit).isNativeGTKAvailable();
+ }
+
+ enum LAFTest {
+
+ METAL("Metal"),
+ NIMBUS("Nimbus"),
+ MOTIF("CDE/Motif"),
+ WINDOWS("Windows", isOSAvailable("windows")),
+ GTK("GTK look and feel", isGTKAvailable()),
+ MAC("Mac OS X", isOSAvailable("mac"));
+
+ private final String lafName;
+ private final boolean isSupported;
+
+ private LAFTest(String lafName) {
+ this(lafName, true);
+ }
+
+ private LAFTest(String lafName, boolean crossPlatform) {
+ this.lafName = lafName;
+ this.isSupported = crossPlatform;
+ }
+ }
+}
--- a/jdk/test/javax/swing/plaf/basic/BasicComboPopup/7072653/bug7072653.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/javax/swing/plaf/basic/BasicComboPopup/7072653/bug7072653.java Thu Jun 16 20:56:45 2016 +0000
@@ -22,106 +22,153 @@
*/
/* @test
- @bug 7072653
- @summary JComboBox popup mispositioned if its height exceeds the screen height
- @author Semyon Sadetsky
- */
-
-
-import javax.swing.*;
+ * @bug 7072653 8144161
+ * @summary JComboBox popup mispositioned if its height exceeds the screen height
+ * @run main bug7072653
+ */
+import java.awt.FlowLayout;
+import java.awt.GraphicsConfiguration;
+import java.awt.Insets;
+import java.awt.Robot;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
-import java.awt.*;
import java.awt.Toolkit;
+import java.awt.Window;
+import java.util.Arrays;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
public class bug7072653 {
private static JComboBox combobox;
private static JFrame frame;
+ private static Robot robot;
+ private static volatile String errorString = "";
public static void main(String[] args) throws Exception {
- try {
+ robot = new Robot();
+ robot.delay(100);
+ UIManager.LookAndFeelInfo[] lookAndFeelArray
+ = UIManager.getInstalledLookAndFeels();
+ for (UIManager.LookAndFeelInfo lookAndFeelItem : lookAndFeelArray) {
+ executeCase(lookAndFeelItem.getClassName());
+ robot.delay(1000);
+ }
+ if (!"".equals(errorString)) {
+
+ throw new RuntimeException("Error Log:\n" + errorString);
+ }
+ }
+
+ private static void executeCase(String lookAndFeelString) throws Exception {
+ if (tryLookAndFeel(lookAndFeelString)) {
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
- frame = new JFrame("JComboBox Test");
- setup(frame);
+ try {
+ setup(lookAndFeelString);
+ test();
+ } catch (Exception ex) {
+ errorString += "\n";
+ errorString += Arrays.toString(ex.getStackTrace());
+ }
+ finally {
+ frame.dispose();
+ }
}
});
- test();
- }
- finally {
- frame.dispose();
}
}
- static void setup(JFrame frame) {
-
+ private static void setup(String lookAndFeelString)
+ throws Exception {
- frame.setUndecorated(true);
+ frame = new JFrame("JComboBox Test " + lookAndFeelString);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
frame.setSize(320, 200);
-
frame.getContentPane().setLayout(new FlowLayout());
-
+ frame.setLocationRelativeTo(null);
combobox = new JComboBox(new DefaultComboBoxModel() {
- public Object getElementAt(int index) { return "Element " + index; }
+ @Override
+ public Object getElementAt(int index) {
+ return "Element " + index;
+ }
+
+ @Override
public int getSize() {
- return 1000;
+ return 100;
}
});
-
combobox.setMaximumRowCount(100);
frame.getContentPane().add(combobox);
+ frame.setVisible(true);
+ combobox.addPopupMenuListener(new PopupMenuListener() {
+ @Override
+ public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
+ }
- frame.setVisible(true);
+ @Override
+ public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
+ int height = 0;
+ for (Window window : JFrame.getWindows()) {
+ if (Window.Type.POPUP == window.getType()) {
+ height = window.getSize().height;
+ break;
+ }
+ }
+ GraphicsConfiguration gc
+ = combobox.getGraphicsConfiguration();
+ Insets screenInsets = Toolkit.getDefaultToolkit()
+ .getScreenInsets(gc);
+ int gcHeight = gc.getBounds().height;
+ if (lookAndFeelString.contains("aqua")) {
+ gcHeight = gcHeight - screenInsets.top;
+ //For Aqua LAF
+ } else {
+ gcHeight = gcHeight - screenInsets.top
+ - screenInsets.bottom;
+ }
+ if (height == gcHeight) {
+ return;
+ }
+
+ String exception = "Popup window height "
+ + "For LookAndFeel" + lookAndFeelString + " is wrong"
+ + "\nShould be " + height + "Actually " + gcHeight;
+ errorString += exception;
+ }
+
+ @Override
+ public void popupMenuCanceled(PopupMenuEvent e) {
+ }
+
+ });
}
- static void test() throws Exception{
- SwingUtilities.invokeAndWait(new Runnable() {
- @Override
- public void run() {
- combobox.addPopupMenuListener(new PopupMenuListener() {
- @Override
- public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
- }
-
- @Override
- public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
- int height = 0;
- for (Window window : JFrame.getWindows()) {
- if (Window.Type.POPUP == window.getType()) {
- height = window.getSize().height;
- break;
- }
- }
- GraphicsConfiguration gc =
- combobox.getGraphicsConfiguration();
- Insets screenInsets = Toolkit.getDefaultToolkit()
- .getScreenInsets(gc);
-
- if (height == gc.getBounds().height - screenInsets.top -
- screenInsets.bottom ) {
- System.out.println("ok");
- return;
- }
- throw new RuntimeException(
- "Popup window height is wrong " + height);
- }
-
- @Override
- public void popupMenuCanceled(PopupMenuEvent e) {
- }
- });
- combobox.setPopupVisible(true);
- combobox.setPopupVisible(false);
- }
- });
+ private static void test() throws Exception {
+ combobox.setPopupVisible(true);
+ combobox.setPopupVisible(false);
}
+ private static boolean tryLookAndFeel(String lookAndFeelString)
+ throws Exception {
+ try {
+ UIManager.setLookAndFeel(
+ lookAndFeelString);
+ } catch (UnsupportedLookAndFeelException
+ | ClassNotFoundException
+ | InstantiationException
+ | IllegalAccessException e) {
+ return false;
+ }
+ return true;
+ }
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/plaf/basic/BasicRootPaneUI/HiddenDefaultButtonTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 6827800
+ * @summary Test to check hidden default button does not respond to 'Enter' key
+ * @run main HiddenDefaultButtonTest
+ */
+
+import java.awt.AWTException;
+import java.awt.Robot;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.SwingUtilities;
+
+public class HiddenDefaultButtonTest {
+
+ private static int ButtonClickCount = 0;
+ private static JFrame frame;
+
+ private static void createGUI() {
+ frame = new JFrame();
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+ JButton button = new JButton("Default button");
+ button.setDefaultCapable(true);
+ button.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ ButtonClickCount++;
+ }
+ });
+
+ frame.add(button);
+ button.setVisible(false);
+
+ frame.getRootPane().setDefaultButton(button);
+
+ frame.setSize(200, 200);
+ frame.setLocationRelativeTo(null);
+ frame.setVisible(true);
+ }
+
+ private static void disposeTestUI() throws Exception {
+ SwingUtilities.invokeAndWait(() -> {
+ frame.dispose();
+ });
+ }
+
+ private static void test() throws Exception {
+ // Create Robot
+ Robot testRobot = new Robot();
+
+ testRobot.waitForIdle();
+
+ testRobot.keyPress(KeyEvent.VK_ENTER);
+ testRobot.delay(20);
+ testRobot.keyRelease(KeyEvent.VK_ENTER);
+ testRobot.delay(200);
+ testRobot.keyPress(KeyEvent.VK_ENTER);
+ testRobot.delay(20);
+ testRobot.keyRelease(KeyEvent.VK_ENTER);
+
+ testRobot.waitForIdle();
+
+ if (ButtonClickCount != 0) {
+ disposeTestUI();
+ throw new RuntimeException("DefaultButton is pressed even if it is invisible");
+ }
+
+ }
+
+ public static void main(String[] args) throws Exception {
+ // create UI
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ HiddenDefaultButtonTest.createGUI();
+ }
+ });
+
+ // Test default button press by pressing EnterKey using Robot
+ test();
+
+ // dispose UI
+ HiddenDefaultButtonTest.disposeTestUI();
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/plaf/synth/SynthScrollbarThumbPainter/SynthScrollbarThumbPainterTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,203 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 7172750
+ * @summary Test to check Synth ScrollBar:ScrollBarThumb[].backgroundPainter is invoked
+ * @run main SynthScrollbarThumbPainterTest
+ */
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.Point;
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import java.awt.image.BufferedImage;
+import javax.swing.JComponent;
+import javax.swing.JEditorPane;
+import javax.swing.JFrame;
+import javax.swing.JScrollPane;
+import javax.swing.Painter;
+import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+
+public class SynthScrollbarThumbPainterTest {
+
+ private static Robot testRobot;
+ private static Point pos = new Point();
+ private static MyFrame testFrame;
+
+ public static void main(String[] args) throws Exception {
+ // Create Robot
+ testRobot = new Robot();
+
+ // Create test UI
+ String lookAndFeelString = "javax.swing.plaf.nimbus.NimbusLookAndFeel";
+ SwingUtilities.invokeAndWait(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ constructTestUI(lookAndFeelString);
+ } catch (Exception ex) {
+ throw new RuntimeException("Exception creating test UI");
+ }
+ }
+ });
+
+ testRobot.waitForIdle();
+ testRobot.delay(200);
+
+ // Run test method
+ testScrollBarThumbPainter();
+
+ // Dispose test UI
+ disposeTestUI();
+ }
+
+ private static void disposeTestUI() throws Exception {
+ SwingUtilities.invokeAndWait(() -> {
+ testFrame.dispose();
+ });
+ }
+
+
+ private static void constructTestUI(String lookAndFeelString) throws Exception {
+ // Set look and feel
+ UIManager.setLookAndFeel(lookAndFeelString);
+
+ // Set ScrollBarThumb background painters
+ UIManager.getLookAndFeelDefaults().put("ScrollBar:ScrollBarThumb[Enabled].backgroundPainter", new FillPainter(Color.RED));
+ UIManager.getLookAndFeelDefaults().put("ScrollBar:ScrollBarThumb[MouseOver].backgroundPainter", new FillPainter(Color.GREEN));
+ UIManager.getLookAndFeelDefaults().put("ScrollBar:ScrollBarThumb[Pressed].backgroundPainter", new FillPainter(Color.BLUE));
+
+ // Create UI
+ testFrame = new MyFrame();
+ }
+
+ private static void testScrollBarThumbPainter() throws Exception {
+ Point p = testFrame.getLocation();
+ pos.setLocation(p.x + 185, p.y + 80); // offset where scrollbar exists
+
+ testRobot.delay(200);
+
+ // Get the scrollbar color
+ Color ScrollbarColor = testFrame.getPixelColor(pos.x - p.x, pos.y - p.y);
+
+ // Assert ScrollbarThumb 'Enable' state color
+ if (!ScrollbarColor.equals(Color.RED)) {
+ disposeTestUI();
+ throw new RuntimeException("ScrollbarThumb 'Enable' state color does not match expected color");
+ }
+
+ // Move the mouse over scrollbar
+ testRobot.mouseMove(pos.x, pos.y);
+ testRobot.delay(200);
+
+ ScrollbarColor = testFrame.getPixelColor(pos.x - p.x, pos.y - p.y);
+
+ //Assert ScrollbarThumb 'MouseOver' state color
+ if (!ScrollbarColor.equals(Color.GREEN)) {
+ disposeTestUI();
+ throw new RuntimeException("ScrollbarThumb 'MouseOver' state color does not match expected color");
+ }
+
+ // Mouse Press on scrollbar
+ testRobot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
+ testRobot.delay(200);
+
+ ScrollbarColor = testFrame.getPixelColor(pos.x - p.x, pos.y - p.y);
+
+ testRobot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
+ testRobot.delay(200);
+
+ //Assert ScrollbarThumb 'Pressed' state color
+ if (!ScrollbarColor.equals(Color.BLUE)) {
+ disposeTestUI();
+ throw new RuntimeException("ScrollbarThumb 'Pressed' state color does not match expected color");
+ }
+ }
+
+}
+
+
+class FillPainter implements Painter<JComponent> {
+
+ private final Color color;
+
+ FillPainter(Color c) {
+ color = c;
+ }
+
+ @Override
+ public void paint(Graphics2D g, JComponent object, int width, int height) {
+ g.setColor(color);
+ g.fillRect(0, 0, width - 1, height - 1);
+ }
+}
+
+class MyFrame extends JFrame {
+
+ private BufferedImage bi;
+ private final String content = "A\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO";
+
+ public MyFrame() {
+ JEditorPane editpane = new JEditorPane();
+ editpane.setEditable(false);
+ editpane.setText(content);
+ editpane.setCaretPosition(0);
+
+ JScrollPane scrollpane = new JScrollPane(editpane);
+
+ add(scrollpane);
+
+ setDefaultCloseOperation(DISPOSE_ON_CLOSE);
+
+ setSize(new Dimension(200, 200));
+ bi = new BufferedImage(200, 200, BufferedImage.TYPE_INT_ARGB);
+ setResizable(false);
+ setVisible(true);
+ }
+
+
+ public Color getPixelColor(int x, int y) {
+
+ paintFrameToBufferedImage(this);
+
+ int pixel = bi.getRGB(x, y);
+
+ int alpha = (pixel >> 24) & 0xff;
+ int red = (pixel >> 16) & 0xff;
+ int green = (pixel >> 8) & 0xff;
+ int blue = (pixel) & 0xff;
+
+ Color pixelColor = new Color(red, green, blue, alpha);
+ return pixelColor;
+ }
+
+ private void paintFrameToBufferedImage(Component component) {
+ component.paint(bi.getGraphics());
+ }
+} //MyFrame
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/text/AbstractDocument/DocumentInsert/DocumentInsertAtWrongPositionTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import javax.swing.*;
+import javax.swing.text.*;
+
+/*
+ * @test
+ * @bug 8151015
+ * @summary JTextArea.insert() does not behave as expected with invalid position
+ * @run main DocumentInsertAtWrongPositionTest
+ */
+public class DocumentInsertAtWrongPositionTest {
+ public static void main(String[] args) throws Exception {
+ JTextField te = new JTextField("1234567890");
+ JTextPane tp = new JTextPane();
+ tp.setText("1234567890");
+ JTextArea ta = new JTextArea("1234567890");
+
+ try {
+ ta.insert("abc", 11);
+
+ throw new RuntimeException("failed");
+ } catch (IllegalArgumentException e) {
+ }
+ try {
+
+ te.getDocument().insertString(11, "abc", new SimpleAttributeSet());
+
+ throw new RuntimeException("failed");
+ } catch (BadLocationException e) {
+ }
+ try {
+ tp.getDocument().insertString(11, "abc", new SimpleAttributeSet());
+ throw new RuntimeException("failed");
+ } catch (BadLocationException e) {
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/text/GapContent/4496801/bug4496801.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ @bug 4496801 8151015
+ @summary Tests HTMLDocument.insertBeforeEnd() method
+ @author Peter Zhelezniakov
+ @run main bug4496801
+*/
+
+import javax.swing.text.html.parser.ParserDelegator;
+import javax.swing.text.html.*;
+import javax.swing.text.*;
+import java.io.IOException;
+
+public class bug4496801 {
+ public static void main(String[] args) {
+ HTMLDocument doc = new HTMLDocument();
+ doc.setParser(new ParserDelegator());
+
+ Element html = doc.getRootElements()[0];
+ Element body = html.getElement(0);
+
+ try {
+ doc.insertBeforeEnd(body, "<h2>foo</h2>");
+ } catch (IOException e) {
+ } catch (BadLocationException e) {
+ throw new RuntimeException("Insertion failed");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/text/html/parser/Parser/8078268/bug8078268.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*
+* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+* or visit www.oracle.com if you need additional information or have any
+* questions.
+*/
+
+
+import java.io.File;
+import java.io.FileReader;
+import javax.swing.SwingUtilities;
+import javax.swing.text.Document;
+import javax.swing.text.html.HTMLEditorKit;
+
+/* @test
+ @bug 8078268
+ @summary javax.swing.text.html.parser.Parser parseScript incorrectly optimized
+ @author Mikhail Cherkasov
+ @run main bug8078268
+*/
+public class bug8078268 {
+ static volatile boolean parsingDone = false;
+ static volatile Exception exception;
+
+ public static void main(String[] args) throws Exception {
+ long s = System.currentTimeMillis();
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ HTMLEditorKit htmlKit = new HTMLEditorKit();
+ Document doc = htmlKit.createDefaultDocument();
+ try {
+ htmlKit.read(new FileReader(getDirURL() + "slowparse.html"), doc, 0);
+ parsingDone = true;
+ } catch (Exception e) {
+ exception = e;
+ }
+ }
+ });
+ while (!parsingDone && exception == null && System.currentTimeMillis() - s < 5_000) {
+ Thread.sleep(200);
+ }
+ final long took = System.currentTimeMillis() - s;
+ if (exception != null) {
+ throw exception;
+ }
+ if (took > 5_000) {
+ throw new RuntimeException("Parsing takes too long.");
+ }
+ }
+
+ static String getDirURL() {
+ return new File(System.getProperty("test.src", ".")).getAbsolutePath() +
+ File.separator;
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/text/html/parser/Parser/8078268/slowparse.html Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,3539 @@
+<html>
+<head>
+ <script type="text/javascript">
+ var a = 1;
+ <!--
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script> </script>
+ -->
+ var b = 2;
+ </script>
+</head>
+<body>
+</body>
+</html>
--- a/jdk/test/jdk/lambda/LambdaTranslationTest1.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/jdk/lambda/LambdaTranslationTest1.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -137,7 +137,7 @@
LT1IA da = LambdaTranslationTest1::deye;
da.doit(1234);
- assertResult("d:1234.000000");
+ assertResult(String.format("d:%f", 1234.0));
LT1SA a = LambdaTranslationTest1::count;
assertEquals((Integer) 5, a.doit("howdy"));
--- a/jdk/test/jdk/lambda/LambdaTranslationTest2.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/jdk/lambda/LambdaTranslationTest2.java Thu Jun 16 20:56:45 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -200,7 +200,7 @@
assertEquals("b1 s2", ws1.m((byte) 1, (short) 2));
WidenD wd1 = LambdaTranslationTest2::pwD1;
- assertEquals("f1.000000 d2.000000", wd1.m(1.0f, 2.0));
+ assertEquals(String.format("f%f d%f", 1.0f, 2.0), wd1.m(1.0f, 2.0));
WidenI wi1 = LambdaTranslationTest2::pwI1;
assertEquals("b1 s2 c3 i4", wi1.m((byte) 1, (short) 2, (char) 3, 4));
@@ -221,12 +221,16 @@
public void testUnboxing() {
Unbox u = LambdaTranslationTest2::pu;
- assertEquals("b1 s2 cA i4 j5 ztrue f6.000000 d7.000000", u.m((byte)1, (short) 2, 'A', 4, 5L, true, 6.0f, 7.0));
+ String expected = String.format("b%d s%d c%c i%d j%d z%b f%f d%f",
+ (byte)1, (short) 2, 'A', 4, 5L, true, 6.0f, 7.0);
+ assertEquals(expected, u.m((byte)1, (short) 2, 'A', 4, 5L, true, 6.0f, 7.0));
}
public void testBoxing() {
Box b = LambdaTranslationTest2::pb;
- assertEquals("b1 s2 cA i4 j5 ztrue f6.000000 d7.000000", b.m((byte) 1, (short) 2, 'A', 4, 5L, true, 6.0f, 7.0));
+ String expected = String.format("b%d s%d c%c i%d j%d z%b f%f d%f",
+ (byte) 1, (short) 2, 'A', 4, 5L, true, 6.0f, 7.0);
+ assertEquals(expected, b.m((byte) 1, (short) 2, 'A', 4, 5L, true, 6.0f, 7.0));
}
static boolean cc(Object o) {
--- a/jdk/test/sanity/client/SwingSet/src/ButtonDemoScreenshotTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/ButtonDemoScreenshotTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -38,7 +38,7 @@
/*
* @test
- * @key headful screenshots
+ * @key headful screenshots intermittent
* @summary Verifies buttons on SwingSet3 ButtonDemo page by clicking each
* button, taking its screenshots and checking that pressed button
* image is different from initial button image.
@@ -46,6 +46,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.button.ButtonDemo
* @run testng ButtonDemoScreenshotTest
--- a/jdk/test/sanity/client/SwingSet/src/ButtonDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/ButtonDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -51,6 +51,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.button.ButtonDemo
* @run testng ButtonDemoTest
--- a/jdk/test/sanity/client/SwingSet/src/ComboBoxDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/ComboBoxDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -40,6 +40,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.combobox.ComboBoxDemo
* @run testng ComboBoxDemoTest
@@ -76,7 +78,7 @@
JComboBoxOperator jcbo = new JComboBoxOperator(jfo, comboBoxInfo.ordinal());
for (int i = 0; i < jcbo.getItemCount(); i++) {
jcbo.selectItem(i);
- assertEquals(comboBoxInfo.comboBoxName + " ComboBox SelectedIndex is correct", i, jcbo.getSelectedIndex());
+ jcbo.waitItemSelected(i);
}
}
--- a/jdk/test/sanity/client/SwingSet/src/ListDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/ListDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -21,17 +21,25 @@
* questions.
*/
-import org.jtregext.GuiTestListener;
import com.sun.swingset3.demos.list.ListDemo;
import static com.sun.swingset3.demos.list.ListDemo.DEMO_TITLE;
-import static org.testng.AssertJUnit.*;
-import org.testng.annotations.Test;
-import static org.jemmy2ext.JemmyExt.getLabeledContainerOperator;
+
+import java.awt.Component;
+import javax.swing.JList;
+
import org.netbeans.jemmy.ClassReference;
+import org.netbeans.jemmy.ComponentChooser;
import org.netbeans.jemmy.operators.JCheckBoxOperator;
import org.netbeans.jemmy.operators.JFrameOperator;
import org.netbeans.jemmy.operators.JListOperator;
+
+import static org.jemmy2ext.JemmyExt.*;
+
+import org.jtregext.GuiTestListener;
+
import org.testng.annotations.Listeners;
+import org.testng.annotations.Test;
+import static org.testng.AssertJUnit.*;
/*
* @test
@@ -43,6 +51,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.list.ListDemo
* @run testng ListDemoTest
@@ -52,6 +62,17 @@
private static final int CHECKBOX_COUNT = 50;
+ private void waitModelSize(JListOperator listOp, int size) {
+ listOp.waitState(new ComponentChooser() {
+ public boolean checkComponent(Component comp) {
+ return getUIValue(listOp, (JList list) -> list.getModel().getSize()) == size;
+ }
+ public String getDescription() {
+ return "Model size to be equal to " + size;
+ }
+ });
+ }
+
@Test
public void test() throws Exception {
@@ -65,16 +86,14 @@
JCheckBoxOperator checkBox = getJCheckBoxOperator(frame, i);
checkBox.changeSelection(false);
}
- System.out.println("######## Number of Items = " + listOp.getModel().getSize());
- assertEquals("Select None number of items is correct", 0, listOp.getModel().getSize());
+ waitModelSize(listOp, 0);
// Check *ALL* Prefix and Suffixes Marked
for (int i = 0; i < CHECKBOX_COUNT; i++) {
JCheckBoxOperator checkBox = getJCheckBoxOperator(frame, i);
checkBox.changeSelection(true);
}
- System.out.println("######## Number of Items = " + listOp.getModel().getSize());
- assertEquals("Select All number of items is correct", CHECKBOX_COUNT / 2 * CHECKBOX_COUNT / 2, listOp.getModel().getSize());
+ waitModelSize(listOp, CHECKBOX_COUNT * CHECKBOX_COUNT / 4);
// Check *ALL* Prefix and *NO* Suffixes Marked
for (int i = 0; i < CHECKBOX_COUNT; i++) {
@@ -85,8 +104,7 @@
checkBox.changeSelection(false);
}
}
- System.out.println("######## Number of Items = " + listOp.getModel().getSize());
- assertEquals("Select All Prefixes and NO Suffixes number of items is correct", 0, listOp.getModel().getSize());
+ waitModelSize(listOp, 0);
// Check *NO* Prefix and *ALL* Suffixes Marked
for (int i = 0; i < CHECKBOX_COUNT; i++) {
@@ -97,8 +115,7 @@
checkBox.changeSelection(true);
}
}
- System.out.println("######## Number of Items = " + listOp.getModel().getSize());
- assertEquals("Select NO Prefixes and All Suffixes number of items is correct", 0, listOp.getModel().getSize());
+ waitModelSize(listOp, 0);
}
private JCheckBoxOperator getJCheckBoxOperator(JFrameOperator frame, int index) {
@@ -115,7 +132,9 @@
subindex = index - CHECKBOX_COUNT / 2;
}
- return new JCheckBoxOperator(getLabeledContainerOperator(frame, labelText), subindex);
+ JCheckBoxOperator result = new JCheckBoxOperator(getLabeledContainerOperator(frame, labelText), subindex);
+ result.setVerification(true);
+ return result;
}
}
--- a/jdk/test/sanity/client/SwingSet/src/OptionPaneDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/OptionPaneDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -21,20 +21,25 @@
* questions.
*/
-import org.jtregext.GuiTestListener;
import com.sun.swingset3.demos.optionpane.OptionPaneDemo;
import static com.sun.swingset3.demos.optionpane.OptionPaneDemo.*;
+
import javax.swing.UIManager;
-import static org.testng.AssertJUnit.*;
-import org.testng.annotations.Test;
+
+import org.jtregext.GuiTestListener;
+
import org.netbeans.jemmy.ClassReference;
+import org.netbeans.jemmy.operators.Operator.DefaultStringComparator;
import org.netbeans.jemmy.operators.JButtonOperator;
import org.netbeans.jemmy.operators.JComboBoxOperator;
import org.netbeans.jemmy.operators.JDialogOperator;
import org.netbeans.jemmy.operators.JFrameOperator;
import org.netbeans.jemmy.operators.JLabelOperator;
import org.netbeans.jemmy.operators.JTextFieldOperator;
+
import org.testng.annotations.Listeners;
+import org.testng.annotations.Test;
+import static org.testng.AssertJUnit.*;
/*
@@ -46,6 +51,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.optionpane.OptionPaneDemo
* @run testng OptionPaneDemoTest
@@ -77,70 +84,44 @@
showConfirmationDialog(frame);
}
+ private void checkMessage(String message) {
+ JDialogOperator jdo = new JDialogOperator(MESSAGE);
+ new JLabelOperator(jdo, message);
+ new JButtonOperator(jdo, OK).push();
+ jdo.waitClosed();
+ }
+
+ private void useInputDialog(JFrameOperator jfo, String textToType, String buttonToPush) {
+ new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock();
+ JDialogOperator jdo = new JDialogOperator(INPUT);
+ if(textToType != null) {
+ JTextFieldOperator jto = new JTextFieldOperator(jdo);
+ jto.typeText(textToType);
+ jto.waitText(textToType);
+ }
+ new JButtonOperator(jdo, buttonToPush).push();
+ jdo.waitClosed();
+ }
+
public void showInputDialog(JFrameOperator jfo) throws Exception {
// Cancel with text case
- {
- new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(INPUT);
- JTextFieldOperator jto = new JTextFieldOperator(jdo);
- jto.setText(SOME_TEXT_TO_TYPE);
-
- assertTrue("Show Input Dialog cancel w/ Text", jdo.isShowing());
-
- new JButtonOperator(jdo, CANCEL).push();
-
- assertFalse("Show Input Dialog cancel w/ Text", jdo.isShowing());
- }
+ useInputDialog(jfo, SOME_TEXT_TO_TYPE, CANCEL);
+ //TODO: wait for no dialog displayed
// Cancel with *NO* text case
- {
- new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(INPUT);
-
- assertTrue("Show Input Dialog cancel w/o Text", jdo.isShowing());
-
- new JButtonOperator(jdo, CANCEL).push();
-
- assertFalse("Show Input Dialog cancel w/o Text", jdo.isShowing());
- }
+ useInputDialog(jfo, null, CANCEL);
+ //TODO: wait for no dialog displayed
// Text field has *NO* input
- {
- new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(INPUT);
-
- assertTrue("Show Input Dialog w/o Input", jdo.isShowing());
-
- new JButtonOperator(jdo, OK).push();
-
- assertFalse("Show Input Dialog w/o Input", jdo.isShowing());
- }
+ useInputDialog(jfo, null, OK);
+ //TODO: wait for no dialog displayed
// Text field has input
{
final String enteredText = "Rambo";
- new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(INPUT);
- JTextFieldOperator jto = new JTextFieldOperator(jdo);
- jto.setText(enteredText);
- new JButtonOperator(jdo, OK).pushNoBlock();
-
- JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
-
- assertTrue("Show Input Dialog w/ Input", jdo1.isShowing());
-
- final String labelText = enteredText + INPUT_RESPONSE;
- JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
- assertEquals("Text from the field made it into the dialog", labelText, jLabelOperator.getText());
-
- new JButtonOperator(jdo1, OK).push();
-
- assertFalse("Show Input Dialog w/ Input", jdo1.isShowing());
+ useInputDialog(jfo, enteredText, OK);
+ checkMessage(enteredText + INPUT_RESPONSE);
}
}
@@ -149,11 +130,9 @@
JDialogOperator jdo = new JDialogOperator(WARNING_TITLE);
- assertTrue("Show Warning Dialog", jdo.isShowing());
-
new JButtonOperator(jdo, OK).push();
- assertFalse("Show Warning Dialog", jdo.isShowing());
+ jdo.waitClosed();
}
public void showMessageDialog(JFrameOperator jfo) throws Exception {
@@ -161,105 +140,46 @@
JDialogOperator jdo = new JDialogOperator(MESSAGE);
- assertTrue("Show Message Dialog", jdo.isShowing());
-
new JButtonOperator(jdo, OK).push();
- assertFalse("Show Message Dialog", jdo.isShowing());
+ jdo.waitClosed();
+ }
+
+ private void callADialogAndClose(JFrameOperator jfo, String buttonToOpenDialog,
+ String dialogTitle, String buttonToPush) {
+ new JButtonOperator(jfo, buttonToOpenDialog).pushNoBlock();
+ JDialogOperator jdo = new JDialogOperator(dialogTitle);
+ new JButtonOperator(jdo, buttonToPush).push();
+ jdo.waitClosed();
}
public void showComponentDialog(JFrameOperator jfo) throws Exception {
// Case: Cancel
- {
- new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE);
-
- assertTrue("Show Component Dialog Cancel Option", jdo.isShowing());
-
- new JButtonOperator(jdo, COMPONENT_OP5).push();
-
- assertFalse("Show Component Dialog Cancel Option", jdo.isShowing());
- }
+ callADialogAndClose(jfo, COMPONENT_BUTTON, COMPONENT_TITLE, COMPONENT_OP5);
+ //TODO: wait for no dialog displayed
// Case: Yes option selected
{
- new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE);
- new JButtonOperator(jdo, COMPONENT_OP1).pushNoBlock();
-
- JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
-
- assertTrue("Component Dialog Example Yes Option", jdo1.isShowing());
-
- final String labelText = COMPONENT_R1;
- JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
- assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
-
- new JButtonOperator(jdo1, OK).push();
-
- assertFalse("Component Dialog Example Yes Option", jdo1.isShowing());
+ callADialogAndClose(jfo, COMPONENT_BUTTON, COMPONENT_TITLE, COMPONENT_OP1);
+ checkMessage(COMPONENT_R1);
}
// Case: No option selected
{
- new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE);
- new JButtonOperator(jdo, COMPONENT_OP2).pushNoBlock();
-
- JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
-
- assertTrue("Component Dialog Example No Option", jdo1.isShowing());
-
- final String labelText = COMPONENT_R2;
- JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
- assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
-
- new JButtonOperator(jdo1, OK).push();
-
- assertFalse("Component Dialog Example No Option", jdo1.isShowing());
+ callADialogAndClose(jfo, COMPONENT_BUTTON, COMPONENT_TITLE, COMPONENT_OP2);
+ checkMessage(COMPONENT_R2);
}
// Case: Maybe option selected
{
- new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE);
- new JButtonOperator(jdo, COMPONENT_OP3).pushNoBlock();
-
- JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
-
- assertTrue("Component Dialog Maybe Yes Option", jdo1.isShowing());
-
- final String labelText = COMPONENT_R3;
- JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
- assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
-
- new JButtonOperator(jdo1, OK).push();
-
- assertFalse("Component Dialog Maybe Yes Option", jdo1.isShowing());
+ callADialogAndClose(jfo, COMPONENT_BUTTON, COMPONENT_TITLE, COMPONENT_OP3);
+ checkMessage(COMPONENT_R3);
}
// Case: Probably option selected
{
- new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE);
- new JButtonOperator(jdo, COMPONENT_OP4).pushNoBlock();
-
- JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
-
- assertTrue("Component Dialog Example Probably Option", jdo1.isShowing());
-
- final String labelText = COMPONENT_R4;
- JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
- assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
-
- new JButtonOperator(jdo1, OK).push();
-
- assertFalse("Component Dialog Example Probably Option", jdo1.isShowing());
+ callADialogAndClose(jfo, COMPONENT_BUTTON, COMPONENT_TITLE, COMPONENT_OP4);
+ checkMessage(COMPONENT_R4);
}
// Case TextField and ComboBox functional
@@ -271,69 +191,35 @@
JTextFieldOperator jto = new JTextFieldOperator(jdo);
jto.clearText();
jto.typeText(TEXT_TO_TYPE);
+ jto.waitText(TEXT_TO_TYPE);
JComboBoxOperator jcbo = new JComboBoxOperator(jdo);
jcbo.selectItem(2);
+ jcbo.waitItemSelected(2);
- assertEquals("Show Component Dialog TextField", TEXT_TO_TYPE, jto.getText());
- assertEquals("Show Component Dialog ComboBox", 2, jcbo.getSelectedIndex());
-
- new JButtonOperator(jdo, "cancel").push();
+ new JButtonOperator(jdo, COMPONENT_OP5).push();
+ jdo.waitClosed();
+ //TODO: wait for no dialog displayed
}
}
public void showConfirmationDialog(JFrameOperator jfo) throws Exception {
// Case: Yes option selected
{
- new JButtonOperator(jfo, CONFIRM_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(SELECT_AN_OPTION);
- new JButtonOperator(jdo, YES).pushNoBlock();
-
- JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
-
- assertTrue("Show Confirmation Dialog Yes Option", jdo1.isShowing());
-
- final String labelText = CONFIRM_YES;
- JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
- assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
-
- new JButtonOperator(jdo1, OK).push();
-
- assertFalse("Show Confirmation Dialog Yes Option", jdo1.isShowing());
+ callADialogAndClose(jfo, CONFIRM_BUTTON, SELECT_AN_OPTION, YES);
+ checkMessage(CONFIRM_YES);
}
// Case: No option selected
{
- new JButtonOperator(jfo, CONFIRM_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(SELECT_AN_OPTION);
- new JButtonOperator(jdo, NO).pushNoBlock();
-
- JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
-
- assertTrue("Show Confirmation Dialog No Option", jdo1.isShowing());
-
- final String labelText = CONFIRM_NO;
- JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
- assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
-
- new JButtonOperator(jdo1, OK).push();
-
- assertFalse("Show Confirmation Dialog No Option", jdo1.isShowing());
+ callADialogAndClose(jfo, CONFIRM_BUTTON, SELECT_AN_OPTION, NO);
+ checkMessage(CONFIRM_NO);
}
// Case: Cancel option selected
{
- new JButtonOperator(jfo, CONFIRM_BUTTON).pushNoBlock();
-
- JDialogOperator jdo = new JDialogOperator(SELECT_AN_OPTION);
-
- assertTrue("Show Confirmation Dialog Cancel Option", jdo.isShowing());
-
- new JButtonOperator(jdo, CANCEL).push();
-
- assertFalse("Show Confirmation Dialog Cancel Option", jdo.isShowing());
+ callADialogAndClose(jfo, CONFIRM_BUTTON, SELECT_AN_OPTION, CANCEL);
+ //TODO: wait for no dialog displayed
}
}
--- a/jdk/test/sanity/client/SwingSet/src/ProgressBarDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/ProgressBarDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -43,6 +43,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.progressbar.ProgressBarDemo
* @run testng ProgressBarDemoTest
@@ -81,7 +83,6 @@
@Override
public boolean checkComponent(Component comp) {
int value = progressBar.getValue();
- System.out.println("checkComponent1 value = " + value);
return value < maximum;
}
@@ -98,7 +99,6 @@
@Override
public boolean checkComponent(Component comp) {
int value = progressBar.getValue();
- System.out.println("checkComponent2 value = " + value);
return value > 0;
}
--- a/jdk/test/sanity/client/SwingSet/src/ScrollPaneDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/ScrollPaneDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -40,6 +40,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.scrollpane.ScrollPaneDemo
* @run testng ScrollPaneDemoTest
--- a/jdk/test/sanity/client/SwingSet/src/SpinnerDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/SpinnerDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -42,6 +42,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.spinner.SpinnerDemo
* @run testng SpinnerDemoTest
--- a/jdk/test/sanity/client/SwingSet/src/SplitPaneDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/SplitPaneDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -21,22 +21,29 @@
* questions.
*/
-import org.jtregext.GuiTestListener;
import com.sun.swingset3.demos.splitpane.SplitPaneDemo;
import static com.sun.swingset3.demos.splitpane.SplitPaneDemo.*;
+
+import java.awt.Component;
import java.awt.event.KeyEvent;
import javax.swing.JSplitPane;
-import static org.testng.AssertJUnit.*;
-import org.testng.annotations.Test;
+
+import static org.jemmy2ext.JemmyExt.*;
+
+import org.jtregext.GuiTestListener;
+
import org.netbeans.jemmy.ClassReference;
+import org.netbeans.jemmy.ComponentChooser;
import org.netbeans.jemmy.operators.JButtonOperator;
import org.netbeans.jemmy.operators.JCheckBoxOperator;
import org.netbeans.jemmy.operators.JFrameOperator;
import org.netbeans.jemmy.operators.JRadioButtonOperator;
import org.netbeans.jemmy.operators.JSplitPaneOperator;
import org.netbeans.jemmy.operators.JTextFieldOperator;
-import static org.jemmy2ext.JemmyExt.*;
+
import org.testng.annotations.Listeners;
+import org.testng.annotations.Test;
+import static org.testng.AssertJUnit.*;
/*
* @test
@@ -48,6 +55,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.splitpane.SplitPaneDemo
* @run testng SplitPaneDemoTest
@@ -115,14 +124,33 @@
(splitPane.getMaximumDividerLocation() + splitPane.getMinimumDividerLocation()) / 2, splitPane.getDividerLocation());
}
+ private void waitDividerSize(JSplitPaneOperator splitPane, int size) {
+ splitPane.waitState(new ComponentChooser() {
+ public boolean checkComponent(Component c) {
+ return splitPane.getDividerSize() == size;
+ }
+ public String getDescription() {
+ return "Divider size to be " + size;
+ }
+ });
+ }
+
// Check changing the size of the divider
public void changeDividerSize(JFrameOperator frame, JSplitPaneOperator splitPane, int amount) throws Exception {
JTextFieldOperator size = new JTextFieldOperator(getLabeledContainerOperator(frame, DIVIDER_SIZE));
- size.clearText();
- size.typeText(Integer.toString(amount));
- size.pressKey(KeyEvent.VK_ENTER);
+ size.enterText(Integer.toString(amount));
+ waitDividerSize(splitPane, amount);
+ }
- assertEquals("Change Divider Size", amount, splitPane.getDividerSize());
+ private void waitDividerLocation(JSplitPaneOperator splitPane, int location) {
+ splitPane.waitState(new ComponentChooser() {
+ public boolean checkComponent(Component c) {
+ return splitPane.getDividerLocation() == location;
+ }
+ public String getDescription() {
+ return "Divider location to be " + location;
+ }
+ });
}
public void checkOneTouch(JFrameOperator frame, JSplitPaneOperator splitPane, boolean oneTouch) throws Exception {
@@ -144,23 +172,19 @@
// expand full left
buttonLeft.push();
- assertEquals("Expandable Left", left, splitPane.getDividerLocation());
+ waitDividerLocation(splitPane, left);
// expand back from full left
buttonRight.push();
- assertEquals("Expandable Back to Original from Left",
- initDividerLocation, splitPane.getDividerLocation());
+ waitDividerLocation(splitPane, initDividerLocation);
// expand all the way right
buttonRight.push();
- assertEquals("Expandable Right",
- splitPane.getWidth() - splitPane.getDividerSize() - right,
- splitPane.getDividerLocation());
+ waitDividerLocation(splitPane, splitPane.getWidth() - splitPane.getDividerSize() - right);
// Click to move back from right expansion
buttonLeft.push();
- assertEquals("Expandable Back to Original from Right",
- initDividerLocation, splitPane.getDividerLocation());
+ waitDividerLocation(splitPane, initDividerLocation);
}
// Test for case where one touch expandable is disabled
@@ -169,7 +193,14 @@
// uncheck
checkBox.doClick();
}
- assertFalse("One Touch Expandable Off", splitPane.isOneTouchExpandable());
+ splitPane.waitState(new ComponentChooser() {
+ public boolean checkComponent(Component c) {
+ return !splitPane.isOneTouchExpandable();
+ }
+ public String getDescription() {
+ return "Split pane not to be one touch expandable";
+ }
+ });
}
}
--- a/jdk/test/sanity/client/SwingSet/src/TabbedPaneDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/TabbedPaneDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -43,6 +43,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.tabbedpane.TabbedPaneDemo
* @run testng TabbedPaneDemoTest
@@ -69,9 +71,8 @@
for (int i = 0; i < tabTitles.length; i++) {
String pageTitle = tabTitles[i];
JTabbedPaneOperator tabOperator = new JTabbedPaneOperator(mainFrame);
+ tabOperator.setVerification(true);
tabOperator.selectPage(pageTitle);
-
- assertEquals("Selected tab is selected", i, tabOperator.getSelectedIndex());
}
}
--- a/jdk/test/sanity/client/SwingSet/src/TextFieldDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/TextFieldDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -21,20 +21,22 @@
* questions.
*/
-import org.jtregext.GuiTestListener;
import com.sun.swingset3.demos.textfield.JHistoryTextField;
import com.sun.swingset3.demos.textfield.TextFieldDemo;
import static com.sun.swingset3.demos.textfield.TextFieldDemo.*;
+
import java.awt.Color;
+import java.awt.Component;
import java.awt.event.KeyEvent;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import javax.swing.JFormattedTextField;
+
import static org.jemmy2ext.JemmyExt.*;
-import static org.testng.AssertJUnit.*;
-import org.testng.annotations.Test;
+
import org.netbeans.jemmy.ClassReference;
+import org.netbeans.jemmy.ComponentChooser;
import org.netbeans.jemmy.QueueTool;
import org.netbeans.jemmy.operators.ContainerOperator;
import org.netbeans.jemmy.operators.JButtonOperator;
@@ -42,7 +44,12 @@
import org.netbeans.jemmy.operators.JLabelOperator;
import org.netbeans.jemmy.operators.JPasswordFieldOperator;
import org.netbeans.jemmy.operators.JTextFieldOperator;
+
+import org.jtregext.GuiTestListener;
+
import org.testng.annotations.Listeners;
+import org.testng.annotations.Test;
+import static org.testng.AssertJUnit.*;
/*
* @test
@@ -53,6 +60,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.textfield.TextFieldDemo
* @run testng TextFieldDemoTest
@@ -95,9 +104,7 @@
// Check default date Day of the Week
jbo.push();
- assertEquals("Default DOW",
- calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.ENGLISH),
- dowLabel.getText());
+ dowLabel.waitText(calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.ENGLISH));
// Check Custom Day of the Week
calendar.set(2012, 9, 11); // Represents "Oct 11, 2012"
@@ -114,7 +121,7 @@
jtfo.enterText(dateString);
jbo.push();
- assertEquals("Custom DOW", "Thursday", dowLabel.getText());
+ dowLabel.waitText("Thursday");
}
public void passwordField(JFrameOperator jfo) throws Exception {
@@ -125,13 +132,27 @@
password2.typeText("password");
// Check Matching Passwords
- assertEquals("Matching Passwords", Color.green, password1.getBackground());
- assertEquals("Matching Passwords", Color.green, password2.getBackground());
+ password1.waitState(new ComponentChooser() {
+ public boolean checkComponent(Component comp) {
+ return password1.getBackground().equals(Color.green) &&
+ password2.getBackground().equals(Color.green);
+ }
+ public String getDescription() {
+ return "Passwords to match";
+ }
+ });
// Check non-matching passwords
password2.typeText("passwereertegrs");
- assertEquals("Non-Matching Passwords", Color.white, password1.getBackground());
- assertEquals("Non-Matching Passwords", Color.white, password2.getBackground());
+ password1.waitState(new ComponentChooser() {
+ public boolean checkComponent(Component comp) {
+ return password1.getBackground().equals(Color.white) &&
+ password2.getBackground().equals(Color.white);
+ }
+ public String getDescription() {
+ return "Passwords not to match";
+ }
+ });
}
}
--- a/jdk/test/sanity/client/SwingSet/src/ToggleButtonDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/ToggleButtonDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -56,6 +56,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.togglebutton.ToggleButtonDemo
* @run testng ToggleButtonDemoTest
@@ -125,12 +127,12 @@
}
for (int i = 0; i < radioButtonCount; i++) {
- jrbo[i].doClick();
- assertTrue("Radio Button " + i + " is selected", jrbo[i].isSelected());
+ jrbo[i].push();
+ jrbo[i].waitSelected(true);
for (int j = 0; j < radioButtonCount; j++) {
if (i != j) {
- assertFalse("Radio Button " + j + " is not selected", jrbo[j].isSelected());
+ jrbo[j].waitSelected(false);
}
}
}
@@ -146,23 +148,17 @@
*/
private void testCheckBox(ContainerOperator<?> parent, String text, boolean expectedValue) {
+ System.out.println("Testing " + text);
parent.setComparator(EXACT_STRING_COMPARATOR);
JCheckBoxOperator jcbo = new JCheckBoxOperator(parent, text);
- assertEquals("Initial selection state of the checkbox '" + text + "'", expectedValue, jcbo.isSelected());
+ jcbo.waitSelected(expectedValue);
// click check box (toggle the state)
- jcbo.doClick();
- assertEquals("Selection state of the checkbox '" + text + "' after click", !expectedValue, jcbo.isSelected());
- if (jcbo.isSelected()) {
- // toggle back to not-selected state
- jcbo.doClick();
- assertFalse("Check Box '" + text + "' is not selected", jcbo.isSelected());
- } else {
- // toggle back to selected state
- jcbo.doClick();
+ jcbo.push();
+ jcbo.waitSelected(!expectedValue);
- assertTrue("Check Box '" + text + "' is selected", jcbo.isSelected());
- }
+ jcbo.push();
+ jcbo.waitSelected(expectedValue);
}
--- a/jdk/test/sanity/client/SwingSet/src/TreeDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/TreeDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -21,16 +21,22 @@
* questions.
*/
-import org.jtregext.GuiTestListener;
import com.sun.swingset3.demos.tree.TreeDemo;
import static com.sun.swingset3.demos.tree.TreeDemo.DEMO_TITLE;
+
+import java.awt.Component;
import javax.swing.tree.TreePath;
-import static org.testng.AssertJUnit.*;
-import org.testng.annotations.Test;
+
+import org.jtregext.GuiTestListener;
+
import org.netbeans.jemmy.ClassReference;
+import org.netbeans.jemmy.ComponentChooser;
import org.netbeans.jemmy.operators.JFrameOperator;
import org.netbeans.jemmy.operators.JTreeOperator;
+
import org.testng.annotations.Listeners;
+import org.testng.annotations.Test;
+import static org.testng.AssertJUnit.*;
/*
* @test
@@ -45,6 +51,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.tree.TreeDemo
* @run testng TreeDemoTest
@@ -52,6 +60,20 @@
@Listeners(GuiTestListener.class)
public class TreeDemoTest {
+ private static final int NODES_TO_EXPAND = 75;
+ private static final int NODES_TOTAL = 616;
+
+ private void waitRowCount(JTreeOperator tree, int count) {
+ tree.waitState(new ComponentChooser() {
+ public boolean checkComponent(Component comp) {
+ return tree.getRowCount() == count;
+ }
+ public String getDescription() {
+ return "A tree to have " + count + " rows";
+ }
+ });
+ }
+
@Test
public void test() throws Exception {
@@ -75,9 +97,8 @@
}
}
- assertEquals("Number of rows expanded", 75, expandsCount);
- assertEquals("Number of rows in the tree after expanding all of them",
- 616, tree.getRowCount());
+ assertEquals("Number of rows expanded", NODES_TO_EXPAND, expandsCount);
+ waitRowCount(tree, NODES_TOTAL);
int expandedTreeHeight = tree.getHeight();
assertTrue("Expanded tree height has increased, current "
@@ -94,9 +115,8 @@
}
}
- assertEquals("Number of rows collapsed", 76, collapsesCount);
- assertEquals("Number of rows in the tree after collapsing all of them",
- 1, tree.getRowCount());
+ assertEquals("Number of rows collapsed", NODES_TO_EXPAND + 1, collapsesCount);
+ waitRowCount(tree, 1);
int collapsedTreeHeight = tree.getHeight();
assertTrue("Collpased tree height is not longer than initial, "
--- a/jdk/test/sanity/client/SwingSet/src/WindowDemoTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sanity/client/SwingSet/src/WindowDemoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -44,6 +44,8 @@
* @library /sanity/client/lib/jemmy/src
* @library /sanity/client/lib/Extensions/src
* @library /sanity/client/lib/SwingSet3/src
+ * @modules java.desktop
+ * java.logging
* @build org.jemmy2ext.JemmyExt
* @build com.sun.swingset3.demos.window.WindowDemo
* @run testng WindowDemoTest
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/awt/image/OffScreenImageSource/ImageFilterTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 8139192
+ * @summary Test to check OffScreenImageSource handles
+ * ImageFilter.imageComplete() behaviors
+ * @run main ImageFilterTest
+ */
+
+import java.awt.Image;
+import java.awt.Toolkit;
+import java.awt.image.BufferedImage;
+import java.awt.image.FilteredImageSource;
+import java.awt.image.ImageFilter;
+
+
+public class ImageFilterTest {
+
+ public static void main(String[] args) {
+ String[] scenarios = {
+ "SUCCESS",
+ "SINGLEFRAMEDONE exception",
+ "STATICIMAGEDONE exception"
+ };
+
+ for (String str : scenarios) {
+ MyImageFilter testFilter = new MyImageFilter(str);
+ test(testFilter);
+ }
+ }
+
+ public static void test(MyImageFilter testFilter) {
+ Image image = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB);
+ FilteredImageSource filtered =
+ new FilteredImageSource(image.getSource(), testFilter);
+
+ Image img = Toolkit.getDefaultToolkit().createImage(filtered);
+
+ BufferedImage buffImage = new BufferedImage(img.getWidth(null),
+ img.getHeight(null), BufferedImage.TYPE_INT_ARGB);
+ }
+}
+
+class MyImageFilter extends ImageFilter {
+
+ private String testScenario;
+ private boolean intermediateStatus;
+
+ public MyImageFilter(String scenario) {
+ super();
+
+ testScenario = scenario;
+ intermediateStatus = false;
+ }
+
+ @Override
+ public void imageComplete(int status) {
+ switch (testScenario) {
+ case "SUCCESS":
+ if (status == SINGLEFRAMEDONE) {
+ intermediateStatus = true;
+ }
+
+ if (status == STATICIMAGEDONE) {
+ if (!intermediateStatus) {
+ throw new RuntimeException("STATICIMAGEDONE is not expected");
+ }
+ }
+
+ if (status == IMAGEERROR) {
+ throw new RuntimeException("IMAGEERROR is not expected");
+ }
+ break;
+
+ case "SINGLEFRAMEDONE exception":
+ if (status == SINGLEFRAMEDONE) {
+ intermediateStatus = true;
+
+ throw new NullPointerException("NullPointerException for testing purpose");
+ }
+
+ if (status == IMAGEERROR) {
+ if (!intermediateStatus) {
+ throw new RuntimeException("IMAGEERROR is not expected");
+ }
+ }
+
+ if (status == STATICIMAGEDONE) {
+ throw new RuntimeException("STATICIMAGEDONE is not expected");
+ }
+ break;
+
+ case "STATICIMAGEDONE exception":
+ if (status == SINGLEFRAMEDONE) {
+ intermediateStatus = true;
+ }
+
+ if (status == STATICIMAGEDONE) {
+ if (intermediateStatus) {
+ throw new RuntimeException("RuntimeException for testing purpose");
+ }
+ }
+
+ if (status == IMAGEERROR) {
+ throw new RuntimeException("IMAGEERROR is not expected");
+ }
+ break;
+
+ default:
+ throw new RuntimeException("Invalid Test Scenario");
+ }
+ }
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/java2d/ClassCastExceptionForInvalidSurface.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,129 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.awt.Font;
+import java.awt.Graphics2D;
+import java.awt.GraphicsConfiguration;
+import java.awt.GraphicsEnvironment;
+import java.awt.Image;
+import java.awt.Rectangle;
+import java.awt.RenderingHints;
+import java.awt.font.FontRenderContext;
+import java.awt.font.GlyphVector;
+import java.awt.image.BufferedImage;
+import java.awt.image.VolatileImage;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.TimeUnit;
+
+import static java.awt.image.BufferedImage.TYPE_INT_ARGB;
+
+/**
+ * @test
+ * @bug 8158072 7172749
+ */
+public final class ClassCastExceptionForInvalidSurface {
+
+ static GraphicsEnvironment ge
+ = GraphicsEnvironment.getLocalGraphicsEnvironment();
+
+ static GraphicsConfiguration gc
+ = ge.getDefaultScreenDevice().getDefaultConfiguration();
+
+ static volatile VolatileImage vi = gc.createCompatibleVolatileImage(10, 10);
+
+ static volatile Throwable failed;
+
+ static BlockingQueue<VolatileImage> list = new ArrayBlockingQueue<>(50);
+
+ // Will run the test no more than 15 seconds
+ static long endtime = System.nanoTime() + TimeUnit.SECONDS.toNanos(15);
+
+ public static void main(final String[] args) throws InterruptedException {
+
+ // Catch all uncaught exceptions and treat them as test failure
+ Thread.setDefaultUncaughtExceptionHandler((t, e) -> failed = e);
+
+ // Data for rendering
+ BufferedImage bi = new BufferedImage(10, 10, TYPE_INT_ARGB);
+ FontRenderContext frc = new FontRenderContext(null, false, false);
+ Font font = new Font("Serif", Font.PLAIN, 12);
+ GlyphVector gv = font.createGlyphVector(frc, new char[]{'a', '1'});
+
+ Thread t1 = new Thread(() -> {
+ while (!isComplete()) {
+ vi = gc.createCompatibleVolatileImage(10, 10);
+ if (!list.offer(vi)) {
+ vi.flush();
+ }
+ }
+ list.forEach(Image::flush);
+ });
+ Thread t2 = new Thread(() -> {
+ while (!isComplete()) {
+ VolatileImage vi = list.poll();
+ if (vi != null) {
+ vi.flush();
+ }
+ }
+ });
+
+ Thread t3 = new Thread(() -> {
+ while (!isComplete()) {
+ vi.createGraphics().drawImage(bi, 1, 1, null);
+ }
+ });
+ Thread t4 = new Thread(() -> {
+ while (!isComplete()) {
+ vi.createGraphics().drawGlyphVector(gv, 0, 0);
+ vi.createGraphics().drawOval(0, 0, 10, 10);
+ vi.createGraphics().drawLine(0, 0, 10, 10);
+ vi.createGraphics().drawString("123", 1, 1);
+ vi.createGraphics().draw(new Rectangle(0, 0, 10, 10));
+ vi.createGraphics().fillOval(0, 0, 10, 10);
+ final Graphics2D graphics = vi.createGraphics();
+ graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_ON);
+ graphics.fillPolygon(new int[] {0, 10, 10, 0},
+ new int [] {0, 0, 10, 10}, 4);
+ }
+ });
+ t1.start();
+ t2.start();
+ t3.start();
+ t4.start();
+ t1.join();
+ t2.join();
+ t3.join();
+ t4.join();
+
+ if (failed != null) {
+ System.err.println("Test failed");
+ failed.printStackTrace();
+ }
+ }
+
+ private static boolean isComplete() {
+ return endtime - System.nanoTime() < 0 || failed != null;
+ }
+}
--- a/jdk/test/sun/security/tools/jarsigner/concise_jarsigner.sh Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sun/security/tools/jarsigner/concise_jarsigner.sh Thu Jun 16 20:56:45 2016 +0000
@@ -25,7 +25,7 @@
# @bug 6802846
# @summary jarsigner needs enhanced cert validation(options)
#
-# @run shell concise_jarsigner.sh
+# @run shell/timeout=240 concise_jarsigner.sh
#
if [ "${TESTJAVA}" = "" ] ; then
--- a/jdk/test/sun/tools/jhsdb/BasicLauncherTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sun/tools/jhsdb/BasicLauncherTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -146,6 +146,16 @@
launch(expectedMessage, Arrays.asList(toolArgs));
}
+ public static void launchNotOSX(String expectedMessage, String... toolArgs)
+ throws IOException {
+
+ if (Platform.isOSX()) {
+ // Coredump stackwalking is not implemented for Darwin
+ System.out.println("This test is not expected to work on OS X. Skipping");
+ return;
+ }
+ }
+
public static void testHeapDump() throws IOException {
File dump = new File("jhsdb.jmap.dump." +
System.currentTimeMillis() + ".hprof");
@@ -172,7 +182,7 @@
launchCLHSDB();
- launch("No deadlocks found", "jstack");
+ launchNotOSX("No deadlocks found", "jstack");
launch("compiler detected", "jmap");
launch("Java System Properties", "jinfo");
launch("java.threads", "jsnap");
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/tools/jinfo/JInfoTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.io.IOException;
+
+import jdk.test.lib.JDKToolLauncher;
+import jdk.test.lib.process.OutputAnalyzer;
+import jdk.test.lib.process.ProcessTools;
+import jdk.test.lib.apps.LingeredApp;
+
+/*
+ * @test
+ * @summary Unit test for jinfo utility
+ * @modules java.base/jdk.internal.misc
+ * @library /test/lib/share/classes
+ * @build jdk.test.lib.*
+ * @build jdk.test.lib.apps.*
+ * @build jdk.test.lib.process.*
+ * @run main JInfoTest
+ */
+public class JInfoTest {
+
+ private static ProcessBuilder processBuilder = new ProcessBuilder();
+
+ public static void main(String[] args) throws Exception {
+ classNameMatch();
+ setMultipleFlags();
+ setFlag();
+ }
+
+ private static void setFlag() throws Exception {
+ System.out.println("#### setFlag ####");
+ LingeredApp app1 = new JInfoTestLingeredApp();
+ LingeredApp app2 = new JInfoTestLingeredApp();
+ try {
+ ArrayList<String> params = new ArrayList<String>();
+ LingeredApp.startApp(params, app1);
+ LingeredApp.startApp(params, app2);
+ OutputAnalyzer output = jinfo("-flag", "MinHeapFreeRatio=1", "JInfoTestLingeredApp");
+ output.shouldHaveExitValue(0);
+ output = jinfo("-flag", "MinHeapFreeRatio", "JInfoTestLingeredApp");
+ output.shouldHaveExitValue(0);
+ documentMatch(output.getStdout(), ".*MinHeapFreeRatio=1.*MinHeapFreeRatio=1.*");
+ } finally {
+ JInfoTestLingeredApp.stopApp(app1);
+ JInfoTestLingeredApp.stopApp(app2);
+ }
+ }
+
+ private static void setMultipleFlags() throws Exception {
+ System.out.println("#### setMultipleFlags ####");
+ OutputAnalyzer output = jinfo("-sysprops", "-flag", "MinHeapFreeRatio=1", "-flags", "JInfoTestLingeredApp");
+ output.shouldHaveExitValue(1);
+ }
+
+ private static void classNameMatch() throws Exception {
+ System.out.println("#### classNameMatch ####");
+ LingeredApp app1 = new JInfoTestLingeredApp();
+ LingeredApp app2 = new JInfoTestLingeredApp();
+ try {
+ ArrayList<String> params = new ArrayList<String>();
+ LingeredApp.startApp(params, app1);
+ LingeredApp.startApp(params, app2);
+ OutputAnalyzer output = jinfo("JInfoTestLingeredApp");
+ output.shouldHaveExitValue(0);
+ // "HotSpot(TM)" written once per proc
+ documentMatch(output.getStdout(), ".*HotSpot\\(TM\\).*HotSpot\\(TM\\).*");
+ } finally {
+ JInfoTestLingeredApp.stopApp(app1);
+ JInfoTestLingeredApp.stopApp(app2);
+ }
+ }
+
+ private static void documentMatch(String data, String pattern){
+ Matcher matcher = Pattern.compile(pattern, Pattern.DOTALL).matcher(data);
+ if (!matcher.find()) {
+ throw new RuntimeException("'" + pattern + "' missing from stdout \n");
+ }
+ }
+
+ private static OutputAnalyzer jinfo(String... toolArgs) throws Exception {
+ JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jinfo");
+ if (toolArgs != null) {
+ for (String toolArg : toolArgs) {
+ launcher.addToolArg(toolArg);
+ }
+ }
+
+ processBuilder.command(launcher.getCommand());
+ OutputAnalyzer output = ProcessTools.executeProcess(processBuilder);
+
+ return output;
+ }
+}
+
+// Sometime there is LingeredApp's from other test still around
+class JInfoTestLingeredApp extends LingeredApp {
+}
+
--- a/jdk/test/sun/tools/jps/TestJpsSanity.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/sun/tools/jps/TestJpsSanity.java Thu Jun 16 20:56:45 2016 +0000
@@ -23,15 +23,17 @@
import jdk.testlibrary.Asserts;
import jdk.testlibrary.OutputAnalyzer;
+import jdk.test.lib.apps.LingeredApp;
/*
* @test
* @summary This test verifies jps usage and checks that appropriate error message is shown
* when running jps with illegal arguments.
- * @library /lib/testlibrary
+ * @library /lib/testlibrary /test/lib/share/classes
* @modules jdk.jartool/sun.tools.jar
* java.management
- * @build jdk.testlibrary.* JpsHelper
+ * java.base/jdk.internal.misc
+ * @build jdk.testlibrary.* jdk.test.lib.apps.* JpsHelper
* @run driver TestJpsSanity
*/
public class TestJpsSanity {
@@ -40,6 +42,42 @@
testJpsUsage();
testJpsVersion();
testJpsUnknownHost();
+ testJpsShort();
+ testJpsLong();
+ testJpsShortPkg();
+ testJpsLongPkg();
+ }
+
+ private static void testJpsShort() throws Exception {
+ OutputAnalyzer output = JpsHelper.jps();
+ output.shouldMatch("^[0-9]+ Jps$");
+ }
+
+ private static void testJpsLong() throws Exception {
+ OutputAnalyzer output = JpsHelper.jps("-l");
+ output.shouldMatch("^[0-9]+ jdk\\.jcmd/sun\\.tools\\.jps\\.Jps$");
+ }
+
+ private static void testJpsShortPkg() throws Exception {
+ LingeredApp app = null;
+ try {
+ app = LingeredApp.startApp();
+ OutputAnalyzer output = JpsHelper.jps();
+ output.shouldMatch("^[0-9]+ LingeredApp$");
+ } finally {
+ LingeredApp.stopApp(app);
+ }
+ }
+
+ private static void testJpsLongPkg() throws Exception {
+ LingeredApp app = null;
+ try {
+ app = LingeredApp.startApp();
+ OutputAnalyzer output = JpsHelper.jps("-l");
+ output.shouldMatch("^[0-9]+ jdk\\.test\\.lib\\.apps\\.LingeredApp$");
+ } finally {
+ LingeredApp.stopApp(app);
+ }
}
private static void testJpsUsage() throws Exception {
--- a/jdk/test/tools/jlink/JLinkOptimTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/tools/jlink/JLinkOptimTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -332,17 +332,6 @@
helper.checkImage(imageDir, "optim1", null, null);
}
- /*{
- Path dir = Paths.get("dir.log");
- Files.createDirectory(dir);
- String[] userOptions = {"--class-optim=all:log=" + dir.toString()};
- helper.generateDefaultImage(userOptions, "optim1")
- .assertFailure("java.io.FileNotFoundException: dir.log (Is a directory)");
- }*/
- /*{
- String[] userOptions = {"--class-optim", "UNKNOWN"};
- helper.generateDefaultImage(userOptions, "optim1").assertFailure("Unknown optimization");
- }*/
{
String[] userOptions = {"--class-optim=forName-folding:log=./class-optim-log.txt"};
Path imageDir = helper.generateDefaultImage(userOptions, "optim1").assertSuccess();
--- a/jdk/test/tools/jlink/plugins/CompressorPluginTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/tools/jlink/plugins/CompressorPluginTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -103,13 +103,12 @@
// compress == ZIP + String sharing + filter
options.setProperty(DefaultCompressPlugin.FILTER,
- "*Exception.class,^*IOException.class");
+ "**Exception.class");
checkCompress(classes, new DefaultCompressPlugin(), options,
new ResourceDecompressorFactory[]{
new ZipDecompressorFactory(),
new StringSharingDecompressorFactory()
- }, Collections.singletonList(".*Exception.class"),
- Collections.singletonList(".*IOException.class"));
+ }, Collections.singletonList(".*Exception.class"));
// compress level 1 == ZIP
Properties options1 = new Properties();
@@ -123,13 +122,12 @@
// compress level 1 == ZIP
options1.setProperty(DefaultCompressPlugin.FILTER,
- "*Exception.class,^*IOException.class");
+ "**Exception.class");
checkCompress(classes, new DefaultCompressPlugin(),
options1,
new ResourceDecompressorFactory[]{
new ZipDecompressorFactory()
- }, Collections.singletonList(".*Exception.class"),
- Collections.singletonList(".*IOException.class"));
+ }, Collections.singletonList(".*Exception.class"));
// compress level 2 == ZIP + String sharing
Properties options2 = new Properties();
@@ -144,14 +142,13 @@
// compress level 2 == ZIP + String sharing + filter
options2.setProperty(DefaultCompressPlugin.FILTER,
- "*Exception.class,^*IOException.class");
+ "**Exception.class");
checkCompress(classes, new DefaultCompressPlugin(),
options2,
new ResourceDecompressorFactory[]{
new ZipDecompressorFactory(),
new StringSharingDecompressorFactory()
- }, Collections.singletonList(".*Exception.class"),
- Collections.singletonList(".*IOException.class"));
+ }, Collections.singletonList(".*Exception.class"));
// compress level 0 == String sharing
Properties options0 = new Properties();
@@ -164,13 +161,12 @@
// compress level 0 == String sharing + filter
options0.setProperty(DefaultCompressPlugin.FILTER,
- "*Exception.class,^*IOException.class");
+ "**Exception.class");
checkCompress(classes, new DefaultCompressPlugin(),
options0,
new ResourceDecompressorFactory[]{
new StringSharingDecompressorFactory()
- }, Collections.singletonList(".*Exception.class"),
- Collections.singletonList(".*IOException.class"));
+ }, Collections.singletonList(".*Exception.class"));
}
private ModulePool gatherResources(Path module) throws Exception {
@@ -226,23 +222,19 @@
private void checkCompress(ModulePool resources, Plugin prov,
Properties config,
ResourceDecompressorFactory[] factories) throws Exception {
- checkCompress(resources, prov, config, factories, Collections.emptyList(), Collections.emptyList());
+ checkCompress(resources, prov, config, factories, Collections.emptyList());
}
private void checkCompress(ModulePool resources, Plugin prov,
Properties config,
ResourceDecompressorFactory[] factories,
- List<String> includes,
- List<String> excludes) throws Exception {
+ List<String> includes) throws Exception {
long[] original = new long[1];
long[] compressed = new long[1];
resources.entries().forEach(resource -> {
List<Pattern> includesPatterns = includes.stream()
.map(Pattern::compile)
.collect(Collectors.toList());
- List<Pattern> excludesPatterns = excludes.stream()
- .map(Pattern::compile)
- .collect(Collectors.toList());
Map<String, String> props = new HashMap<>();
if (config != null) {
@@ -267,10 +259,10 @@
}
});
inputResources.add(resource);
- ModulePool compressedResources = applyCompressor(prov, inputResources, resource, includesPatterns, excludesPatterns);
+ ModulePool compressedResources = applyCompressor(prov, inputResources, resource, includesPatterns);
original[0] += resource.getLength();
compressed[0] += compressedResources.findEntry(resource.getPath()).get().getLength();
- applyDecompressors(factories, inputResources, compressedResources, strings, includesPatterns, excludesPatterns);
+ applyDecompressors(factories, inputResources, compressedResources, strings, includesPatterns);
});
String compressors = Stream.of(factories)
.map(Object::getClass)
@@ -286,8 +278,7 @@
private ModulePool applyCompressor(Plugin plugin,
ModulePoolImpl inputResources,
ModuleEntry res,
- List<Pattern> includesPatterns,
- List<Pattern> excludesPatterns) {
+ List<Pattern> includesPatterns) {
TransformerPlugin compressor = (TransformerPlugin) plugin;
ModulePool compressedModulePool = new ModulePoolImpl(ByteOrder.nativeOrder(), inputResources.getStringTable());
compressor.visit(inputResources, compressedModulePool);
@@ -295,7 +286,7 @@
ModuleEntry compressed = compressedModulePool.findEntry(path).get();
CompressedResourceHeader header
= CompressedResourceHeader.readFromResource(ByteOrder.nativeOrder(), compressed.getBytes());
- if (isIncluded(includesPatterns, excludesPatterns, path)) {
+ if (isIncluded(includesPatterns, path)) {
if (header == null) {
throw new AssertionError("Path should be compressed: " + path);
}
@@ -317,14 +308,13 @@
ModulePool inputResources,
ModulePool compressedResources,
Map<Integer, String> strings,
- List<Pattern> includesPatterns,
- List<Pattern> excludesPatterns) {
+ List<Pattern> includesPatterns) {
compressedResources.entries().forEach(compressed -> {
CompressedResourceHeader header = CompressedResourceHeader.readFromResource(
ByteOrder.nativeOrder(), compressed.getBytes());
String path = compressed.getPath();
ModuleEntry orig = inputResources.findEntry(path).get();
- if (!isIncluded(includesPatterns, excludesPatterns, path)) {
+ if (!isIncluded(includesPatterns, path)) {
return;
}
byte[] decompressed = compressed.getBytes();
@@ -352,9 +342,8 @@
});
}
- private boolean isIncluded(List<Pattern> includesPatterns, List<Pattern> excludesPatterns, String path) {
- return !excludesPatterns.stream().anyMatch((pattern) -> pattern.matcher(path).matches())
- && (includesPatterns.isEmpty()
- || includesPatterns.stream().anyMatch((pattern) -> pattern.matcher(path).matches()));
+ private boolean isIncluded(List<Pattern> includesPatterns, String path) {
+ return includesPatterns.isEmpty() ||
+ includesPatterns.stream().anyMatch((pattern) -> pattern.matcher(path).matches());
}
}
--- a/jdk/test/tools/jlink/plugins/ExcludeFilesPluginTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/tools/jlink/plugins/ExcludeFilesPluginTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -48,23 +48,23 @@
}
public void test() throws Exception {
- checkFiles("*.jcov", "num/toto.jcov", "", true);
- checkFiles("*.jcov", "/toto.jcov", "", true);
- checkFiles("*.jcov", "toto.jcov/tutu/tata", "", false);
+ checkFiles("**.jcov", "num/toto.jcov", "", true);
+ checkFiles("**.jcov", "/toto.jcov", "", true);
+ checkFiles("**.jcov", "toto.jcov/tutu/tata", "", false);
checkFiles("/java.base/*.jcov", "toto.jcov", "java.base", true);
checkFiles("/java.base/toto.jcov", "iti.jcov", "t/java.base", false);
checkFiles("/java.base/*/toto.jcov", "toto.jcov", "java.base", false);
checkFiles("/java.base/*/toto.jcov", "tutu/toto.jcov", "java.base", true);
- checkFiles("*/java.base/*/toto.jcov", "java.base/tutu/toto.jcov", "/tutu", true);
+ checkFiles("**/java.base/*/toto.jcov", "java.base/tutu/toto.jcov", "/tutu", true);
- checkFiles("/*$*.properties", "tutu/Toto$Titi.properties", "java.base", true);
- checkFiles("*$*.properties", "tutu/Toto$Titi.properties", "java.base", true);
+ checkFiles("/**$*.properties", "tutu/Toto$Titi.properties", "java.base", true);
+ checkFiles("**$*.properties", "tutu/Toto$Titi.properties", "java.base", true);
// Excluded files list in a file
File order = new File("files.exc");
order.createNewFile();
- Files.write(order.toPath(), "*.jcov".getBytes());
- checkFiles(order.getAbsolutePath(), "/num/toto.jcov", "", true);
+ Files.write(order.toPath(), "**.jcov".getBytes());
+ checkFiles("@" + order.getAbsolutePath(), "/num/toto.jcov", "", true);
}
public void checkFiles(String s, String sample, String module, boolean exclude) throws Exception {
--- a/jdk/test/tools/jlink/plugins/ExcludePluginTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/tools/jlink/plugins/ExcludePluginTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -47,27 +47,27 @@
}
public void test() throws Exception {
- check("*.jcov", "/num/toto.jcov", true);
- check("*.jcov", "//toto.jcov", true);
- check("*.jcov", "/toto.jcov/tutu/tata", false);
+ check("**.jcov", "/num/toto.jcov", true);
+ check("**.jcov", "//toto.jcov", true);
+ check("**.jcov", "/toto.jcov/tutu/tata", false);
check("/java.base/*.jcov", "/java.base/toto.jcov", true);
check("/java.base/toto.jcov", "t/java.base/iti.jcov", false);
check("/java.base/*/toto.jcov", "/java.base/toto.jcov", false);
check("/java.base/*/toto.jcov", "/java.base/tutu/toto.jcov", true);
- check("*/java.base/*/toto.jcov", "/tutu/java.base/tutu/toto.jcov", true);
- check("*/META-INF/*", "/META-INF/services/ MyProvider ", false);
- check("*/META-INF/*", "/META-INF/services/MyProvider", false);
- check("*/META-INF", " /META-INF/services/MyProvider", false);
- check("*/META-INF/*", "/java.base//META-INF/services/MyProvider", true);
+ check("**/java.base/*/toto.jcov", "/tutu/java.base/tutu/toto.jcov", true);
+ check("/META-INF/**", "/META-INF/services/ MyProvider ", true);
+ check("/META-INF/**", "/META-INF/services/MyProvider", true);
+ check("**/META-INF", " /META-INF/services/MyProvider", false);
+ check("**/META-INF/**", "/java.base//META-INF/services/MyProvider", true);
check("/java.base/*/Toto$Titi.class", "/java.base/tutu/Toto$Titi.class", true);
- check("/*$*.class", "/java.base/tutu/Toto$Titi.class", true);
- check("*$*.class", "/java.base/tutu/Toto$Titi.class", true);
+ check("/**$**.class", "/java.base/tutu/Toto$Titi.class", true);
+ check("**$**.class", "/java.base/tutu/Toto$Titi.class", true);
// Excluded resource list in a file
File order = new File("resources.exc");
order.createNewFile();
- Files.write(order.toPath(), "*.jcov".getBytes());
- check(order.getAbsolutePath(), "/num/toto.jcov", true);
+ Files.write(order.toPath(), "**.jcov".getBytes());
+ check("@" + order.getAbsolutePath(), "/num/toto.jcov", true);
}
public void check(String s, String sample, boolean exclude) throws Exception {
--- a/jdk/test/tools/jlink/plugins/OrderResourcesPluginTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/tools/jlink/plugins/OrderResourcesPluginTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -92,7 +92,7 @@
{
ModulePool out = new ModulePoolImpl();
Map<String, String> config = new HashMap<>();
- config.put(OrderResourcesPlugin.NAME, "/zazou/*,*/module-info.class");
+ config.put(OrderResourcesPlugin.NAME, "/zazou/**,**/module-info.class");
TransformerPlugin p = new OrderResourcesPlugin();
p.configure(config);
p.visit(resources, out);
--- a/jdk/test/tools/jlink/plugins/ResourceFilterTest.java Thu Jun 16 19:07:28 2016 +0000
+++ b/jdk/test/tools/jlink/plugins/ResourceFilterTest.java Thu Jun 16 20:56:45 2016 +0000
@@ -24,13 +24,13 @@
/*
* @test
* @summary Test ResourceFilter class
- * @author Jean-Francois Denise
* @modules jdk.jlink/jdk.tools.jlink.internal.plugins
* @run main ResourceFilterTest
*/
import java.io.File;
import java.nio.file.Files;
+import java.util.Arrays;
import jdk.tools.jlink.internal.plugins.ResourceFilter;
public class ResourceFilterTest {
@@ -41,14 +41,16 @@
public void test() throws Exception {
String[] samples = {"toto.jcov", "/module/META-INF/services/MyProvider"};
- String[] patterns = {"*.jcov", "*/META-INF/*"};
- ResourceFilter rf = new ResourceFilter(patterns);
+ String[] patterns = {"*.jcov", "**/META-INF/**",
+ "glob:*.jcov", "glob:**/META-INF/**",
+ "regex:.*\\.jcov", "regex:.*/META-INF/.*"};
+ ResourceFilter rf = ResourceFilter.includeFilter(Arrays.asList(patterns));
for (String s : samples) {
if (!rf.test(s)) {
throw new Exception("Sample " + s + "not accepted");
}
}
- ResourceFilter rf2 = new ResourceFilter(patterns, true);
+ ResourceFilter rf2 = ResourceFilter.excludeFilter(Arrays.asList(patterns));
for (String s : samples) {
if (rf2.test(s)) {
throw new Exception("Sample " + s + " accepted");
@@ -64,14 +66,14 @@
}
Files.write(resources.toPath(), builder.toString().getBytes());
- String[] input = {resources.getAbsolutePath()};
- ResourceFilter rf3 = new ResourceFilter(input);
+ String[] input = {"@" + resources.getAbsolutePath()};
+ ResourceFilter rf3 = ResourceFilter.includeFilter(Arrays.asList(input));
for (String s : samples) {
if (!rf3.test(s)) {
throw new Exception("Sample " + s + "not accepted");
}
}
- ResourceFilter rf4 = new ResourceFilter(input, true);
+ ResourceFilter rf4 = ResourceFilter.excludeFilter(Arrays.asList(input));
for (String s : samples) {
if (rf4.test(s)) {
throw new Exception("Sample " + s + " accepted");