diff --git a/__tests__/benchmark.test.js b/__tests__/benchmark.test.js new file mode 100644 index 0000000000000000000000000000000000000000..e596b817c99cb0b41083923f67057d40286c7311 --- /dev/null +++ b/__tests__/benchmark.test.js @@ -0,0 +1,1873 @@ +import { connect } from "../src/room.js" + +import MockConnection, { + getUserID, + getPeerHandle, + getPeerFootprint, + send, + broadcast, + terminatePeer, + destructor, + addEventListener, +} from "../src/connection/MockConnection.js" + +describe("drawing app mesh", () => { + beforeEach(() => { + getUserID.mockClear() + getPeerHandle.mockClear() + getPeerFootprint.mockClear() + send.mockClear() + broadcast.mockClear() + terminatePeer.mockClear() + destructor.mockClear() + addEventListener.mockClear() + MockConnection.mockClear() + }) + + it("works with a MockConnection", async () => { + const room = await connect("test", MockConnection) + + const dotID = room.addPath([209, 88, 5.000000000000001, "#0000ff"]) + + room.extendErasureIntervals(dotID, 0, 0, 0) + + const pathID = room.addPath([229, 147, 5.000000000000001, "#0000ff"]) + room.extendPath(pathID, [239, 149, 5.000000000000001, "#0000ff"]) + room.extendPath(pathID, [265, 154, 5.000000000000001, "#0000ff"]) + room.extendPath(pathID, [329, 158, 5.000000000000001, "#0000ff"]) + room.extendPath(pathID, [428, 168, 5.000000000000001, "#0000ff"]) + room.extendPath(pathID, [559, 172, 5.000000000000001, "#0000ff"]) + room.extendPath(pathID, [689, 176, 5.000000000000001, "#0000ff"]) + room.extendPath(pathID, [789, 176, 5.000000000000001, "#0000ff"]) + room.extendPath(pathID, [871, 178, 5.000000000000001, "#0000ff"]) + room.extendPath(pathID, [915, 179, 5.000000000000001, "#0000ff"]) + room.extendPath(pathID, [937, 179, 5.000000000000001, "#0000ff"]) + room.extendPath(pathID, [942, 179, 5.000000000000001, "#0000ff"]) + + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 0.030367582231477598) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 0.21377102974828613) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 0.2537463508623564) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 0.34615384615384587) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 0.4383613354449363) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 0.5303675822314777) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 0.6221712759429692) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 0.7137710297482863) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 0.8051653782004998) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 0.9383613354449363) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.011716311379342382) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.11776520948773353) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.24006055181058228) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.3107159148890084) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.3810746303975673) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.4329788671985464) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.46835801309405006) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.5036636541863274) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.5740522382479196) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.6441399664465288) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.731854882371686) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.8021237085400632) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.8371448744989799) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.88955025220044) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 0.9599984343180302) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.028177027652500065) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.03543420592413073) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.06582991759489924) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.10275381734879) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.11799692411252251) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.13323648198760243) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.16370490408198182) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.2154080009026301) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.24595364724469834) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.27648544742767633) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.31247481764398494) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.3478072470007028) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.3785134252130592) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.3938616312677431) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.42869266182685783) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.44408271983476183) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.4594695941376009) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.4902337694168022) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.505611059005356) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.5246181146997148) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.5400397300348875) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.6047746406708809) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.6202304708442001) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.6356832087546725) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.6535687967630837) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.7000469301249926) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.7155335204468358) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.7484433368793898) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.8415551828545537) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.8896745156013701) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.9207665061568425) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.9518463520584276) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 0.9840324922550672) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.01983903263791853) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.029876622283678104) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.03990912701215377) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.0806437862168895) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.09070123866218649) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.10101007524615979) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.11110799523965204) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.12120077057322706) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.13128840847448436) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.15144829885129574) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.16152056375068494) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.1818098260284825) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.20202009896967427) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.21211750416023725) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.2727084630640253) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.29292802997685985) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.3030300711783685) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.33330532017010783) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.3636029076253441) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.37371993253130364) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.3838317824361028) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.40403999188002426) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.41413636769223433) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.42422760105585006) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.43431369907567324) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.4443662699271226) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.4544931529993546) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.46461484324950236) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.4747313502489194) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.5050498610823838) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.5151457223183467) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.5353220266951074) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.5454024835564785) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.5858535321955943) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.5959591836309699) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.616155025527601) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.6463920624411829) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.6666385590106888) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.6767540304709369) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.6969694650467834) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.7474179601261248) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.7675614683096057) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.7776255556078067) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.8282626561208872) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.8484256216002729) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.8584994213492495) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.8685681068775302) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.9087918074364576) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.9188349938933553) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.9288730921857218) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.9889949697600137) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 0.99974858647489) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.015052512188419602) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.03029426962088413) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.06839243749770468) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.0836292133608997) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.0912470672285808) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.09886456497394153) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.13734696870310906) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.14497397901135212) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.16022693354357556) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.16785287776755597) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.2061009857691912) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.2213715432205954) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.2290062878232259) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.23664067642184725) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.31287013784360607) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.33579551026422) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.3434365859114192) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.37399731542592607) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.3892755376794567) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.3969141134976991) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.41219019494203474) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.47328026274975304) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.48854921795242295) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.5267153779648435) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.5343475426943275) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.5419793517647892) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.5496108052135158) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.5801330634496403) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.5877627392618375) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.5953920596237392) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.610649634073643) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.6487873509046499) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.6564138281707615) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.6640399500759696) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.7174128527857359) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.7326590547531385) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.7402816225030254) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.7555256913985305) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.8469602239274668) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.8621943289183245) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.8698108469953234) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.8774270087010998) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.9078880903271799) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.9155024690411608) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.9231164909119645) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.9307301558520772) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.9769418956440951) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.9845647300195252) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.992187208890867) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 0.9998093322301707) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.03820574873127833) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.045884233047770166) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.061240109456200745) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.1226490440345489) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.13032352057732857) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.14567137935938093) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.15334476144043718) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.19170619534531316) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.19937738618962128) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.2070482114971963) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.2453968513383652) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.26073374476033434) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.26840164189649224) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.3067356268350702) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.322066651341349) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.32973161244332394) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.34506043162274563) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.39869970096661816) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.4063609788597506) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.41402188753199426) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.4676378950251564) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.47529584340574377) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.5518548940788806) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.5595087511478618) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.56716223496407) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.5824680819078778) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.6686904305673842) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.6917061953453132) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.7070482114971963) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.7766873397479431) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.7923021861323849) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.7999923098661218) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.8076820697480561) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.8614794103478556) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.8768764254973112) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.8845743850827851) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.8922719794659787) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.9458689803376649) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.9612817605421127) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 0.9689875986837584) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.029749843554381775) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.059749843554381774) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.06974984355438178) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.13974984355438178) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.14974984355438178) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.15974984355438177) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.16974984355438177) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.17974984355438178) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.21974984355438176) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.22974984355438177) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.23974984355438178) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.2497498435543818) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.3197498435543818) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.3397498435543818) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.3497498435543818) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.35974984355438183) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.468997487421324) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.48899748742132404) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.49899748742132405) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.518997487421324) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.6277371993328519) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.6377371993328519) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.6477371993328519) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.6677371993328519) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.7777371993328519) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.7877371993328519) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.8077371993328519) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.9377371993328519) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.957737199332852) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 0.977737199332852) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.08434122461529223) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.09736319249220814) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.12177670236609432) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.13398291047706393) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.2560176149231152) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.26820494288749264) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.2803919084377965) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.30476475227840155) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.42434250381943905) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.4364947880419225) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.44864670195280104) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.4607982453870106) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.5822932659066377) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.5944407226857343) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.6065878068658583) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.7298557216513387) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.7420139098657976) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.7541717301678039) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.7663291824206042) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.8284299052782537) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.8406001691299525) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.8649396036740605) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.9753340606845997) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.9875148632580261) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 0.9996953030971739) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.022133273001338587) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.20418547065439502) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.22693303640624127) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.24968001232099726) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.272426398521291) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.47595107564942674) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.5214835194176608) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.5442488489860375) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.5670135839399206) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.5897777244732638) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.749110080215568) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.7718694720767475) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.7946282711542776) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 0.8173864776180217) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 0.04431747070173535) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 0.0897720161562808) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 0.18068110706537172) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 0.4988629252471899) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 0.5897720161562808) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 0.6352265616108262) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 0.7261356525199172) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 1) + room.extendErasureIntervals(pathID, 10, 0, 1) + room.extendErasureIntervals(pathID, 11, 0, 0) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 1) + room.extendErasureIntervals(pathID, 10, 0, 1) + room.extendErasureIntervals(pathID, 11, 0, 0) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 1) + room.extendErasureIntervals(pathID, 10, 0, 1) + room.extendErasureIntervals(pathID, 11, 0, 0) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 1) + room.extendErasureIntervals(pathID, 10, 0, 1) + room.extendErasureIntervals(pathID, 11, 0, 0) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 1) + room.extendErasureIntervals(pathID, 10, 0, 1) + room.extendErasureIntervals(pathID, 11, 0, 0) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 1) + room.extendErasureIntervals(pathID, 10, 0, 1) + room.extendErasureIntervals(pathID, 11, 0, 0) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 1) + room.extendErasureIntervals(pathID, 10, 0, 1) + room.extendErasureIntervals(pathID, 11, 0, 0) + room.extendErasureIntervals(dotID, 0, 0, 0) + room.extendErasureIntervals(pathID, 0, 0, 1) + room.extendErasureIntervals(pathID, 1, 0, 1) + room.extendErasureIntervals(pathID, 2, 0, 1) + room.extendErasureIntervals(pathID, 3, 0, 1) + room.extendErasureIntervals(pathID, 4, 0, 1) + room.extendErasureIntervals(pathID, 5, 0, 1) + room.extendErasureIntervals(pathID, 6, 0, 1) + room.extendErasureIntervals(pathID, 7, 0, 1) + room.extendErasureIntervals(pathID, 8, 0, 1) + room.extendErasureIntervals(pathID, 9, 0, 1) + room.extendErasureIntervals(pathID, 10, 0, 1) + room.extendErasureIntervals(pathID, 11, 0, 0) + + room.disconnect() + }) +}) diff --git a/package-lock.json b/package-lock.json index a03b932625a3a145d196e3007068f0b44d2eea7d..6ff5306fd5e427c157a326aa14a4c7e58d285483 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3872,6 +3872,12 @@ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", "dev": true }, + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true + }, "esotope-hammerhead": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/esotope-hammerhead/-/esotope-hammerhead-0.5.1.tgz", @@ -10108,6 +10114,15 @@ "setimmediate": "^1.0.4" } }, + "tiny-worker": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tiny-worker/-/tiny-worker-2.3.0.tgz", + "integrity": "sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==", + "dev": true, + "requires": { + "esm": "^3.2.25" + } + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -10762,6 +10777,12 @@ "lodash": "^4.17.15" } }, + "webpack-preprocessor-loader": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/webpack-preprocessor-loader/-/webpack-preprocessor-loader-1.1.2.tgz", + "integrity": "sha512-YR9UksXYYr0WOEfMTxU0NhKdnfu0BzRvLIxQfkjzyCgyPyeXqv69Nm2JtCykD83cB6Hukr4EtpgztmfMPukpIw==", + "dev": true + }, "webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", diff --git a/package.json b/package.json index fbdfb650bdb74196a1ebde5828b82e66fcb84955..a68ea0668670993f141b8da36431f4f53b1a499b 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,8 @@ "jdenticon": "^2.2.0", "liowebrtc": "file:src/liowebrtc", "pako": "^1.0.10", - "signalbuddy": "file:src/signalbuddy", "rtcpeerconnection": "file:src/rtcpeerconnection", + "signalbuddy": "file:src/signalbuddy", "uuid": "^3.3.3", "webrtc-adapter": "^7.3.0", "what-the-pack": "^2.0.3", @@ -50,16 +50,18 @@ "devDependencies": { "@babel/plugin-transform-modules-commonjs": "^7.6.0", "eslint": "^6.5.1", - "eslint-plugin-testcafe": "^0.2.1", "eslint-config-prettier": "^6.5.0", + "eslint-plugin-testcafe": "^0.2.1", "jest": "^24.9.0", "npm-run-all": "^4.1.5", "prettier": "^1.18.2", "testcafe": "^1.5.0", + "tiny-worker": "^2.3.0", "webpack": "^4.41.0", "webpack-bundle-analyzer": "^3.6.0", "webpack-cli": "^3.3.9", - "webpack-merge": "^4.2.2" + "webpack-merge": "^4.2.2", + "webpack-preprocessor-loader": "^1.1.2" }, "pre-commit": [ "lint", diff --git a/src/app.js b/src/app.js index 62626b62832d8be6b263f7489d3858eeaf8fea11..968d9b0315a47774ba310ac4bcd5fc54c3a17ce0 100644 --- a/src/app.js +++ b/src/app.js @@ -7,6 +7,7 @@ import * as canvas from "./canvas.js" import * as HTML from "./elements.js" import { computeErasureIntervals, combineErasureIntervals } from "./erasure.js" import { connect } from "./room.js" +import WebRTCConnection from "./connection/WebRTC.js" import * as toolSelection from "./tool-selection.js" import * as humanhash from "humanhash" import jdenticon from "jdenticon" @@ -161,7 +162,7 @@ const onRoomConnect = (room_) => { } const tryRoomConnect = async (roomID) => { - return await connect(roomID) + return await connect(roomID, WebRTCConnection) .then(onRoomConnect) .catch((err) => alert(`Error connecting to a room:\n${err}`)) } diff --git a/src/connection/MockConnection.js b/src/connection/MockConnection.js new file mode 100644 index 0000000000000000000000000000000000000000..fa339f56af4a321bbc5fcf5697d1b2fedf64ae25 --- /dev/null +++ b/src/connection/MockConnection.js @@ -0,0 +1,39 @@ +export const getUserID = jest.fn(() => "moritz") +export const getPeerHandle = jest.fn((/*uid*/) => undefined) +export const getPeerFootprint = jest.fn((/*uid*/) => + Promise.resolve(Date.now())) +export const send = jest.fn() +export const broadcast = jest.fn() +export const terminatePeer = jest.fn() +export const destructor = jest.fn(() => eventListeners.clear()) + +const eventListeners = new Map() +export const addEventListener = jest.fn((event, callback) => + eventListeners.set(event, callback), +) +const addEventListenerMockClear = addEventListener.mockClear +addEventListener.mockClear = () => { + eventListeners.clear() + addEventListenerMockClear() +} + +const MockConnection = jest.fn().mockImplementation((/*options*/) => { + setTimeout( + () => + eventListeners.has("roomJoined") && eventListeners.get("roomJoined")(), + 0, + ) + + return { + getUserID, + getPeerHandle, + getPeerFootprint, + send, + broadcast, + terminatePeer, + destructor, + addEventListener, + } +}) + +export default MockConnection diff --git a/src/queue.js b/src/queue.js index 82473f424d6d0ea1e6155bd7774b5349875b98b3..e950c5494cbee858e4d4ea705c88ea39be4f262b 100644 --- a/src/queue.js +++ b/src/queue.js @@ -11,7 +11,7 @@ const { encode, decode } = MessagePack.initialize(MESSAGE_BUFFER_SIZE) const buffer = {} -self.onmessage = (event) => { +onmessage = (event) => { if (!event || !event.data) { return } diff --git a/src/room.js b/src/room.js index a158b5a902f43fa963f10023c76a2d63bbdee235..ca330db4421a55d8e7940ffb2dd5cd9424e40cf4 100644 --- a/src/room.js +++ b/src/room.js @@ -6,7 +6,6 @@ import yMemory from "y-memory" import Y from "yjs" import yP2PMesh from "./y-p2p-mesh.js" -import WebRTCConnection from "./connection/WebRTC.js" yMemory(Y) Y.Struct.Union = Union @@ -83,14 +82,14 @@ class Room extends EventTarget { this._y.connector.connectToPeer(id) } - async _initialise() { + async _initialise(connection) { this._y = await Y({ db: { name: "memory", }, connector: { name: "p2p-mesh", - connection: WebRTCConnection, + connection, url: "/", room: this.name, mesh: { @@ -188,8 +187,8 @@ class Room extends EventTarget { } } -export const connect = async (roomName) => { +export const connect = async (roomName, connection) => { const room = new Room(roomName) - await room._initialise() + await room._initialise(connection) return room } diff --git a/src/y-p2p-mesh.js b/src/y-p2p-mesh.js index 9cdf2234defca2df16ccefc04508955ac1213c40..0b81fc00c32097aa8f2c019ed6a07d490353561e 100644 --- a/src/y-p2p-mesh.js +++ b/src/y-p2p-mesh.js @@ -1,6 +1,11 @@ /* global Y */ "use strict" +/* webpack should NOT import Worker */ +// #!if false +import Worker from "tiny-worker" +// #!endif + function extend(Y) { class P2PMesh extends Y.AbstractConnector { constructor(y, options) { @@ -25,7 +30,13 @@ function extend(Y) { this.options.heartbeat.minimum = this.options.heartbeat.minimum || 1000 this.options.heartbeat.timeout = this.options.heartbeat.timeout || 10000 - this.queue = new Worker("js/queue.js") + /* webpack should use the packaged queue.js path */ + let path = "js/queue.js" + // #!if false + path = "./src/queue.js" + // #!endif + this.queue = new Worker(path) + this.queue.onmessage = (event) => { const method = event.data.method diff --git a/webpack.common.js b/webpack.common.js index bcb271eee9f39438cb631d914c77bb6a9f118728..499ead3ad6e70215ed58bd1d5dcb6c3f00d36958 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -16,4 +16,19 @@ module.exports = { EventTarget: ["@ungap/event-target", "default"], }), ], + module: { + rules: [ + { + test: /\.js$/, + use: [ + { + loader: "webpack-preprocessor-loader", + options: { + verbose: false, + }, + }, + ], + }, + ], + }, }