// exceptions

class Main {
    static public void main(String[] args) /*throws Exception*/ {
	try {
	    C o;
	    if (true || false) {
		o = null;
	    }
	    else {
		o = new C();
	    }

	    o.m(); // throw site 1
	    throw new ClassCastException(); // throw site 5
		
	}
	catch (NullPointerException e) {
	    // e should point to two throw sites 1 and 2
	}
	catch (RuntimeException f) {
	    // f should point to throw sites 3 and 4 and 5
	}
	
    }
}

class C {
    void m() {
	C o = true ? null : new C();
	o.n(); // throw site 2
	if (true || false) {
	    throw new ClassCastException(); // throw site 3
	}
	else {
	    throw new RuntimeException(); // throw site 4
	}
    }
    void n() {
    }
}