/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
void draw();
}
public void draw(){
System.
out.
println("Drawing Rectangle."); }
}
class Triangle
implements Shape{ public void draw(){
System.
out.
println("Drawing Triangle."); }
}
class Circle
implements Shape{ public void draw(){
System.
out.
println("Drawing Circle."); }
}
class RandomShapeFactory{
public static Shape createRandomShape
(){
int randomNo = random.nextInt() % 3 + 1;
if (randomNo == 1){
}
else if (randomNo == 2){
randomShape = new Triangle();
}
else{
randomShape = new Circle();
}
return randomShape;
}
}
class Main{
public static void main
(String[] args
){ for (int i = 0; i < shapes.length; i++){
shapes[i] = RandomShapeFactory.createRandomShape();
}
drawAllShapes(shapes);
}
public static void drawAllShapes
(Shape[] shapes
){ for (int i = 0; i < shapes.length; i++){
shapes[i].draw();
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbnRlcmZhY2UgU2hhcGV7CiAgICB2b2lkIGRyYXcoKTsKfQoKY2xhc3MgUmVjdGFuZ2xlIGltcGxlbWVudHMgU2hhcGV7CiAgICBwdWJsaWMgdm9pZCBkcmF3KCl7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEcmF3aW5nIFJlY3RhbmdsZS4iKTsKICAgIH0KfQoKY2xhc3MgVHJpYW5nbGUgaW1wbGVtZW50cyBTaGFwZXsKICAgIHB1YmxpYyB2b2lkIGRyYXcoKXsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRyYXdpbmcgVHJpYW5nbGUuIik7CiAgICB9Cn0KCmNsYXNzIENpcmNsZSBpbXBsZW1lbnRzIFNoYXBlewogICAgcHVibGljIHZvaWQgZHJhdygpewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRHJhd2luZyBDaXJjbGUuIik7CiAgICB9Cn0KCmNsYXNzIFJhbmRvbVNoYXBlRmFjdG9yeXsKCXB1YmxpYyBzdGF0aWMgU2hhcGUgY3JlYXRlUmFuZG9tU2hhcGUoKXsKCQkKCQlTaGFwZSByYW5kb21TaGFwZTsKCQkKCQlSYW5kb20gcmFuZG9tID0gbmV3IFJhbmRvbSgpOwoJCWludCByYW5kb21ObyA9IHJhbmRvbS5uZXh0SW50KCkgJSAzICsgMTsKCQlpZiAocmFuZG9tTm8gPT0gMSl7CgkJCXJhbmRvbVNoYXBlID0gbmV3IFJlY3RhbmdsZSgpOwoJCX0KCQllbHNlIGlmIChyYW5kb21ObyA9PSAyKXsKCQkJcmFuZG9tU2hhcGUgPSBuZXcgVHJpYW5nbGUoKTsKCQl9CgkJZWxzZXsKCQkJcmFuZG9tU2hhcGUgPSBuZXcgQ2lyY2xlKCk7CgkJfQoJCQoJCXJldHVybiByYW5kb21TaGFwZTsKCX0KfQoKY2xhc3MgTWFpbnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpewoJCVNoYXBlW10gc2hhcGVzID0gbmV3IFNoYXBlWzEwXTsKCQlmb3IgKGludCBpID0gMDsgaSA8IHNoYXBlcy5sZW5ndGg7IGkrKyl7CgkJCXNoYXBlc1tpXSA9IFJhbmRvbVNoYXBlRmFjdG9yeS5jcmVhdGVSYW5kb21TaGFwZSgpOwoJCX0KCQlkcmF3QWxsU2hhcGVzKHNoYXBlcyk7Cgl9CgkKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBkcmF3QWxsU2hhcGVzKFNoYXBlW10gc2hhcGVzKXsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNoYXBlcy5sZW5ndGg7IGkrKyl7CiAgICAgICAgICAgIHNoYXBlc1tpXS5kcmF3KCk7CiAgICAgICAgfQogICAgfQp9