diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/artifacts/smeen_jar.xml b/.idea/artifacts/smeen_jar.xml new file mode 100644 index 0000000..8fc1833 --- /dev/null +++ b/.idea/artifacts/smeen_jar.xml @@ -0,0 +1,88 @@ + + + $PROJECT_DIR$/out/artifacts/smeen_jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..919ce1f --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/libraries/JavaFX19.xml b/.idea/libraries/JavaFX19.xml new file mode 100644 index 0000000..dd18ed5 --- /dev/null +++ b/.idea/libraries/JavaFX19.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..7464918 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..c4f0020 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..e6795d0 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1679056772840 + + + + + + + + + + + file://$PROJECT_DIR$/src/smeen/logic/CodeBlockListSnapHandler.java + 76 + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..41ec3b4 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-8d59dc4de5201274e310e4c54b9627a8934c3b88527886e3b421487c677d23eb.svg)](https://classroom.github.com/a/cmbFtiDj) diff --git a/Sniff Project.pdf b/Sniff Project.pdf new file mode 100644 index 0000000..8bc8bce Binary files /dev/null and b/Sniff Project.pdf differ diff --git a/UML1.png b/UML1.png new file mode 100644 index 0000000..dc4b5f9 Binary files /dev/null and b/UML1.png differ diff --git a/UML10.png b/UML10.png new file mode 100644 index 0000000..4f830b1 Binary files /dev/null and b/UML10.png differ diff --git a/UML2.png b/UML2.png new file mode 100644 index 0000000..e6bdef9 Binary files /dev/null and b/UML2.png differ diff --git a/UML3.png b/UML3.png new file mode 100644 index 0000000..673e357 Binary files /dev/null and b/UML3.png differ diff --git a/UML4.png b/UML4.png new file mode 100644 index 0000000..26c6aed Binary files /dev/null and b/UML4.png differ diff --git a/UML5.png b/UML5.png new file mode 100644 index 0000000..6c60995 Binary files /dev/null and b/UML5.png differ diff --git a/UML6.png b/UML6.png new file mode 100644 index 0000000..f46c799 Binary files /dev/null and b/UML6.png differ diff --git a/UML7.png b/UML7.png new file mode 100644 index 0000000..214a103 Binary files /dev/null and b/UML7.png differ diff --git a/UML8.png b/UML8.png new file mode 100644 index 0000000..291cd9a Binary files /dev/null and b/UML8.png differ diff --git a/UML9.png b/UML9.png new file mode 100644 index 0000000..fa3189d Binary files /dev/null and b/UML9.png differ diff --git a/hs_err_pid11796.log b/hs_err_pid11796.log new file mode 100644 index 0000000..fce7b9b --- /dev/null +++ b/hs_err_pid11796.log @@ -0,0 +1,766 @@ +# +# There is insufficient memory for the Java Runtime Environment to continue. +# Native memory allocation (malloc) failed to allocate 467216 bytes for Chunk::new +# Possible reasons: +# The system is out of physical RAM or swap space +# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap +# Possible solutions: +# Reduce memory load on the system +# Increase physical memory or swap space +# Check if swap backing store is full +# Decrease Java heap size (-Xmx/-Xms) +# Decrease number of Java threads +# Decrease Java thread stack sizes (-Xss) +# Set larger code cache with -XX:ReservedCodeCacheSize= +# JVM is running with Unscaled Compressed Oops mode in which the Java heap is +# placed in the first 4GB address space. The Java Heap base address is the +# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress +# to set the Java Heap base and to place the Java Heap above 4GB virtual address. +# This output file may be truncated or incomplete. +# +# Out of Memory Error (arena.cpp:184), pid=11796, tid=19092 +# +# JRE version: OpenJDK Runtime Environment (19.0.1+10) (build 19.0.1+10-21) +# Java VM: OpenJDK 64-Bit Server VM (19.0.1+10-21, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) +# No core dump will be written. Minidumps are not enabled by default on client versions of Windows +# + +--------------- S U M M A R Y ------------ + +Command Line: --module-path=C:\Program Files\Java\javafx-sdk-19.0.2.1\lib --add-modules=javafx.controls,javafx.fxml -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.1.2\lib\idea_rt.jar=50670:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.1.2\bin -Dfile.encoding=UTF-8 smeen.application.Main + +Host: Intel(R) Core(TM) i3-10110U CPU @ 2.10GHz, 4 cores, 7G, Windows 11 , 64 bit Build 22621 (10.0.22621.1635) +Time: Sun May 21 01:15:53 2023 SE Asia Standard Time elapsed time: 128.628667 seconds (0d 0h 2m 8s) + +--------------- T H R E A D --------------- + +Current thread (0x000001f63b3e9280): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=19092, stack(0x00000050edc00000,0x00000050edd00000)] + + +Current CompileTask: +C2: 128628 6918 ! 4 java.util.concurrent.LinkedBlockingDeque::takeFirst (47 bytes) + +Stack: [0x00000050edc00000,0x00000050edd00000] +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [jvm.dll+0x6ee8fa] +V [jvm.dll+0x857a1e] +V [jvm.dll+0x85940e] +V [jvm.dll+0x859ac3] +V [jvm.dll+0x28291f] +V [jvm.dll+0xc9b5f] +V [jvm.dll+0xc9ee5] +V [jvm.dll+0x3bcb72] +V [jvm.dll+0x386201] +V [jvm.dll+0x38567a] +V [jvm.dll+0x24c2c9] +V [jvm.dll+0x24b671] +V [jvm.dll+0x1d6d61] +V [jvm.dll+0x25b0fa] +V [jvm.dll+0x259588] +V [jvm.dll+0x807928] +V [jvm.dll+0x8015fa] +V [jvm.dll+0x6ed5eb] +C [ucrtbase.dll+0x29363] +C [KERNEL32.DLL+0x126ad] +C [ntdll.dll+0x5a9f8] + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000001f640815170, length=21, elements={ +0x000001f61b62f7d0, 0x000001f63b3d9a80, 0x000001f63b3da4c0, 0x000001f63b3dfca0, +0x000001f63b3e2af0, 0x000001f63b3e3420, 0x000001f63b3e4780, 0x000001f63b3e9280, +0x000001f63b41eb60, 0x000001f63b41fd00, 0x000001f63f8be800, 0x000001f640ac7170, +0x000001f640ac76b0, 0x000001f63ff90b50, 0x000001f64048d840, 0x000001f63fcfdd60, +0x000001f640dee1e0, 0x000001f640df09c0, 0x000001f640e490a0, 0x000001f640e495f0, +0x000001f640e4a5e0 +} + +Java Threads: ( => current thread ) + 0x000001f61b62f7d0 JavaThread "main" [_thread_blocked, id=16556, stack(0x00000050ecf00000,0x00000050ed000000)] + 0x000001f63b3d9a80 JavaThread "Reference Handler" daemon [_thread_blocked, id=13424, stack(0x00000050ed600000,0x00000050ed700000)] + 0x000001f63b3da4c0 JavaThread "Finalizer" daemon [_thread_blocked, id=19020, stack(0x00000050ed700000,0x00000050ed800000)] + 0x000001f63b3dfca0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=8508, stack(0x00000050ed800000,0x00000050ed900000)] + 0x000001f63b3e2af0 JavaThread "Attach Listener" daemon [_thread_blocked, id=10572, stack(0x00000050ed900000,0x00000050eda00000)] + 0x000001f63b3e3420 JavaThread "Service Thread" daemon [_thread_blocked, id=6124, stack(0x00000050eda00000,0x00000050edb00000)] + 0x000001f63b3e4780 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=9488, stack(0x00000050edb00000,0x00000050edc00000)] +=>0x000001f63b3e9280 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=19092, stack(0x00000050edc00000,0x00000050edd00000)] + 0x000001f63b41eb60 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=8228, stack(0x00000050edd00000,0x00000050ede00000)] + 0x000001f63b41fd00 JavaThread "Sweeper thread" daemon [_thread_blocked, id=2780, stack(0x00000050ede00000,0x00000050edf00000)] + 0x000001f63f8be800 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=11656, stack(0x00000050edf00000,0x00000050ee000000)] + 0x000001f640ac7170 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=17620, stack(0x00000050ee000000,0x00000050ee100000)] + 0x000001f640ac76b0 JavaThread "Notification Thread" daemon [_thread_blocked, id=17496, stack(0x00000050ee100000,0x00000050ee200000)] + 0x000001f63ff90b50 JavaThread "QuantumRenderer-0" daemon [_thread_in_native, id=11496, stack(0x00000050ee300000,0x00000050ee400000)] + 0x000001f64048d840 JavaThread "InvokeLaterDispatcher" daemon [_thread_blocked, id=17540, stack(0x00000050ee600000,0x00000050ee700000)] + 0x000001f63fcfdd60 JavaThread "JavaFX Application Thread" [_thread_blocked, id=15764, stack(0x00000050eea00000,0x00000050eeb00000)] + 0x000001f640dee1e0 JavaThread "Thread-1" daemon [_thread_in_native, id=6212, stack(0x00000050eec00000,0x00000050eed00000)] + 0x000001f640df09c0 JavaThread "JavaFX-Launcher" [_thread_blocked, id=9752, stack(0x00000050eed00000,0x00000050eee00000)] + 0x000001f640e490a0 JavaThread "Prism Font Disposer" daemon [_thread_blocked, id=9420, stack(0x00000050eee00000,0x00000050eef00000)] + 0x000001f640e495f0 JavaThread "Cleaner-0" daemon [_thread_blocked, id=9656, stack(0x00000050ef200000,0x00000050ef300000)] + 0x000001f640e4a5e0 JavaThread "Thread-6" [_thread_blocked, id=16320, stack(0x00000050ecd00000,0x00000050ece00000)] + +Other Threads: + 0x000001f63b3bc700 VMThread "VM Thread" [stack: 0x00000050ed500000,0x00000050ed600000] [id=5352] + 0x000001f63fffea00 WatcherThread "VM Periodic Task Thread" [stack: 0x00000050ee200000,0x00000050ee300000] [id=5760] + 0x000001f61b68be90 WorkerThread "GC Thread#0" [stack: 0x00000050ed000000,0x00000050ed100000] [id=18836] + 0x000001f6403b1090 WorkerThread "GC Thread#1" [stack: 0x00000050ee700000,0x00000050ee800000] [id=17524] + 0x000001f6404b7610 WorkerThread "GC Thread#2" [stack: 0x00000050ee800000,0x00000050ee900000] [id=13620] + 0x000001f64039e5a0 WorkerThread "GC Thread#3" [stack: 0x00000050ee900000,0x00000050eea00000] [id=3896] + 0x000001f61b69c980 ConcurrentGCThread "G1 Main Marker" [stack: 0x00000050ed100000,0x00000050ed200000] [id=4316] + 0x000001f61b69fa80 WorkerThread "G1 Conc#0" [stack: 0x00000050ed200000,0x00000050ed300000] [id=12232] + 0x000001f63b2760e0 ConcurrentGCThread "G1 Refine#0" [stack: 0x00000050ed300000,0x00000050ed400000] [id=9984] + 0x000001f63b2769d0 ConcurrentGCThread "G1 Service" [stack: 0x00000050ed400000,0x00000050ed500000] [id=13988] + +Threads with active compile tasks: +C2 CompilerThread0 128733 6918 ! 4 java.util.concurrent.LinkedBlockingDeque::takeFirst (47 bytes) + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x0000000083400000, size: 1996 MB, Compressed Oops mode: 32-bit + +CDS archive(s) mapped at: [0x0000000800000000-0x0000000800c30000-0x0000000800c30000), size 12779520, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0. +Compressed class space mapped at: 0x0000000801000000-0x0000000841000000, reserved size: 1073741824 +Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CardTable entry size: 512 + Card Set container configuration: InlinePtr #cards 5 size 8 Array Of Cards #cards 12 size 40 Howl #buckets 4 coarsen threshold 1843 Howl Bitmap #cards 512 size 80 coarsen threshold 460 Card regions per heap region 1 cards per card region 2048 + CPUs: 4 total, 4 available + Memory: 7979M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (32-bit) + Heap Region Size: 1M + Heap Min Capacity: 8M + Heap Initial Capacity: 126M + Heap Max Capacity: 1996M + Pre-touch: Disabled + Parallel Workers: 4 + Concurrent Workers: 1 + Concurrent Refinement Workers: 4 + Periodic GC: Disabled + +Heap: + garbage-first heap total 102400K, used 77115K [0x0000000083400000, 0x0000000100000000) + region size 1024K, 48 young (49152K), 2 survivors (2048K) + Metaspace used 21501K, committed 21824K, reserved 1114112K + class space used 3107K, committed 3264K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) +| 0|0x0000000083400000, 0x0000000083500000, 0x0000000083500000|100%| O| |TAMS 0x0000000083500000, 0x0000000083400000| Untracked +| 1|0x0000000083500000, 0x0000000083600000, 0x0000000083600000|100%| O| |TAMS 0x0000000083600000, 0x0000000083500000| Untracked +| 2|0x0000000083600000, 0x0000000083700000, 0x0000000083700000|100%| O| |TAMS 0x0000000083700000, 0x0000000083600000| Untracked +| 3|0x0000000083700000, 0x0000000083800000, 0x0000000083800000|100%| O| |TAMS 0x0000000083800000, 0x0000000083700000| Untracked +| 4|0x0000000083800000, 0x0000000083900000, 0x0000000083900000|100%| O| |TAMS 0x0000000083900000, 0x0000000083800000| Untracked +| 5|0x0000000083900000, 0x0000000083a00000, 0x0000000083a00000|100%| O| |TAMS 0x0000000083a00000, 0x0000000083900000| Untracked +| 6|0x0000000083a00000, 0x0000000083b00000, 0x0000000083b00000|100%| O| |TAMS 0x0000000083b00000, 0x0000000083a00000| Untracked +| 7|0x0000000083b00000, 0x0000000083c00000, 0x0000000083c00000|100%| O| |TAMS 0x0000000083c00000, 0x0000000083b00000| Untracked +| 8|0x0000000083c00000, 0x0000000083d00000, 0x0000000083d00000|100%| O| |TAMS 0x0000000083d00000, 0x0000000083c00000| Untracked +| 9|0x0000000083d00000, 0x0000000083e00000, 0x0000000083e00000|100%|HS| |TAMS 0x0000000083e00000, 0x0000000083d00000| Complete +| 10|0x0000000083e00000, 0x0000000083f00000, 0x0000000083f00000|100%|HC| |TAMS 0x0000000083f00000, 0x0000000083e00000| Complete +| 11|0x0000000083f00000, 0x0000000084000000, 0x0000000084000000|100%| O| |TAMS 0x0000000083f00000, 0x0000000083f00000| Untracked +| 12|0x0000000084000000, 0x0000000084100000, 0x0000000084100000|100%| O| |TAMS 0x0000000084000000, 0x0000000084000000| Untracked +| 13|0x0000000084100000, 0x0000000084200000, 0x0000000084200000|100%| O| |TAMS 0x0000000084100000, 0x0000000084100000| Untracked +| 14|0x0000000084200000, 0x0000000084300000, 0x0000000084300000|100%|HS| |TAMS 0x0000000084300000, 0x0000000084200000| Complete +| 15|0x0000000084300000, 0x0000000084400000, 0x0000000084400000|100%|HC| |TAMS 0x0000000084400000, 0x0000000084300000| Complete +| 16|0x0000000084400000, 0x0000000084500000, 0x0000000084500000|100%|HC| |TAMS 0x0000000084500000, 0x0000000084400000| Complete +| 17|0x0000000084500000, 0x0000000084600000, 0x0000000084600000|100%| O| |TAMS 0x0000000084600000, 0x0000000084500000| Untracked +| 18|0x0000000084600000, 0x0000000084700000, 0x0000000084700000|100%| O| |TAMS 0x0000000084700000, 0x0000000084600000| Untracked +| 19|0x0000000084700000, 0x0000000084800000, 0x0000000084800000|100%| O| |TAMS 0x0000000084800000, 0x0000000084700000| Untracked +| 20|0x0000000084800000, 0x0000000084900000, 0x0000000084900000|100%| O| |TAMS 0x0000000084900000, 0x0000000084800000| Untracked +| 21|0x0000000084900000, 0x0000000084a00000, 0x0000000084a00000|100%| O| |TAMS 0x0000000084a00000, 0x0000000084900000| Untracked +| 22|0x0000000084a00000, 0x0000000084b00000, 0x0000000084b00000|100%| O| |TAMS 0x0000000084b00000, 0x0000000084a00000| Complete +| 23|0x0000000084b00000, 0x0000000084c00000, 0x0000000084c00000|100%| O| |TAMS 0x0000000084b00000, 0x0000000084b00000| Untracked +| 24|0x0000000084c00000, 0x0000000084d00000, 0x0000000084d00000|100%| O| |TAMS 0x0000000084c00000, 0x0000000084c00000| Untracked +| 25|0x0000000084d00000, 0x0000000084deee00, 0x0000000084e00000| 93%| O| |TAMS 0x0000000084d00000, 0x0000000084d00000| Untracked +| 26|0x0000000084e00000, 0x0000000084f00000, 0x0000000084f00000|100%|HS| |TAMS 0x0000000084e00000, 0x0000000084e00000| Complete +| 27|0x0000000084f00000, 0x0000000085000000, 0x0000000085000000|100%|HS| |TAMS 0x0000000084f00000, 0x0000000084f00000| Complete +| 28|0x0000000085000000, 0x0000000085100000, 0x0000000085100000|100%|HS| |TAMS 0x0000000085000000, 0x0000000085000000| Complete +| 29|0x0000000085100000, 0x0000000085200000, 0x0000000085200000|100%|HS| |TAMS 0x0000000085100000, 0x0000000085100000| Complete +| 30|0x0000000085200000, 0x0000000085200000, 0x0000000085300000| 0%| F| |TAMS 0x0000000085200000, 0x0000000085200000| Untracked +| 31|0x0000000085300000, 0x0000000085300000, 0x0000000085400000| 0%| F| |TAMS 0x0000000085300000, 0x0000000085300000| Untracked +| 32|0x0000000085400000, 0x0000000085400000, 0x0000000085500000| 0%| F| |TAMS 0x0000000085400000, 0x0000000085400000| Untracked +| 33|0x0000000085500000, 0x0000000085500000, 0x0000000085600000| 0%| F| |TAMS 0x0000000085500000, 0x0000000085500000| Untracked +| 34|0x0000000085600000, 0x0000000085600000, 0x0000000085700000| 0%| F| |TAMS 0x0000000085600000, 0x0000000085600000| Untracked +| 35|0x0000000085700000, 0x0000000085700000, 0x0000000085800000| 0%| F| |TAMS 0x0000000085700000, 0x0000000085700000| Untracked +| 36|0x0000000085800000, 0x0000000085800000, 0x0000000085900000| 0%| F| |TAMS 0x0000000085800000, 0x0000000085800000| Untracked +| 37|0x0000000085900000, 0x0000000085900000, 0x0000000085a00000| 0%| F| |TAMS 0x0000000085900000, 0x0000000085900000| Untracked +| 38|0x0000000085a00000, 0x0000000085a00000, 0x0000000085b00000| 0%| F| |TAMS 0x0000000085a00000, 0x0000000085a00000| Untracked +| 39|0x0000000085b00000, 0x0000000085b00000, 0x0000000085c00000| 0%| F| |TAMS 0x0000000085b00000, 0x0000000085b00000| Untracked +| 40|0x0000000085c00000, 0x0000000085c00000, 0x0000000085d00000| 0%| F| |TAMS 0x0000000085c00000, 0x0000000085c00000| Untracked +| 41|0x0000000085d00000, 0x0000000085d00000, 0x0000000085e00000| 0%| F| |TAMS 0x0000000085d00000, 0x0000000085d00000| Untracked +| 42|0x0000000085e00000, 0x0000000085e00000, 0x0000000085f00000| 0%| F| |TAMS 0x0000000085e00000, 0x0000000085e00000| Untracked +| 43|0x0000000085f00000, 0x0000000085f00000, 0x0000000086000000| 0%| F| |TAMS 0x0000000085f00000, 0x0000000085f00000| Untracked +| 44|0x0000000086000000, 0x0000000086000000, 0x0000000086100000| 0%| F| |TAMS 0x0000000086000000, 0x0000000086000000| Untracked +| 45|0x0000000086100000, 0x0000000086100000, 0x0000000086200000| 0%| F| |TAMS 0x0000000086100000, 0x0000000086100000| Untracked +| 46|0x0000000086200000, 0x0000000086200000, 0x0000000086300000| 0%| F| |TAMS 0x0000000086200000, 0x0000000086200000| Untracked +| 47|0x0000000086300000, 0x0000000086300000, 0x0000000086400000| 0%| F| |TAMS 0x0000000086300000, 0x0000000086300000| Untracked +| 48|0x0000000086400000, 0x0000000086400000, 0x0000000086500000| 0%| F| |TAMS 0x0000000086400000, 0x0000000086400000| Untracked +| 49|0x0000000086500000, 0x0000000086500000, 0x0000000086600000| 0%| F| |TAMS 0x0000000086500000, 0x0000000086500000| Untracked +| 50|0x0000000086600000, 0x0000000086600000, 0x0000000086700000| 0%| F| |TAMS 0x0000000086600000, 0x0000000086600000| Untracked +| 51|0x0000000086700000, 0x0000000086700000, 0x0000000086800000| 0%| F| |TAMS 0x0000000086700000, 0x0000000086700000| Untracked +| 52|0x0000000086800000, 0x0000000086880800, 0x0000000086900000| 50%| E| |TAMS 0x0000000086800000, 0x0000000086800000| Complete +| 53|0x0000000086900000, 0x0000000086a00000, 0x0000000086a00000|100%| E|CS|TAMS 0x0000000086900000, 0x0000000086900000| Complete +| 54|0x0000000086a00000, 0x0000000086b00000, 0x0000000086b00000|100%| E|CS|TAMS 0x0000000086a00000, 0x0000000086a00000| Complete +| 55|0x0000000086b00000, 0x0000000086c00000, 0x0000000086c00000|100%| E|CS|TAMS 0x0000000086b00000, 0x0000000086b00000| Complete +| 56|0x0000000086c00000, 0x0000000086d00000, 0x0000000086d00000|100%| E|CS|TAMS 0x0000000086c00000, 0x0000000086c00000| Complete +| 57|0x0000000086d00000, 0x0000000086e00000, 0x0000000086e00000|100%| E|CS|TAMS 0x0000000086d00000, 0x0000000086d00000| Complete +| 58|0x0000000086e00000, 0x0000000086f00000, 0x0000000086f00000|100%| E|CS|TAMS 0x0000000086e00000, 0x0000000086e00000| Complete +| 59|0x0000000086f00000, 0x0000000087000000, 0x0000000087000000|100%| E|CS|TAMS 0x0000000086f00000, 0x0000000086f00000| Complete +| 60|0x0000000087000000, 0x0000000087100000, 0x0000000087100000|100%| E|CS|TAMS 0x0000000087000000, 0x0000000087000000| Complete +| 61|0x0000000087100000, 0x0000000087200000, 0x0000000087200000|100%| E|CS|TAMS 0x0000000087100000, 0x0000000087100000| Complete +| 62|0x0000000087200000, 0x0000000087300000, 0x0000000087300000|100%| E|CS|TAMS 0x0000000087200000, 0x0000000087200000| Complete +| 63|0x0000000087300000, 0x0000000087400000, 0x0000000087400000|100%| E|CS|TAMS 0x0000000087300000, 0x0000000087300000| Complete +| 64|0x0000000087400000, 0x0000000087500000, 0x0000000087500000|100%| E|CS|TAMS 0x0000000087400000, 0x0000000087400000| Complete +| 65|0x0000000087500000, 0x0000000087600000, 0x0000000087600000|100%| E|CS|TAMS 0x0000000087500000, 0x0000000087500000| Complete +| 66|0x0000000087600000, 0x0000000087700000, 0x0000000087700000|100%| E|CS|TAMS 0x0000000087600000, 0x0000000087600000| Complete +| 67|0x0000000087700000, 0x0000000087800000, 0x0000000087800000|100%| E|CS|TAMS 0x0000000087700000, 0x0000000087700000| Complete +| 68|0x0000000087800000, 0x0000000087900000, 0x0000000087900000|100%| E|CS|TAMS 0x0000000087800000, 0x0000000087800000| Complete +| 69|0x0000000087900000, 0x0000000087a00000, 0x0000000087a00000|100%| E|CS|TAMS 0x0000000087900000, 0x0000000087900000| Complete +| 70|0x0000000087a00000, 0x0000000087b00000, 0x0000000087b00000|100%| E|CS|TAMS 0x0000000087a00000, 0x0000000087a00000| Complete +| 71|0x0000000087b00000, 0x0000000087c00000, 0x0000000087c00000|100%| E|CS|TAMS 0x0000000087b00000, 0x0000000087b00000| Complete +| 72|0x0000000087c00000, 0x0000000087d00000, 0x0000000087d00000|100%| E|CS|TAMS 0x0000000087c00000, 0x0000000087c00000| Complete +| 73|0x0000000087d00000, 0x0000000087e00000, 0x0000000087e00000|100%| E|CS|TAMS 0x0000000087d00000, 0x0000000087d00000| Complete +| 74|0x0000000087e00000, 0x0000000087f00000, 0x0000000087f00000|100%| E|CS|TAMS 0x0000000087e00000, 0x0000000087e00000| Complete +| 75|0x0000000087f00000, 0x0000000088000000, 0x0000000088000000|100%| E|CS|TAMS 0x0000000087f00000, 0x0000000087f00000| Complete +| 76|0x0000000088000000, 0x0000000088100000, 0x0000000088100000|100%| E|CS|TAMS 0x0000000088000000, 0x0000000088000000| Complete +| 77|0x0000000088100000, 0x0000000088200000, 0x0000000088200000|100%| E|CS|TAMS 0x0000000088100000, 0x0000000088100000| Complete +| 78|0x0000000088200000, 0x0000000088300000, 0x0000000088300000|100%| E|CS|TAMS 0x0000000088200000, 0x0000000088200000| Complete +| 79|0x0000000088300000, 0x0000000088400000, 0x0000000088400000|100%| E|CS|TAMS 0x0000000088300000, 0x0000000088300000| Complete +| 80|0x0000000088400000, 0x0000000088500000, 0x0000000088500000|100%| E|CS|TAMS 0x0000000088400000, 0x0000000088400000| Complete +| 81|0x0000000088500000, 0x0000000088600000, 0x0000000088600000|100%| E|CS|TAMS 0x0000000088500000, 0x0000000088500000| Complete +| 82|0x0000000088600000, 0x0000000088700000, 0x0000000088700000|100%| E|CS|TAMS 0x0000000088600000, 0x0000000088600000| Complete +| 83|0x0000000088700000, 0x0000000088800000, 0x0000000088800000|100%| E|CS|TAMS 0x0000000088700000, 0x0000000088700000| Complete +| 84|0x0000000088800000, 0x0000000088900000, 0x0000000088900000|100%| E|CS|TAMS 0x0000000088800000, 0x0000000088800000| Complete +| 85|0x0000000088900000, 0x0000000088a00000, 0x0000000088a00000|100%| E|CS|TAMS 0x0000000088900000, 0x0000000088900000| Complete +| 86|0x0000000088a00000, 0x0000000088b00000, 0x0000000088b00000|100%| E|CS|TAMS 0x0000000088a00000, 0x0000000088a00000| Complete +| 87|0x0000000088b00000, 0x0000000088c00000, 0x0000000088c00000|100%| E|CS|TAMS 0x0000000088b00000, 0x0000000088b00000| Complete +| 88|0x0000000088c00000, 0x0000000088d00000, 0x0000000088d00000|100%| E|CS|TAMS 0x0000000088c00000, 0x0000000088c00000| Complete +| 89|0x0000000088d00000, 0x0000000088e00000, 0x0000000088e00000|100%| E|CS|TAMS 0x0000000088d00000, 0x0000000088d00000| Complete +| 90|0x0000000088e00000, 0x0000000088f00000, 0x0000000088f00000|100%| E|CS|TAMS 0x0000000088e00000, 0x0000000088e00000| Complete +| 91|0x0000000088f00000, 0x0000000089000000, 0x0000000089000000|100%| E|CS|TAMS 0x0000000088f00000, 0x0000000088f00000| Complete +| 92|0x0000000089000000, 0x0000000089100000, 0x0000000089100000|100%| E|CS|TAMS 0x0000000089000000, 0x0000000089000000| Complete +| 93|0x0000000089100000, 0x0000000089200000, 0x0000000089200000|100%| E|CS|TAMS 0x0000000089100000, 0x0000000089100000| Complete +| 94|0x0000000089200000, 0x0000000089300000, 0x0000000089300000|100%| E|CS|TAMS 0x0000000089200000, 0x0000000089200000| Complete +| 95|0x0000000089300000, 0x0000000089400000, 0x0000000089400000|100%| E|CS|TAMS 0x0000000089300000, 0x0000000089300000| Complete +| 116|0x000000008a800000, 0x000000008a860010, 0x000000008a900000| 37%| S|CS|TAMS 0x000000008a800000, 0x000000008a800000| Complete +| 117|0x000000008a900000, 0x000000008aa00000, 0x000000008aa00000|100%| S|CS|TAMS 0x000000008a900000, 0x000000008a900000| Complete +| 124|0x000000008b000000, 0x000000008b100000, 0x000000008b100000|100%| E|CS|TAMS 0x000000008b000000, 0x000000008b000000| Complete +| 125|0x000000008b100000, 0x000000008b200000, 0x000000008b200000|100%| E| |TAMS 0x000000008b100000, 0x000000008b100000| Complete + +Card table byte_map: [0x000001f6347c0000,0x000001f634bb0000] _byte_map_base: 0x000001f6343a6000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x000001f61b68c410, (CMBitMap*) 0x000001f61b68c3d0 + Prev Bits: [0x000001f636ed0000, 0x000001f638e00000) + Next Bits: [0x000001f634fa0000, 0x000001f636ed0000) + +Polling page: 0x000001f61b6f0000 + +Metaspace: + +Usage: + Non-class: 17.96 MB used. + Class: 3.03 MB used. + Both: 21.00 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 18.12 MB ( 28%) committed, 1 nodes. + Class space: 1.00 GB reserved, 3.19 MB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 21.31 MB ( 2%) committed. + +Chunk freelists: + Non-Class: 1.52 MB + Class: 878.00 KB + Both: 2.37 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 35.12 MB +CDS: on +MetaspaceReclaimPolicy: balanced + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - new_chunks_are_fully_committed: 0. + - uncommit_free_chunks: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 3. +num_arena_births: 328. +num_arena_deaths: 0. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 341. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 3. +num_chunks_taken_from_freelist: 1025. +num_chunk_merges: 0. +num_chunk_splits: 737. +num_chunks_enlarged: 600. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=120000Kb used=4227Kb max_used=4227Kb free=115772Kb + bounds [0x000001f62c880000, 0x000001f62ccb0000, 0x000001f633db0000] +CodeHeap 'profiled nmethods': size=120000Kb used=12183Kb max_used=12183Kb free=107816Kb + bounds [0x000001f624db0000, 0x000001f6259a0000, 0x000001f62c2e0000] +CodeHeap 'non-nmethods': size=5760Kb used=1556Kb max_used=1623Kb free=4203Kb + bounds [0x000001f62c2e0000, 0x000001f62c550000, 0x000001f62c880000] + total_blobs=6845 nmethods=6000 adapters=753 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 127.661 Thread 0x000001f63b3e9280 nmethod 6908 0x000001f62cc97510 code [0x000001f62cc976a0, 0x000001f62cc97748] +Event: 127.723 Thread 0x000001f63b3e9280 6909 4 java.util.stream.IntPipeline::filter (22 bytes) +Event: 127.726 Thread 0x000001f63b3e9280 nmethod 6909 0x000001f62cc97810 code [0x000001f62cc979a0, 0x000001f62cc97db8] +Event: 127.786 Thread 0x000001f63b3e9280 6910 ! 4 com.sun.javafx.binding.ExpressionHelper$Generic::fireValueChangedEvent (218 bytes) +Event: 127.813 Thread 0x000001f63b3e9280 nmethod 6910 0x000001f62cc97f10 code [0x000001f62cc98120, 0x000001f62cc992b0] +Event: 127.849 Thread 0x000001f63b3e9280 6911 4 java.util.Spliterator::getExactSizeIfKnown (25 bytes) +Event: 127.850 Thread 0x000001f63b3e9280 nmethod 6911 0x000001f62cc99a90 code [0x000001f62cc99c20, 0x000001f62cc99cf8] +Event: 127.916 Thread 0x000001f63b3e9280 6912 4 javafx.scene.control.skin.TextFieldSkin::updateTextPos (307 bytes) +Event: 127.948 Thread 0x000001f63b3e9280 nmethod 6912 0x000001f62cc99e10 code [0x000001f62cc9a0a0, 0x000001f62cc9ae80] +Event: 127.948 Thread 0x000001f63b3e9280 6913 4 java.util.concurrent.locks.LockSupport::unpark (26 bytes) +Event: 127.950 Thread 0x000001f63b3e9280 nmethod 6913 0x000001f62cc9bd10 code [0x000001f62cc9bea0, 0x000001f62cc9bf68] +Event: 128.245 Thread 0x000001f63b3e9280 6914 4 javafx.scene.text.Text::doGeomChanged (55 bytes) +Event: 128.251 Thread 0x000001f63b3e9280 nmethod 6914 0x000001f62cc9c010 code [0x000001f62cc9c1a0, 0x000001f62cc9c478] +Event: 128.288 Thread 0x000001f63b3e9280 6915 4 com.sun.javafx.sg.prism.NGNode::accumulateNodeDirtyRegion (63 bytes) +Event: 128.324 Thread 0x000001f63b3e9280 nmethod 6915 0x000001f62cc9c690 code [0x000001f62cc9c8a0, 0x000001f62cc9d550] +Event: 128.394 Thread 0x000001f63b3e9280 6916 4 javafx.scene.layout.VBox::growOrShrinkAreaHeights (349 bytes) +Event: 128.436 Thread 0x000001f63b3e9280 nmethod 6916 0x000001f62cc9dd10 code [0x000001f62cc9e000, 0x000001f62cc9efa0] +Event: 128.436 Thread 0x000001f63b3e9280 6917 4 javafx.scene.layout.Region::getMaxAreaHeight (394 bytes) +Event: 128.447 Thread 0x000001f63b3e9280 nmethod 6917 0x000001f62cca0010 code [0x000001f62cca0200, 0x000001f62cca07a8] +Event: 128.587 Thread 0x000001f63b3e9280 6918 ! 4 java.util.concurrent.LinkedBlockingDeque::takeFirst (47 bytes) + +GC Heap History (10 events): +Event: 1.754 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total 129024K, used 12288K [0x0000000083400000, 0x0000000100000000) + region size 1024K, 13 young (13312K), 0 survivors (0K) + Metaspace used 2832K, committed 3072K, reserved 1114112K + class space used 286K, committed 384K, reserved 1048576K +} +Event: 1.759 GC heap after +{Heap after GC invocations=1 (full 0): + garbage-first heap total 129024K, used 1940K [0x0000000083400000, 0x0000000100000000) + region size 1024K, 2 young (2048K), 2 survivors (2048K) + Metaspace used 2832K, committed 3072K, reserved 1114112K + class space used 286K, committed 384K, reserved 1048576K +} +Event: 2.592 GC heap before +{Heap before GC invocations=1 (full 0): + garbage-first heap total 129024K, used 19348K [0x0000000083400000, 0x0000000100000000) + region size 1024K, 20 young (20480K), 2 survivors (2048K) + Metaspace used 7836K, committed 8000K, reserved 1114112K + class space used 1068K, committed 1152K, reserved 1048576K +} +Event: 2.599 GC heap after +{Heap after GC invocations=2 (full 0): + garbage-first heap total 129024K, used 5112K [0x0000000083400000, 0x0000000100000000) + region size 1024K, 3 young (3072K), 3 survivors (3072K) + Metaspace used 7836K, committed 8000K, reserved 1114112K + class space used 1068K, committed 1152K, reserved 1048576K +} +Event: 4.165 GC heap before +{Heap before GC invocations=2 (full 0): + garbage-first heap total 129024K, used 50168K [0x0000000083400000, 0x0000000100000000) + region size 1024K, 47 young (48128K), 3 survivors (3072K) + Metaspace used 16598K, committed 16896K, reserved 1114112K + class space used 2742K, committed 2880K, reserved 1048576K +} +Event: 4.190 GC heap after +{Heap after GC invocations=3 (full 0): + garbage-first heap total 129024K, used 15225K [0x0000000083400000, 0x0000000100000000) + region size 1024K, 6 young (6144K), 6 survivors (6144K) + Metaspace used 16598K, committed 16896K, reserved 1114112K + class space used 2742K, committed 2880K, reserved 1048576K +} +Event: 70.256 GC heap before +{Heap before GC invocations=3 (full 0): + garbage-first heap total 129024K, used 62329K [0x0000000083400000, 0x0000000100000000) + region size 1024K, 44 young (45056K), 6 survivors (6144K) + Metaspace used 21004K, committed 21312K, reserved 1114112K + class space used 3099K, committed 3200K, reserved 1048576K +} +Event: 70.310 GC heap after +{Heap after GC invocations=4 (full 0): + garbage-first heap total 129024K, used 26599K [0x0000000083400000, 0x0000000100000000) + region size 1024K, 6 young (6144K), 6 survivors (6144K) + Metaspace used 21004K, committed 21312K, reserved 1114112K + class space used 3099K, committed 3200K, reserved 1048576K +} +Event: 82.124 GC heap before +{Heap before GC invocations=4 (full 0): + garbage-first heap total 129024K, used 33767K [0x0000000083400000, 0x0000000100000000) + region size 1024K, 14 young (14336K), 6 survivors (6144K) + Metaspace used 21238K, committed 21504K, reserved 1114112K + class space used 3105K, committed 3264K, reserved 1048576K +} +Event: 82.142 GC heap after +{Heap after GC invocations=5 (full 0): + garbage-first heap total 129024K, used 27963K [0x0000000083400000, 0x0000000100000000) + region size 1024K, 2 young (2048K), 2 survivors (2048K) + Metaspace used 21238K, committed 21504K, reserved 1114112K + class space used 3105K, committed 3264K, reserved 1048576K +} + +Dll operation events (20 events): +Event: 1.078 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-locale-l1-1-0.dll +Event: 1.080 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-math-l1-1-0.dll +Event: 1.081 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-multibyte-l1-1-0.dll +Event: 1.083 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-private-l1-1-0.dll +Event: 1.086 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-process-l1-1-0.dll +Event: 1.088 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-runtime-l1-1-0.dll +Event: 1.090 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-stdio-l1-1-0.dll +Event: 1.094 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-string-l1-1-0.dll +Event: 1.100 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-time-l1-1-0.dll +Event: 1.104 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-utility-l1-1-0.dll +Event: 1.117 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\ucrtbase.dll +Event: 1.123 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\vcruntime140.dll +Event: 1.129 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\vcruntime140_1.dll +Event: 1.139 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\msvcp140.dll +Event: 1.146 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\msvcp140_1.dll +Event: 1.159 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\msvcp140_2.dll +Event: 1.308 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\prism_d3d.dll +Event: 1.748 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\glass.dll +Event: 1.845 Loaded shared library C:\Users\HP\.jdks\openjdk-19.0.1\bin\jimage.dll +Event: 2.507 Loaded shared library C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\javafx_font.dll + +Deoptimization events (20 events): +Event: 114.602 Thread 0x000001f63fcfdd60 Uncommon trap: trap_request=0xffffff5c fr.pc=0x000001f62cc478f4 relative=0x0000000000000d74 +Event: 114.602 Thread 0x000001f63fcfdd60 Uncommon trap: reason=speculate_null_check action=make_not_entrant pc=0x000001f62cc478f4 method=java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;IZZZJ)I @ 254 c2 +Event: 114.602 Thread 0x000001f63fcfdd60 DEOPT PACKING pc=0x000001f62cc478f4 sp=0x00000050eeafe200 +Event: 114.602 Thread 0x000001f63fcfdd60 DEOPT UNPACKING pc=0x000001f62c346da3 sp=0x00000050eeafe190 mode 2 +Event: 117.499 Thread 0x000001f63fcfdd60 Uncommon trap: trap_request=0xffffffd6 fr.pc=0x000001f62cc4b77c relative=0x000000000000047c +Event: 117.499 Thread 0x000001f63fcfdd60 Uncommon trap: reason=array_check action=maybe_recompile pc=0x000001f62cc4b77c method=java.util.AbstractCollection.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 116 c2 +Event: 117.499 Thread 0x000001f63fcfdd60 DEOPT PACKING pc=0x000001f62cc4b77c sp=0x00000050eeafe180 +Event: 117.499 Thread 0x000001f63fcfdd60 DEOPT UNPACKING pc=0x000001f62c346da3 sp=0x00000050eeafe140 mode 2 +Event: 117.499 Thread 0x000001f63fcfdd60 Uncommon trap: trap_request=0xffffffd6 fr.pc=0x000001f62cc4b77c relative=0x000000000000047c +Event: 117.499 Thread 0x000001f63fcfdd60 Uncommon trap: reason=array_check action=maybe_recompile pc=0x000001f62cc4b77c method=java.util.AbstractCollection.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 116 c2 +Event: 117.499 Thread 0x000001f63fcfdd60 DEOPT PACKING pc=0x000001f62cc4b77c sp=0x00000050eeafe110 +Event: 117.499 Thread 0x000001f63fcfdd60 DEOPT UNPACKING pc=0x000001f62c346da3 sp=0x00000050eeafe0d0 mode 2 +Event: 117.499 Thread 0x000001f63fcfdd60 Uncommon trap: trap_request=0xffffffd6 fr.pc=0x000001f62cc4b77c relative=0x000000000000047c +Event: 117.499 Thread 0x000001f63fcfdd60 Uncommon trap: reason=array_check action=maybe_recompile pc=0x000001f62cc4b77c method=java.util.AbstractCollection.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 116 c2 +Event: 117.499 Thread 0x000001f63fcfdd60 DEOPT PACKING pc=0x000001f62cc4b77c sp=0x00000050eeafe0a0 +Event: 117.499 Thread 0x000001f63fcfdd60 DEOPT UNPACKING pc=0x000001f62c346da3 sp=0x00000050eeafe060 mode 2 +Event: 117.499 Thread 0x000001f63fcfdd60 Uncommon trap: trap_request=0xffffffd6 fr.pc=0x000001f62cc4b77c relative=0x000000000000047c +Event: 117.499 Thread 0x000001f63fcfdd60 Uncommon trap: reason=array_check action=maybe_recompile pc=0x000001f62cc4b77c method=java.util.AbstractCollection.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 116 c2 +Event: 117.499 Thread 0x000001f63fcfdd60 DEOPT PACKING pc=0x000001f62cc4b77c sp=0x00000050eeafe030 +Event: 117.499 Thread 0x000001f63fcfdd60 DEOPT UNPACKING pc=0x000001f62c346da3 sp=0x00000050eeafdff0 mode 2 + +Classes loaded (20 events): +Event: 32.791 Loading class java/util/concurrent/CompletionException +Event: 32.791 Loading class java/util/concurrent/CompletionException done +Event: 32.792 Loading class java/lang/Throwable$WrappedPrintStream +Event: 32.792 Loading class java/lang/Throwable$PrintStreamOrWriter +Event: 32.792 Loading class java/lang/Throwable$PrintStreamOrWriter done +Event: 32.792 Loading class java/lang/Throwable$WrappedPrintStream done +Event: 34.420 Loading class java/text/DigitList$1 +Event: 34.420 Loading class java/text/DigitList$1 done +Event: 63.747 Loading class java/util/stream/Streams$RangeIntSpliterator +Event: 63.749 Loading class java/util/stream/Streams$RangeIntSpliterator done +Event: 63.751 Loading class java/util/function/IntUnaryOperator +Event: 63.751 Loading class java/util/function/IntUnaryOperator done +Event: 63.752 Loading class java/util/stream/IntPipeline$4 +Event: 63.753 Loading class java/util/stream/IntPipeline$4 done +Event: 63.762 Loading class java/util/stream/IntPipeline$4$1 +Event: 63.762 Loading class java/util/stream/IntPipeline$4$1 done +Event: 81.149 Loading class jdk/internal/event/ThreadSleepEvent +Event: 81.153 Loading class jdk/internal/event/ThreadSleepEvent done +Event: 92.272 Loading class java/util/Formatter$FixedString +Event: 92.274 Loading class java/util/Formatter$FixedString done + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 3.882 Thread 0x000001f63fcfdd60 Exception (0x0000000088e84fa8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 3.925 Thread 0x000001f63fcfdd60 Exception (0x0000000088dda820) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 3.927 Thread 0x000001f63fcfdd60 Exception (0x0000000088ded450) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 3.928 Thread 0x000001f63fcfdd60 Exception (0x0000000088df5fc8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 4.495 Thread 0x000001f63fcfdd60 Exception (0x000000008adb66c8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 4.804 Thread 0x000001f63fcfdd60 Exception (0x000000008a9486c0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 4.804 Thread 0x000001f63fcfdd60 Exception (0x000000008a94bd38) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 4.808 Thread 0x000001f63fcfdd60 Exception (0x000000008a9641d8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 4.808 Thread 0x000001f63fcfdd60 Exception (0x000000008a967d60) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 5.043 Thread 0x000001f63ff90b50 Exception (0x000000008a55bee8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 25.468 Thread 0x000001f63fcfdd60 Implicit null exception at 0x000001f62ca2790a to 0x000001f62ca279a8 +Event: 30.975 Thread 0x000001f63fcfdd60 Exception (0x0000000089c6afb0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 30.976 Thread 0x000001f63fcfdd60 Exception (0x0000000089c6e908) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 31.063 Thread 0x000001f63fcfdd60 Implicit null exception at 0x000001f62c8f6af7 to 0x000001f62c8f6b90 +Event: 59.122 Thread 0x000001f63fcfdd60 Exception (0x000000008943b7a0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 63.710 Thread 0x000001f63fcfdd60 Exception (0x0000000089479438) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 63.713 Thread 0x000001f63fcfdd60 Exception (0x000000008948c420) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 63.714 Thread 0x000001f63fcfdd60 Exception (0x00000000894dffd0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 63.764 Thread 0x000001f63fcfdd60 Exception (0x00000000894f9300) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 774] +Event: 89.852 Thread 0x000001f640e4a5e0 Exception (0x0000000088d7f578) +thrown [s\open\src\hotspot\share\prims\jvm.cpp, line 3103] + +VM Operations (20 events): +Event: 116.288 Executing VM operation: Cleanup +Event: 116.288 Executing VM operation: Cleanup done +Event: 118.288 Executing VM operation: Cleanup +Event: 118.288 Executing VM operation: Cleanup done +Event: 120.289 Executing VM operation: Cleanup +Event: 120.289 Executing VM operation: Cleanup done +Event: 121.289 Executing VM operation: Cleanup +Event: 121.289 Executing VM operation: Cleanup done +Event: 122.289 Executing VM operation: Cleanup +Event: 122.289 Executing VM operation: Cleanup done +Event: 123.290 Executing VM operation: Cleanup +Event: 123.290 Executing VM operation: Cleanup done +Event: 124.290 Executing VM operation: Cleanup +Event: 124.290 Executing VM operation: Cleanup done +Event: 125.291 Executing VM operation: Cleanup +Event: 125.291 Executing VM operation: Cleanup done +Event: 127.292 Executing VM operation: Cleanup +Event: 127.293 Executing VM operation: Cleanup done +Event: 128.293 Executing VM operation: Cleanup +Event: 128.293 Executing VM operation: Cleanup done + +Events (20 events): +Event: 65.429 Thread 0x000001f63b41fd00 flushing nmethod 0x000001f6256d5290 +Event: 65.429 Thread 0x000001f63b41fd00 flushing nmethod 0x000001f6256dbc90 +Event: 65.429 Thread 0x000001f63b41fd00 flushing nmethod 0x000001f6256e4710 +Event: 65.429 Thread 0x000001f63b41fd00 flushing nmethod 0x000001f6256e7b90 +Event: 65.429 Thread 0x000001f63b41fd00 flushing nmethod 0x000001f62570f210 +Event: 65.429 Thread 0x000001f63b41fd00 flushing nmethod 0x000001f625710210 +Event: 65.429 Thread 0x000001f63b41fd00 flushing nmethod 0x000001f625719b90 +Event: 65.430 Thread 0x000001f63b41fd00 flushing nmethod 0x000001f6257c6d90 +Event: 81.146 Thread 0x000001f640e4a5e0 Thread added: 0x000001f640e4a5e0 +Event: 89.852 Thread 0x000001f640e4a5e0 Thread exited: 0x000001f640e4a5e0 +Event: 92.285 Thread 0x000001f63b41fd00 flushing nmethod 0x000001f625304a10 +Event: 92.285 Thread 0x000001f63b41fd00 flushing nmethod 0x000001f625345610 +Event: 92.287 Thread 0x000001f63b41fd00 flushing nmethod 0x000001f625662090 +Event: 121.458 Thread 0x000001f640e4a5e0 Thread added: 0x000001f640e4a5e0 +Event: 121.458 Thread 0x000001f640e470c0 Thread added: 0x000001f640e470c0 +Event: 121.459 Thread 0x000001f640e470c0 Thread exited: 0x000001f640e470c0 +Event: 124.765 Thread 0x000001f640e470c0 Thread added: 0x000001f640e470c0 +Event: 124.766 Thread 0x000001f640e470c0 Thread exited: 0x000001f640e470c0 +Event: 128.024 Thread 0x000001f640e470c0 Thread added: 0x000001f640e470c0 +Event: 128.025 Thread 0x000001f640e470c0 Thread exited: 0x000001f640e470c0 + + +Dynamic libraries: +0x00007ff62ac90000 - 0x00007ff62ac9e000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\java.exe +0x00007ffb31d50000 - 0x00007ffb31f64000 C:\WINDOWS\SYSTEM32\ntdll.dll +0x00007ffb313b0000 - 0x00007ffb31472000 C:\WINDOWS\System32\KERNEL32.DLL +0x00007ffb2f7a0000 - 0x00007ffb2fb43000 C:\WINDOWS\System32\KERNELBASE.dll +0x00007ffb2f5c0000 - 0x00007ffb2f6d1000 C:\WINDOWS\System32\ucrtbase.dll +0x00007ffb2b490000 - 0x00007ffb2b4ab000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\VCRUNTIME140.dll +0x00007ffb2b470000 - 0x00007ffb2b487000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\jli.dll +0x00007ffb30570000 - 0x00007ffb3071b000 C:\WINDOWS\System32\USER32.dll +0x00007ffb2f380000 - 0x00007ffb2f3a6000 C:\WINDOWS\System32\win32u.dll +0x00007ffb31740000 - 0x00007ffb31769000 C:\WINDOWS\System32\GDI32.dll +0x00007ffb0db30000 - 0x00007ffb0ddbe000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.1635_none_270f70857386168e\COMCTL32.dll +0x00007ffb2f1f0000 - 0x00007ffb2f308000 C:\WINDOWS\System32\gdi32full.dll +0x00007ffb2f3b0000 - 0x00007ffb2f44a000 C:\WINDOWS\System32\msvcp_win.dll +0x00007ffb31630000 - 0x00007ffb316d7000 C:\WINDOWS\System32\msvcrt.dll +0x00007ffb30b60000 - 0x00007ffb30b91000 C:\WINDOWS\System32\IMM32.DLL +0x00007ffb2bd20000 - 0x00007ffb2bd2c000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\vcruntime140_1.dll +0x00007ffb14120000 - 0x00007ffb141ae000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\msvcp140.dll +0x00007ffad0570000 - 0x00007ffad1230000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\server\jvm.dll +0x00007ffb31c60000 - 0x00007ffb31d0e000 C:\WINDOWS\System32\ADVAPI32.dll +0x00007ffb31850000 - 0x00007ffb318f4000 C:\WINDOWS\System32\sechost.dll +0x00007ffb31aa0000 - 0x00007ffb31bb7000 C:\WINDOWS\System32\RPCRT4.dll +0x00007ffb2bcc0000 - 0x00007ffb2bcc9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll +0x00007ffb25ae0000 - 0x00007ffb25b14000 C:\WINDOWS\SYSTEM32\WINMM.dll +0x00007ffb31bc0000 - 0x00007ffb31c31000 C:\WINDOWS\System32\WS2_32.dll +0x00007ffb24ec0000 - 0x00007ffb24eca000 C:\WINDOWS\SYSTEM32\VERSION.dll +0x00007ffb2e290000 - 0x00007ffb2e2a8000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll +0x00007ffb2bcf0000 - 0x00007ffb2bcfa000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\jimage.dll +0x00007ffb2c4d0000 - 0x00007ffb2c6fe000 C:\WINDOWS\SYSTEM32\DBGHELP.DLL +0x00007ffb30ba0000 - 0x00007ffb30f29000 C:\WINDOWS\System32\combase.dll +0x00007ffb31770000 - 0x00007ffb31847000 C:\WINDOWS\System32\OLEAUT32.dll +0x00007ffb1cea0000 - 0x00007ffb1ced2000 C:\WINDOWS\SYSTEM32\dbgcore.DLL +0x00007ffb2f170000 - 0x00007ffb2f1eb000 C:\WINDOWS\System32\bcryptPrimitives.dll +0x00007ffb1c210000 - 0x00007ffb1c21e000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\instrument.dll +0x00007ffb2a050000 - 0x00007ffb2a076000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\java.dll +0x00007ffb0f280000 - 0x00007ffb0f357000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\jsvml.dll +0x00007ffb2fbb0000 - 0x00007ffb303aa000 C:\WINDOWS\System32\SHELL32.dll +0x00007ffb2d130000 - 0x00007ffb2d9fe000 C:\WINDOWS\SYSTEM32\windows.storage.dll +0x00007ffb2cff0000 - 0x00007ffb2d12e000 C:\WINDOWS\SYSTEM32\wintypes.dll +0x00007ffb303c0000 - 0x00007ffb304b1000 C:\WINDOWS\System32\SHCORE.dll +0x00007ffb30740000 - 0x00007ffb3079e000 C:\WINDOWS\System32\shlwapi.dll +0x00007ffb2f0a0000 - 0x00007ffb2f0c1000 C:\WINDOWS\SYSTEM32\profapi.dll +0x00007ffb26060000 - 0x00007ffb26073000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\net.dll +0x00007ffb25d30000 - 0x00007ffb25e67000 C:\WINDOWS\SYSTEM32\WINHTTP.dll +0x00007ffb2e720000 - 0x00007ffb2e789000 C:\WINDOWS\system32\mswsock.dll +0x00007ffb25010000 - 0x00007ffb25026000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\nio.dll +0x00007ffb24ff0000 - 0x00007ffb25008000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\zip.dll +0x00007ffb1baf0000 - 0x00007ffb1bb0a000 C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.1.2\bin\breakgen64.dll +0x00007ffb1c290000 - 0x00007ffb1c298000 C:\Users\HP\.jdks\openjdk-19.0.1\bin\extnet.dll +0x000001f63b570000 - 0x000001f63b573000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-console-l1-1-0.dll +0x000001f63b580000 - 0x000001f63b583000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-console-l1-2-0.dll +0x000001f63b590000 - 0x000001f63b593000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-datetime-l1-1-0.dll +0x000001f63b5a0000 - 0x000001f63b5a3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-debug-l1-1-0.dll +0x000001f63b5b0000 - 0x000001f63b5b3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-errorhandling-l1-1-0.dll +0x000001f63b5c0000 - 0x000001f63b5c4000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-file-l1-1-0.dll +0x000001f63b5d0000 - 0x000001f63b5d3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-file-l1-2-0.dll +0x000001f63b5e0000 - 0x000001f63b5e3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-file-l2-1-0.dll +0x000001f63b5f0000 - 0x000001f63b5f3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-handle-l1-1-0.dll +0x000001f63b600000 - 0x000001f63b603000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-heap-l1-1-0.dll +0x000001f63b610000 - 0x000001f63b613000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-interlocked-l1-1-0.dll +0x000001f63b620000 - 0x000001f63b623000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-libraryloader-l1-1-0.dll +0x000001f63b630000 - 0x000001f63b633000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-localization-l1-2-0.dll +0x000001f63b640000 - 0x000001f63b643000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-memory-l1-1-0.dll +0x000001f63b650000 - 0x000001f63b653000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-namedpipe-l1-1-0.dll +0x000001f63b660000 - 0x000001f63b663000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-processenvironment-l1-1-0.dll +0x000001f63b670000 - 0x000001f63b673000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-processthreads-l1-1-0.dll +0x000001f63b680000 - 0x000001f63b683000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-processthreads-l1-1-1.dll +0x000001f63b690000 - 0x000001f63b693000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-profile-l1-1-0.dll +0x000001f63b6a0000 - 0x000001f63b6a3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-rtlsupport-l1-1-0.dll +0x000001f63b6b0000 - 0x000001f63b6b3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-string-l1-1-0.dll +0x000001f63b6c0000 - 0x000001f63b6c3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-synch-l1-1-0.dll +0x000001f63b6d0000 - 0x000001f63b6d3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-synch-l1-2-0.dll +0x000001f63b6e0000 - 0x000001f63b6e3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-sysinfo-l1-1-0.dll +0x000001f63b6f0000 - 0x000001f63b6f3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-timezone-l1-1-0.dll +0x000001f63b700000 - 0x000001f63b703000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-core-util-l1-1-0.dll +0x000001f63b710000 - 0x000001f63b713000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-conio-l1-1-0.dll +0x000001f63b720000 - 0x000001f63b724000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-convert-l1-1-0.dll +0x000001f63b730000 - 0x000001f63b733000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-environment-l1-1-0.dll +0x000001f63b740000 - 0x000001f63b743000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-filesystem-l1-1-0.dll +0x000001f63b750000 - 0x000001f63b753000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-heap-l1-1-0.dll +0x000001f63b760000 - 0x000001f63b763000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-locale-l1-1-0.dll +0x000001f63b770000 - 0x000001f63b775000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-math-l1-1-0.dll +0x000001f63b780000 - 0x000001f63b785000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-multibyte-l1-1-0.dll +0x000001f63b790000 - 0x000001f63b7a0000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-private-l1-1-0.dll +0x000001f63b7a0000 - 0x000001f63b7a3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-process-l1-1-0.dll +0x000001f63b7b0000 - 0x000001f63b7b4000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-runtime-l1-1-0.dll +0x000001f63b7d0000 - 0x000001f63b7d4000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-stdio-l1-1-0.dll +0x000001f63b7e0000 - 0x000001f63b7e4000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-string-l1-1-0.dll +0x000001f63b7f0000 - 0x000001f63b7f3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-time-l1-1-0.dll +0x000001f6413d0000 - 0x000001f6413d3000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\api-ms-win-crt-utility-l1-1-0.dll +0x00007ffafa6e0000 - 0x00007ffafa7dc000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\ucrtbase.dll +0x00007ffb1b9d0000 - 0x00007ffb1b9eb000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\vcruntime140.dll +0x00007ffb1b9c0000 - 0x00007ffb1b9cc000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\vcruntime140_1.dll +0x00007ffb13a50000 - 0x00007ffb13ade000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\msvcp140.dll +0x00007ffb1b9b0000 - 0x00007ffb1b9b9000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\msvcp140_1.dll +0x00007ffb1aef0000 - 0x00007ffb1af20000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\msvcp140_2.dll +0x00007ffb140f0000 - 0x00007ffb1411c000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\prism_d3d.dll +0x00007ffb13860000 - 0x00007ffb13a09000 C:\WINDOWS\system32\d3d9.dll +0x00007ffb2c810000 - 0x00007ffb2c83b000 C:\WINDOWS\SYSTEM32\dwmapi.dll +0x00007ffb2c490000 - 0x00007ffb2c4c6000 C:\WINDOWS\SYSTEM32\dxcore.dll +0x00007ffb2c290000 - 0x00007ffb2c33b000 C:\WINDOWS\system32\uxtheme.dll +0x00007ffb1abe0000 - 0x00007ffb1ac28000 C:\WINDOWS\SYSTEM32\directxdatabasehelper.dll +0x00007ffb2e9e0000 - 0x00007ffb2e9f2000 C:\WINDOWS\SYSTEM32\msasn1.dll +0x00007ffb214f0000 - 0x00007ffb21522000 C:\WINDOWS\SYSTEM32\cryptnet.dll +0x00007ffb2f450000 - 0x00007ffb2f5b7000 C:\WINDOWS\System32\CRYPT32.dll +0x00007ffb2e980000 - 0x00007ffb2e98c000 C:\WINDOWS\SYSTEM32\cryptbase.dll +0x00007ffb2f310000 - 0x00007ffb2f37b000 C:\WINDOWS\System32\WINTRUST.DLL +0x00007ffb30720000 - 0x00007ffb3073f000 C:\WINDOWS\System32\imagehlp.dll +0x00007ffb2e990000 - 0x00007ffb2e9ab000 C:\WINDOWS\SYSTEM32\CRYPTSP.dll +0x00007ffb2e1f0000 - 0x00007ffb2e225000 C:\WINDOWS\system32\rsaenh.dll +0x00007ffb2eb40000 - 0x00007ffb2eb68000 C:\WINDOWS\SYSTEM32\bcrypt.dll +0x00007ffaaa3f0000 - 0x00007ffaac9f6000 C:\WINDOWS\System32\DriverStore\FileRepository\nvhm.inf_amd64_178c927f3d4607c8\nvd3dumx.dll +0x00007ffb13570000 - 0x00007ffb135b2000 C:\Program Files\Java\javafx-sdk-19.0.2.1\bin\glass.dll +0x00007ffb31480000 - 0x00007ffb31577000 C:\WINDOWS\System32\COMDLG32.dll +0x00007ffb309c0000 - 0x00007ffb30b5c000 C:\WINDOWS\System32\ole32.dll +0x00007ffb31980000 - 0x00007ffb31a9e000 C:\WINDOWS\System32\MSCTF.dll +0x00007ffaf2a30000 - 0x00007ffaf2aee000 C:\WINDOWS\System32\DriverStore\FileRepository\nvhm.inf_amd64_178c927f3d4607c8\nvldumdx.dll +0x00007ffb1d4d0000 - 0x00007ffb1d631000 C:\WINDOWS\SYSTEM32\drvstore.dll +0x00007ffb2ee30000 - 0x00007ffb2ee5c000 C:\WINDOWS\SYSTEM32\devobj.dll +0x00007ffb2ee60000 - 0x00007ffb2eeae000 C:\WINDOWS\SYSTEM32\cfgmgr32.dll +0x00007ffb2ea50000 - 0x00007ffb2ea98000 C:\WINDOWS\SYSTEM32\wldp.dll +0x00007ffafb360000 - 0x00007ffafb621000 C:\WINDOWS\system32\nvspcap64.dll +0x00007ffb2e2b0000 - 0x00007ffb2e2e4000 C:\WINDOWS\SYSTEM32\ntmarta.dll +0x00007ffb2e7b0000 - 0x00007ffb2e7d6000 C:\WINDOWS\SYSTEM32\gpapi.dll +0x00007ffaad080000 - 0x00007ffaad1e3000 C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_14a5bb6045f923bf\igdumdim64.dll +0x00007ffaa4470000 - 0x00007ffaa8bf5000 C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_14a5bb6045f923bf\igd9dxva64.dll +0x00007ffb30f30000 - 0x00007ffb313a4000 C:\WINDOWS\System32\SETUPAPI.dll +0x00007ffb175e0000 - 0x00007ffb17861000 C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_14a5bb6045f923bf\igdgmm64.dll +0x00007ffb13f80000 - 0x00007ffb13fa7000 C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_14a5bb6045f923bf\igdinfo64.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Users\HP\.jdks\openjdk-19.0.1\bin;C:\WINDOWS\SYSTEM32;C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.1635_none_270f70857386168e;C:\Users\HP\.jdks\openjdk-19.0.1\bin\server;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.1.2\bin;C:\Program Files\Java\javafx-sdk-19.0.2.1\bin;C:\WINDOWS\System32\DriverStore\FileRepository\nvhm.inf_amd64_178c927f3d4607c8;C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_14a5bb6045f923bf;C:\Program Files\Common Files\Microsoft Shared\Ink;C:\WINDOWS\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.22621.1635_none_57fa636ace18905c;C:\Program Files\Google\Drive;C:\WINDOWS\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9635_none_08e2c157a83ed5da;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\mscorlib\3b9003e4f27d92e40668f0efad11e022;C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System\ce0fd4f5b50baa17e7b80e4ee874ad11;C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Drawing\3c82a5286b5172d5a68c8df2e09c4c40;C:\WINDOWS\System32\DriverStore\FileRepository\iastorpinningcomponent.inf_amd64_59691a4ee8d947dd;C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Core\990501e6199819806f01c8ecac88baac;C:\Users\HP\AppData\Local\Microsoft\OneDrive\23.091.0430.0001 + +VM Arguments: +jvm_args: --module-path=C:\Program Files\Java\javafx-sdk-19.0.2.1\lib --add-modules=javafx.controls,javafx.fxml -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.1.2\lib\idea_rt.jar=50670:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.1.2\bin -Dfile.encoding=UTF-8 +java_command: smeen.application.Main +java_class_path (initial): D:\Chula Study\Year 1\PROG METH\IdeaProjects\project-2022-2-psls\out\production\smeen;C:\Program Files\Java\javafx-sdk-19.0.2.1\lib\javafx-swt.jar;C:\Program Files\Java\javafx-sdk-19.0.2.1\lib\javafx.web.jar;C:\Program Files\Java\javafx-sdk-19.0.2.1\lib\javafx.base.jar;C:\Program Files\Java\javafx-sdk-19.0.2.1\lib\javafx.fxml.jar;C:\Program Files\Java\javafx-sdk-19.0.2.1\lib\javafx.media.jar;C:\Program Files\Java\javafx-sdk-19.0.2.1\lib\javafx.swing.jar;C:\Program Files\Java\javafx-sdk-19.0.2.1\lib\javafx.controls.jar;C:\Program Files\Java\javafx-sdk-19.0.2.1\lib\javafx.graphics.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 3 {product} {ergonomic} + uint ConcGCThreads = 1 {product} {ergonomic} + uint G1ConcRefinementThreads = 4 {product} {ergonomic} + size_t G1HeapRegionSize = 1048576 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 132120576 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 2092957696 {product} {ergonomic} + size_t MaxNewSize = 1255145472 {product} {ergonomic} + size_t MinHeapDeltaBytes = 1048576 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 5832780 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122912730 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122912730 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 2092957696 {manageable} {ergonomic} + bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +JAVA_HOME=C:\Program Files\Java\jdk-15.0.1 +PATH=C:\Python38\Scripts\;C:\Python38\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\ProgramData\chocolatey\bin;C:\Program Files\Git\cmd;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Cloudflare\Cloudflare WARP;C:\Program Files\Go\bin;C:\Program Files\Docker\Docker\resources\bin;C:\Users\HP\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Program Files\PuTTY\;C:\Program Files\Cloudflare\Cloudflare WARP\;C:\Users\HP\.windows-build-tools\python27\;C:\Users\HP\AppData\Local\Programs\Python\Python38-32\Scripts\;C:\Users\HP\AppData\Local\Programs\Python\Python38-32\;C:\Users\HP\AppData\Local\Microsoft\WindowsApps;C:\Users\HP\AppData\Local\GitHubDesktop\bin;C:\Users\HP\AppData\Local\Coursier\data\bin;C:\Users\HP\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\HP\AppData\Roaming\cabal\bin;C:\Program Files\heroku\bin;C:\Program Files\Java\jdk-19.0.2\bin;C:\Exercism;C:\Gradle\gradle-6.5.1\bin;D:\Program Files\ffmpeg\bin;C:\Program Files (x86)\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin;C:\Program Files\VisualVM\visualvm_204\bin;C:\Program Files\PostgreSQL\12\bin;C:\Program Files\MongoDB\Server\4.2\bin;C:\Program Files\bundletool\1.4.0;C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.10.3\bin;C:\tools\msys64;C:\src\flutter\flutter\bin;C:\Users\HP\go\bin;C:\tools\dart-sdk\bin;C:\Users\HP\AppData\Roaming\Pub\Cache\bin;C:\Users\HP\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin;C:\Users\HP\AppData\Roaming\npm;C:\Users\HP\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Users\HP\AppData\Local\Microsoft\WindowsApps; +USERNAME=HP +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 12, GenuineIntel +TMP=C:\Users\HP\AppData\Local\Temp +TEMP=C:\Users\HP\AppData\Local\Temp + + + +--------------- S Y S T E M --------------- + +OS: + Windows 11 , 64 bit Build 22621 (10.0.22621.1635) +OS uptime: 9 days 0:10 hours +Hyper-V role detected + +CPU: total 4 (initial active 4) (2 cores per cpu, 2 threads per core) family 6 model 142 stepping 12 microcode 0xde, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, hv, rdtscp + +Memory: 4k page, system-wide physical 7979M (244M free) +TotalPageFile size 32555M (AvailPageFile size 0M) +current process WorkingSet (physical memory assigned to process): 174M, peak: 251M +current process commit charge ("private bytes"): 367M, peak: 397M + +vm_info: OpenJDK 64-Bit Server VM (19.0.1+10-21) for windows-amd64 JRE (19.0.1+10-21), built on 2022-09-14T12:45:06Z by "mach5one" with MS VC++ 17.1 (VS2022) + +END. diff --git a/replay_pid11796.log b/replay_pid11796.log new file mode 100644 index 0000000..ff48f41 --- /dev/null +++ b/replay_pid11796.log @@ -0,0 +1,3631 @@ +version 2 +JvmtiExport can_access_local_variables 0 +JvmtiExport can_hotswap_or_post_breakpoint 0 +JvmtiExport can_post_on_exceptions 0 +# 231 ciObject found +instanceKlass java/util/concurrent/LinkedBlockingDeque +ciInstanceKlass java/lang/Cloneable 1 0 7 100 1 100 1 1 1 +instanceKlass java/util/Formatter$Flags +instanceKlass java/util/Formattable +instanceKlass java/util/Formatter$FormatSpecifier +instanceKlass java/util/Formatter$Conversion +instanceKlass java/util/Formatter$FixedString +instanceKlass java/util/Formatter$FormatString +instanceKlass java/util/Formatter +instanceKlass @bci smeen/component/code/block/movement/MoveBackwardCodeBlock execute (Lsmeen/logic/SmeenContext;)Lsmeen/logic/Executable$Result; 108 member ; # smeen/component/code/block/movement/MoveBackwardCodeBlock$$Lambda$859+0x0000000801320ec8 +instanceKlass @bci smeen/logic/CodeExecutionHandler onSceneChanged (I)V 14 member ; # smeen/logic/CodeExecutionHandler$$Lambda$858+0x0000000801320c88 +instanceKlass @cpi smeen/logic/CodeExecutionHandler 333 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801324400 +instanceKlass @bci smeen/component/code/block/movement/MoveForwardCodeBlock execute (Lsmeen/logic/SmeenContext;)Lsmeen/logic/Executable$Result; 106 member ; # smeen/component/code/block/movement/MoveForwardCodeBlock$$Lambda$857+0x0000000801320a78 +instanceKlass @cpi smeen/component/code/block/movement/MoveBackwardCodeBlock 263 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801324000 +instanceKlass com/sun/javafx/collections/ObservableSetWrapper$1 +instanceKlass @bci com/sun/javafx/tk/quantum/PaintCollector lambda$liveRepaintRenderJob$2 (Lcom/sun/javafx/tk/quantum/QuantumToolkit;Lcom/sun/javafx/tk/quantum/ViewPainter;Ljava/util/concurrent/CountDownLatch;)Ljava/lang/Object; 7 member ; # com/sun/javafx/tk/quantum/PaintCollector$$Lambda$856+0x0000000801320210 +instanceKlass @bci com/sun/javafx/tk/quantum/PaintCollector liveRepaintRenderJob (Lcom/sun/javafx/tk/quantum/ViewScene;)V 31 member ; # com/sun/javafx/tk/quantum/PaintCollector$$Lambda$855+0x0000000801320000 +instanceKlass com/sun/javafx/scene/input/KeyCodeMap +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler handleKeyEvent (Lcom/sun/glass/ui/View;JII[CI)V 53 member ; # com/sun/javafx/tk/quantum/GlassViewEventHandler$$Lambda$854+0x0000000801317b00 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080131fc00 +instanceKlass com/sun/prism/shader/Solid_Color_Loader +instanceKlass @bci smeen/component/code/CodeArea findCodeBlockListToDrag (DDLjavafx/scene/Node;)Lsmeen/component/code/CodeArea$FindCodeBlockListToDragResult; 124 ; # java/lang/invoke/LambdaForm$MH+0x000000080131f800 +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x000000080131f400 +instanceKlass @bci smeen/component/code/CodeArea findCodeBlockListToDrag (DDLjavafx/scene/Node;)Lsmeen/component/code/CodeArea$FindCodeBlockListToDragResult; 124 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080131f000 +instanceKlass @bci smeen/component/code/CodeArea findCodeBlockListToDrag (DDLjavafx/scene/Node;)Lsmeen/component/code/CodeArea$FindCodeBlockListToDragResult; 124 member ; # smeen/component/code/CodeArea$$Lambda$853+0x0000000801317480 +instanceKlass @cpi smeen/component/code/CodeArea 621 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080131ec00 +instanceKlass @bci smeen/component/code/CodeArea lambda$new$6 (Lsmeen/views/MainView;Ljavafx/scene/input/MouseEvent;)V 115 argL0 ; # smeen/component/code/CodeArea$$Lambda$852+0x0000000801317248 +instanceKlass @bci smeen/component/code/CodeArea lambda$new$6 (Lsmeen/views/MainView;Ljavafx/scene/input/MouseEvent;)V 105 member ; # smeen/component/code/CodeArea$$Lambda$851+0x0000000801317038 +instanceKlass @bci smeen/component/code/CodeArea lambda$new$6 (Lsmeen/views/MainView;Ljavafx/scene/input/MouseEvent;)V 93 member ; # smeen/component/code/CodeArea$$Lambda$850+0x0000000801316c10 +instanceKlass java/util/function/IntUnaryOperator +instanceKlass java/util/stream/Streams$RangeIntSpliterator +instanceKlass @bci com/sun/javafx/tk/quantum/GlassSceneDnDEventHandler handleDragStart (IIIIILcom/sun/glass/ui/ClipboardAssistance;)V 30 ; # java/lang/invoke/LambdaForm$MH+0x000000080131e800 +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x000000080131e400 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassSceneDnDEventHandler handleDragStart (IIIIILcom/sun/glass/ui/ClipboardAssistance;)V 30 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080131e000 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassSceneDnDEventHandler handleDragStart (IIIIILcom/sun/glass/ui/ClipboardAssistance;)V 30 member ; # com/sun/javafx/tk/quantum/GlassSceneDnDEventHandler$$Lambda$849+0x0000000801316a00 +instanceKlass @cpi com/sun/javafx/tk/quantum/GlassSceneDnDEventHandler 191 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080131dc00 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler handleDragStart (Lcom/sun/glass/ui/View;IIIIILcom/sun/glass/ui/ClipboardAssistance;)V 29 ; # java/lang/invoke/LambdaForm$MH+0x000000080131d800 +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x000000080131d400 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler handleDragStart (Lcom/sun/glass/ui/View;IIIIILcom/sun/glass/ui/ClipboardAssistance;)V 29 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080131d000 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler handleDragStart (Lcom/sun/glass/ui/View;IIIIILcom/sun/glass/ui/ClipboardAssistance;)V 29 member ; # com/sun/javafx/tk/quantum/GlassViewEventHandler$$Lambda$848+0x00000008013167f0 +instanceKlass @cpi com/sun/javafx/tk/quantum/GlassViewEventHandler 875 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080131cc00 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler lambda$handleScrollEvent$6 (Lcom/sun/glass/ui/View;DDDDIIIIIIIII)Ljava/lang/Void; 27 member ; # com/sun/javafx/tk/quantum/GlassViewEventHandler$$Lambda$847+0x0000000801315dc0 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler handleScrollEvent (Lcom/sun/glass/ui/View;JIIIIDDIIIIIDD)V 60 ; # java/lang/invoke/LambdaForm$MH+0x000000080131c800 +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x000000080131c400 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler handleScrollEvent (Lcom/sun/glass/ui/View;JIIIIDDIIIIIDD)V 60 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080131c000 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler handleScrollEvent (Lcom/sun/glass/ui/View;JIIIIDDIIIIIDD)V 60 member ; # com/sun/javafx/tk/quantum/GlassViewEventHandler$$Lambda$846+0x0000000801315bb0 +instanceKlass @cpi com/sun/javafx/tk/quantum/GlassViewEventHandler 851 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080131bc00 +instanceKlass java/text/DigitList$1 +instanceKlass java/lang/Throwable$PrintStreamOrWriter +instanceKlass @bci smeen/component/code/block/movement/RotateClockwiseCodeBlock execute (Lsmeen/logic/SmeenContext;)Lsmeen/logic/Executable$Result; 64 member ; # smeen/component/code/block/movement/RotateClockwiseCodeBlock$$Lambda$845+0x00000008013159a0 +instanceKlass @bci smeen/logic/CodeExecutionHandler lambda$runIf$6 (Ljava/util/function/Predicate;Lsmeen/component/code/CodeArea;)V 63 member ; # smeen/logic/CodeExecutionHandler$$Lambda$844+0x00000008013155a0 +instanceKlass @bci smeen/logic/CodeExecutionHandler forEachCodeArea (Ljava/util/function/Consumer;)V 8 member ; # smeen/logic/CodeExecutionHandler$$Lambda$843+0x0000000801315380 +instanceKlass @bci smeen/logic/CodeExecutionHandler runIf (Ljava/util/function/Predicate;)V 3 member ; # smeen/logic/CodeExecutionHandler$$Lambda$842+0x0000000801315160 +instanceKlass @bci smeen/logic/CodeExecutionHandler runIfTop (Ljava/util/function/Predicate;)V 2 member ; # smeen/logic/CodeExecutionHandler$$Lambda$841+0x0000000801314f20 +instanceKlass @bci smeen/logic/CodeExecutionHandler onGreenFlagClicked ()V 27 argL0 ; # smeen/logic/CodeExecutionHandler$$Lambda$840+0x0000000801314ce8 +instanceKlass @bci smeen/views/MainView importData (Ljava/util/Map;)V 66 member ; # smeen/views/MainView$$Lambda$839+0x0000000801314ac8 +instanceKlass @bci smeen/component/code/CodeBlockList lambda$new$3 (Ljavafx/collections/ListChangeListener$Change;)V 23 argL0 ; # smeen/component/code/CodeBlockList$$Lambda$838+0x0000000801314890 +instanceKlass com/sun/javafx/image/impl/BaseIntToByteConverter +instanceKlass java/io/ObjectStreamClass$ExceptionInfo +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080131b000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080131ac00 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080131a800 +instanceKlass java/util/CollSer +instanceKlass @bci java/util/stream/Collectors joining (Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector; 22 argL0 ; # java/util/stream/Collectors$$Lambda$28+0x800000043 +instanceKlass @bci java/util/stream/Collectors joining (Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector; 17 argL0 ; # java/util/stream/Collectors$$Lambda$26+0x800000041 +instanceKlass @bci java/util/stream/Collectors joining (Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector; 12 argL0 ; # java/util/stream/Collectors$$Lambda$23+0x80000003e +instanceKlass @bci java/util/stream/Collectors joining (Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector; 7 member ; # java/util/stream/Collectors$$Lambda$31+0x800000046 +instanceKlass java/util/StringJoiner +instanceKlass @bci java/lang/Class methodToString (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/String; 42 argL0 ; # java/lang/Class$$Lambda$833+0x00000008012fa700 +instanceKlass java/util/HashMap$UnsafeHolder +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801319800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801319400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801319000 +instanceKlass java/io/SerialCallbackContext +instanceKlass java/io/ObjectInputStream$GetField +instanceKlass java/io/ObjectStreamClass$ClassDataSlot +instanceKlass java/io/ObjectStreamClass$FieldReflector +instanceKlass java/io/ObjectStreamClass$FieldReflectorKey +instanceKlass java/io/ObjectOutput +instanceKlass jdk/internal/reflect/ClassDefiner$1 +instanceKlass jdk/internal/reflect/ClassDefiner +instanceKlass jdk/internal/reflect/MethodAccessorGenerator$1 +instanceKlass jdk/internal/reflect/Label$PatchInfo +instanceKlass jdk/internal/reflect/Label +instanceKlass jdk/internal/reflect/UTF8 +instanceKlass jdk/internal/reflect/ClassFileAssembler +instanceKlass jdk/internal/reflect/ByteVectorImpl +instanceKlass jdk/internal/reflect/ByteVector +instanceKlass jdk/internal/reflect/ByteVectorFactory +instanceKlass jdk/internal/reflect/AccessorGenerator +instanceKlass jdk/internal/reflect/ClassFileConstants +instanceKlass java/util/ComparableTimSort +instanceKlass @bci jdk/internal/reflect/MethodHandleLongFieldAccessorImpl getLong (Ljava/lang/Object;)J 11 ; # java/lang/invoke/LambdaForm$MH+0x0000000801318800 +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x0000000801318400 +instanceKlass java/io/ObjectStreamClass$2 +instanceKlass java/lang/reflect/InvocationHandler +instanceKlass java/lang/reflect/Proxy +instanceKlass java/io/ClassCache +instanceKlass java/io/ObjectStreamClass$Caches +instanceKlass jdk/internal/event/Event +instanceKlass java/io/ObjectStreamClass +instanceKlass java/io/Bits +instanceKlass @bci java/io/ObjectInputFilter$Config ()V 368 argL0 ; # java/io/ObjectInputFilter$Config$$Lambda$832+0x00000008012f4360 +instanceKlass jdk/internal/access/JavaObjectInputFilterAccess +instanceKlass java/io/ObjectInputFilter$Config$BuiltinFilterFactory +instanceKlass @bci java/io/ObjectInputFilter$Config ()V 80 argL0 ; # java/io/ObjectInputFilter$Config$$Lambda$831+0x00000008012f3d40 +instanceKlass @bci java/io/ObjectInputFilter$Config ()V 56 argL0 ; # java/io/ObjectInputFilter$Config$$Lambda$830+0x00000008012f3b38 +instanceKlass java/io/ObjectInputFilter +instanceKlass java/io/ObjectInputFilter$Config +instanceKlass java/io/ObjectInputStream$ValidationList +instanceKlass java/io/ObjectInputStream$HandleTable$HandleList +instanceKlass java/io/ObjectInputStream$HandleTable +instanceKlass @bci java/io/ObjectInputStream ()V 100 argL0 ; # java/io/ObjectInputStream$$Lambda$829+0x00000008012f2648 +instanceKlass jdk/internal/access/JavaObjectInputStreamReadString +instanceKlass @bci java/io/ObjectInputStream ()V 92 argL0 ; # java/io/ObjectInputStream$$Lambda$828+0x00000008012f2258 +instanceKlass @cpi java/io/ObjectInputStream 1225 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801318000 +instanceKlass jdk/internal/access/JavaObjectInputStreamAccess +instanceKlass java/io/ObjectStreamConstants +instanceKlass java/io/ObjectInput +instanceKlass com/sun/glass/ui/CommonDialogs$FileChooserResult +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkinBase lambda$removeMnemonicsFromScene$8 (Ljava/util/List;Ljavafx/scene/Scene;)V 7 member ; # javafx/scene/control/skin/MenuButtonSkinBase$$Lambda$827+0x0000000801313f88 +instanceKlass javafx/scene/input/Mnemonic +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkinBase removeMnemonicsFromScene (Ljava/util/List;Ljavafx/scene/Scene;)V 17 member ; # javafx/scene/control/skin/MenuButtonSkinBase$$Lambda$826+0x0000000801313b58 +instanceKlass @bci com/sun/javafx/tk/quantum/WindowStage close ()V 5 member ; # com/sun/javafx/tk/quantum/WindowStage$$Lambda$825+0x0000000801313948 +instanceKlass @bci com/sun/javafx/tk/quantum/ViewScene dispose ()V 8 member ; # com/sun/javafx/tk/quantum/ViewScene$$Lambda$824+0x0000000801313738 +instanceKlass @bci com/sun/javafx/tk/quantum/WindowStage setScene (Lcom/sun/javafx/tk/TKScene;)V 58 member ; # com/sun/javafx/tk/quantum/WindowStage$$Lambda$823+0x0000000801313528 +instanceKlass com/sun/glass/ui/win/WinCommonDialogs +instanceKlass com/sun/glass/ui/CommonDialogs +instanceKlass com/sun/glass/ui/CommonDialogs$ExtensionFilter +instanceKlass javafx/stage/FileChooser$ExtensionFilter +instanceKlass javafx/stage/FileChooser +instanceKlass @bci com/sun/javafx/tk/quantum/SceneState uploadPixels (Lcom/sun/prism/PixelSource;)V 2 member ; # com/sun/javafx/tk/quantum/SceneState$$Lambda$822+0x0000000801312180 +instanceKlass @bci javafx/stage/PopupWindow bindOwnerFocusedProperty (Ljavafx/stage/Window;)V 2 member ; # javafx/stage/PopupWindow$$Lambda$821+0x00000008013118b0 +instanceKlass com/sun/glass/ui/Window$TrackingRectangle +instanceKlass com/sun/glass/ui/Window$UndecoratedMoveResizeHelper +instanceKlass com/sun/prism/impl/QueuedPixelSource +instanceKlass com/sun/prism/PixelSource +instanceKlass @bci com/sun/javafx/scene/TreeShowingExpression (Ljavafx/scene/Node;)V 26 member ; # com/sun/javafx/scene/TreeShowingExpression$$Lambda$820+0x0000000801310e10 +instanceKlass @bci com/sun/javafx/scene/TreeShowingExpression (Ljavafx/scene/Node;)V 16 member ; # com/sun/javafx/scene/TreeShowingExpression$$Lambda$819+0x0000000801310c00 +instanceKlass @bci com/sun/javafx/scene/TreeShowingExpression (Ljavafx/scene/Node;)V 6 member ; # com/sun/javafx/scene/TreeShowingExpression$$Lambda$818+0x00000008013109f0 +instanceKlass @bci com/sun/javafx/util/Utils hasFullScreenStage (Ljavafx/stage/Screen;)Z 0 argL0 ; # com/sun/javafx/util/Utils$$Lambda$817+0x000000080130fa48 +instanceKlass com/sun/javafx/scene/control/ContextMenuContent$StyleableProperties +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer (Lcom/sun/javafx/scene/control/ContextMenuContent;Ljavafx/scene/control/MenuItem;)V 306 member ; # com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer$$Lambda$816+0x000000080130b870 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer (Lcom/sun/javafx/scene/control/ContextMenuContent;Ljavafx/scene/control/MenuItem;)V 295 member ; # com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer$$Lambda$815+0x000000080130b650 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer (Lcom/sun/javafx/scene/control/ContextMenuContent;Ljavafx/scene/control/MenuItem;)V 265 member ; # com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer$$Lambda$814+0x000000080130b430 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer createChildren ()V 694 member ; # com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer$$Lambda$813+0x000000080130b210 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer createChildren ()V 638 member ; # com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer$$Lambda$812+0x000000080130b000 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer createChildren ()V 607 member ; # com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer$$Lambda$811+0x000000080130adf0 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer createChildren ()V 371 member ; # com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer$$Lambda$810+0x000000080130abd0 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer createChildren ()V 293 member ; # com/sun/javafx/scene/control/ContextMenuContent$MenuItemContainer$$Lambda$809+0x000000080130a9c0 +instanceKlass javafx/scene/control/Toggle +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent initialize ()V 33 member ; # com/sun/javafx/scene/control/ContextMenuContent$$Lambda$808+0x0000000801309908 +instanceKlass com/sun/javafx/scene/control/ContextMenuContent$1 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent initialize ()V 8 member ; # com/sun/javafx/scene/control/ContextMenuContent$$Lambda$807+0x00000008013094d8 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent$ArrowMenuItem (Lcom/sun/javafx/scene/control/ContextMenuContent;Lcom/sun/javafx/scene/control/ContextMenuContent;)V 109 member ; # com/sun/javafx/scene/control/ContextMenuContent$ArrowMenuItem$$Lambda$806+0x00000008013092c8 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent$ArrowMenuItem (Lcom/sun/javafx/scene/control/ContextMenuContent;Lcom/sun/javafx/scene/control/ContextMenuContent;)V 96 member ; # com/sun/javafx/scene/control/ContextMenuContent$ArrowMenuItem$$Lambda$805+0x00000008013090b8 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent (Ljavafx/scene/control/ContextMenu;)V 96 member ; # com/sun/javafx/scene/control/ContextMenuContent$$Lambda$804+0x0000000801308ea8 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent (Ljavafx/scene/control/ContextMenu;)V 86 member ; # com/sun/javafx/scene/control/ContextMenuContent$$Lambda$803+0x0000000801308c98 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent (Ljavafx/scene/control/ContextMenu;)V 76 member ; # com/sun/javafx/scene/control/ContextMenuContent$$Lambda$802+0x0000000801308a88 +instanceKlass @bci com/sun/javafx/scene/control/ContextMenuContent (Ljavafx/scene/control/ContextMenu;)V 46 member ; # com/sun/javafx/scene/control/ContextMenuContent$$Lambda$801+0x0000000801308878 +instanceKlass javafx/scene/control/skin/ContextMenuSkin$5 +instanceKlass javafx/scene/control/skin/ContextMenuSkin$4 +instanceKlass javafx/scene/control/skin/ContextMenuSkin$3 +instanceKlass javafx/scene/control/skin/ContextMenuSkin$2 +instanceKlass javafx/scene/control/skin/ContextMenuSkin$1 +instanceKlass javafx/scene/control/skin/ContextMenuSkin +instanceKlass jdk/internal/math/FDBigInteger +instanceKlass java/text/AttributedCharacterIterator$Attribute +instanceKlass java/text/FieldPosition$Delegate +instanceKlass java/text/DontCareFieldPosition$1 +instanceKlass java/text/Format$FieldDelegate +instanceKlass java/text/DigitList +instanceKlass java/text/FieldPosition +instanceKlass java/lang/StringUTF16$CharsSpliterator +instanceKlass @bci java/util/stream/FindOps$FindSink$OfInt ()V 43 argL0 ; # java/util/stream/FindOps$FindSink$OfInt$$Lambda$33+0x800000048 +instanceKlass @bci java/util/stream/FindOps$FindSink$OfInt ()V 38 argL0 ; # java/util/stream/FindOps$FindSink$OfInt$$Lambda$35+0x80000004a +instanceKlass @bci java/util/stream/FindOps$FindSink$OfInt ()V 16 argL0 ; # java/util/stream/FindOps$FindSink$OfInt$$Lambda$34+0x800000049 +instanceKlass @bci java/util/stream/FindOps$FindSink$OfInt ()V 11 argL0 ; # java/util/stream/FindOps$FindSink$OfInt$$Lambda$36+0x80000004b +instanceKlass java/util/OptionalInt +instanceKlass @bci java/text/DecimalFormatSymbols findNonFormatChar (Ljava/lang/String;C)C 4 argL0 ; # java/text/DecimalFormatSymbols$$Lambda$7+0x80000000b +instanceKlass java/util/function/IntPredicate +instanceKlass java/lang/StringLatin1$CharsSpliterator +instanceKlass @bci sun/util/locale/provider/JRELocaleProviderAdapter getDecimalFormatSymbolsProvider ()Ljava/text/spi/DecimalFormatSymbolsProvider; 8 member ; # sun/util/locale/provider/JRELocaleProviderAdapter$$Lambda$63+0x800000069 +instanceKlass java/text/DecimalFormatSymbols +instanceKlass java/util/Locale$Builder +instanceKlass sun/util/locale/provider/CalendarDataUtility +instanceKlass @bci sun/util/locale/provider/JRELocaleProviderAdapter getNumberFormatProvider ()Ljava/text/spi/NumberFormatProvider; 8 member ; # sun/util/locale/provider/JRELocaleProviderAdapter$$Lambda$64+0x80000006a +instanceKlass java/text/Format +instanceKlass @bci com/sun/javafx/scene/control/inputmap/InputMap lookup (Ljavafx/event/Event;Z)Ljava/util/List; 82 argL0 ; # com/sun/javafx/scene/control/inputmap/InputMap$$Lambda$793+0x0000000801304378 +instanceKlass @bci javafx/scene/Scene$ClickCounter start (DD)V 67 member ; # javafx/scene/Scene$ClickCounter$$Lambda$792+0x0000000801304168 +instanceKlass com/sun/javafx/tk/TKDragSourceListener +instanceKlass javafx/scene/input/Clipboard +instanceKlass javafx/scene/Scene$DnDGesture +instanceKlass com/sun/glass/ui/win/WinClipboardDelegate +instanceKlass com/sun/glass/ui/Clipboard +instanceKlass com/sun/prism/impl/ps/CachingShapeRepState$CSRDisposerRecord +instanceKlass com/sun/prism/impl/ps/CachingShapeRepState$MaskTexData +instanceKlass @bci com/sun/prism/impl/ps/CachingShapeRepState$MaskCache ()V 0 argL0 ; # com/sun/prism/impl/ps/CachingShapeRepState$MaskCache$$Lambda$791+0x00000008013018e8 +instanceKlass com/sun/prism/impl/ps/CachingShapeRepState$CacheEntry +instanceKlass com/sun/prism/impl/ps/CachingShapeRepState$MaskCache +instanceKlass com/sun/prism/impl/ps/CachingShapeRepState +instanceKlass com/sun/prism/impl/ps/CachingShapeRep +instanceKlass com/sun/javafx/geom/transform/TransformHelper +instanceKlass com/sun/prism/shader/DrawPgram_Color_Loader +instanceKlass com/sun/javafx/font/directwrite/D2D1_POINT_2F +instanceKlass com/sun/javafx/font/directwrite/D2D1_PIXEL_FORMAT +instanceKlass com/sun/javafx/font/directwrite/D2D1_RENDER_TARGET_PROPERTIES +instanceKlass @bci com/sun/javafx/font/directwrite/DWFactory getWICFactory ()Lcom/sun/javafx/font/directwrite/IWICImagingFactory; 36 argL0 ; # com/sun/javafx/font/directwrite/DWFactory$$Lambda$790+0x00000008012eb628 +instanceKlass javafx/util/Pair +instanceKlass com/sun/prism/shader/FillCircle_Color_Loader +instanceKlass com/sun/prism/impl/shape/BasicShapeRep +instanceKlass com/sun/prism/shader/FillRoundRect_LinearGradient_PAD_Loader +instanceKlass @bci com/sun/scenario/effect/impl/BufferUtil nativeOrder (Ljava/nio/ByteBuffer;)V 12 argL0 ; # com/sun/scenario/effect/impl/BufferUtil$$Lambda$789+0x00000008012ea790 +instanceKlass com/sun/scenario/effect/impl/BufferUtil +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012e9800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012e9400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012e9000 +instanceKlass com/sun/scenario/effect/impl/state/BoxRenderState$1 +instanceKlass com/sun/javafx/sg/prism/NodeEffectInput$1 +instanceKlass @bci com/sun/scenario/effect/impl/state/LinearConvolveRenderState ()V 25 member ; # com/sun/scenario/effect/impl/state/LinearConvolveRenderState$$Lambda$788+0x00000008012ee908 +instanceKlass @cpi com/sun/scenario/effect/impl/state/LinearConvolveRenderState 173 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x00000008012e8c00 +instanceKlass com/sun/scenario/effect/impl/prism/PrRenderInfo +instanceKlass com/sun/scenario/effect/ImageDataRenderer +instanceKlass com/sun/prism/shader/Solid_TextureRGB_Loader +instanceKlass com/sun/prism/MultiTexture +instanceKlass com/sun/prism/shader/FillRoundRect_Color_Loader +instanceKlass com/sun/prism/shader/Texture_LinearGradient_PAD_Loader +instanceKlass com/sun/prism/shader/DrawRoundRect_Color_Loader +instanceKlass com/sun/javafx/image/impl/ByteGray$Accessor +instanceKlass com/sun/javafx/image/impl/ByteGray +instanceKlass com/sun/prism/shader/Texture_Color_Loader +instanceKlass com/sun/marlin/MaskMarlinAlphaConsumer +instanceKlass com/sun/marlin/ArrayCacheConst +instanceKlass com/sun/marlin/Helpers +instanceKlass com/sun/prism/impl/shape/DMarlinPrismUtils +instanceKlass com/sun/marlin/Dasher$LengthIterator +instanceKlass com/sun/marlin/Dasher +instanceKlass com/sun/marlin/Stroker +instanceKlass @bci com/sun/marlin/OffHeapArray (Ljava/lang/Object;J)V 52 member ; # com/sun/marlin/OffHeapArray$$Lambda$787+0x00000008012ec000 +instanceKlass com/sun/marlin/RendererContext$RendererSharedMemory +instanceKlass com/sun/marlin/IntArrayCache$Reference +instanceKlass com/sun/marlin/Helpers$IndexStack +instanceKlass com/sun/marlin/TransformingPathConsumer2D$PathClipFilter +instanceKlass com/sun/marlin/ByteArrayCache$Reference +instanceKlass com/sun/marlin/DoubleArrayCache$Reference +instanceKlass com/sun/marlin/Helpers$PolyStack +instanceKlass com/sun/marlin/TransformingPathConsumer2D$ClosedPathDetector +instanceKlass com/sun/marlin/TransformingPathConsumer2D$PathTracer +instanceKlass com/sun/marlin/TransformingPathConsumer2D$DeltaTransformFilter +instanceKlass com/sun/marlin/TransformingPathConsumer2D$DeltaScaleFilter +instanceKlass com/sun/marlin/TransformingPathConsumer2D$Path2DWrapper +instanceKlass com/sun/marlin/TransformingPathConsumer2D +instanceKlass com/sun/marlin/TransformingPathConsumer2D$CurveClipSplitter +instanceKlass com/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer +instanceKlass com/sun/marlin/ByteArrayCache +instanceKlass com/sun/marlin/DoubleArrayCache +instanceKlass com/sun/marlin/IntArrayCache +instanceKlass com/sun/marlin/PathSimplifier +instanceKlass com/sun/marlin/CollinearSimplifier +instanceKlass com/sun/marlin/Curve +instanceKlass jdk/internal/math/DoubleToDecimal +instanceKlass @bci com/sun/marlin/DMarlinRenderingEngine logSettings (Ljava/lang/String;)V 447 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x00000008012e8800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012e8400 +instanceKlass sun/misc/Unsafe +instanceKlass com/sun/marlin/OffHeapArray$1 +instanceKlass com/sun/marlin/OffHeapArray +instanceKlass jdk/internal/math/MathUtils +instanceKlass jdk/internal/math/FloatToDecimal +instanceKlass @bci com/sun/marlin/DMarlinRenderingEngine logSettings (Ljava/lang/String;)V 272 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x00000008012e8000 +instanceKlass @bci com/sun/marlin/MarlinProperties getDouble (Ljava/lang/String;DDD)D 4 member ; # com/sun/marlin/MarlinProperties$$Lambda$786+0x00000008012e4e80 +instanceKlass com/sun/marlin/Version +instanceKlass jdk/internal/ref/CleanerImpl$InnocuousThreadFactory +instanceKlass @bci com/sun/marlin/MarlinProperties getString (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; 2 member ; # com/sun/marlin/MarlinProperties$$Lambda$785+0x00000008012e4a80 +instanceKlass com/sun/marlin/FloatMath +instanceKlass @bci com/sun/marlin/MarlinProperties getInteger (Ljava/lang/String;III)I 1 member ; # com/sun/marlin/MarlinProperties$$Lambda$784+0x00000008012e4680 +instanceKlass com/sun/marlin/MarlinUtils +instanceKlass com/sun/marlin/Renderer +instanceKlass com/sun/marlin/MarlinRenderer +instanceKlass com/sun/marlin/DPathConsumer2D +instanceKlass @bci com/sun/marlin/DMarlinRenderingEngine ()V 6 argL0 ; # com/sun/marlin/DMarlinRenderingEngine$$Lambda$783+0x00000008012e37e0 +instanceKlass @bci com/sun/marlin/MarlinProperties getBoolean (Ljava/lang/String;Ljava/lang/String;)Z 2 member ; # com/sun/marlin/MarlinProperties$$Lambda$782+0x00000008012e35d0 +instanceKlass com/sun/marlin/MarlinProperties +instanceKlass com/sun/util/reentrant/ReentrantContext +instanceKlass com/sun/util/reentrant/ReentrantContextProvider +instanceKlass com/sun/marlin/DMarlinRenderingEngine +instanceKlass com/sun/marlin/MarlinConst +instanceKlass com/sun/marlin/MarlinAlphaConsumer +instanceKlass com/sun/openpisces/AlphaConsumer +instanceKlass com/sun/prism/impl/shape/DMarlinRasterizer +instanceKlass com/sun/prism/impl/shape/ShapeUtil$1 +instanceKlass com/sun/prism/impl/shape/ShapeRasterizer +instanceKlass com/sun/prism/impl/shape/ShapeUtil +instanceKlass com/sun/scenario/effect/impl/prism/PrEffectHelper +instanceKlass com/sun/javafx/geom/transform/AffineBase$1 +instanceKlass @bci com/sun/scenario/effect/ImageData ()V 0 argL0 ; # com/sun/scenario/effect/ImageData$$Lambda$781+0x00000008012e0c20 +instanceKlass com/sun/scenario/effect/impl/prism/ps/PPSRenderer$2 +instanceKlass com/sun/scenario/effect/impl/prism/ps/PPSRenderer$1 +instanceKlass @bci com/sun/scenario/effect/impl/ImagePool ()V 0 argL0 ; # com/sun/scenario/effect/impl/ImagePool$$Lambda$780+0x00000008012e0300 +instanceKlass com/sun/scenario/effect/impl/ImagePool +instanceKlass com/sun/scenario/effect/impl/hw/d3d/D3DShaderSource +instanceKlass com/sun/scenario/effect/impl/hw/ShaderSource +instanceKlass com/sun/scenario/effect/FloatMap +instanceKlass com/sun/scenario/effect/ImageData +instanceKlass com/sun/scenario/effect/impl/EffectPeer +instanceKlass com/sun/prism/d3d/D3DPipeline$1 +instanceKlass com/sun/scenario/effect/impl/prism/PrTexture +instanceKlass com/sun/scenario/effect/impl/PoolFilterable +instanceKlass @bci com/sun/scenario/effect/impl/RendererFactory createRenderer (Lcom/sun/scenario/effect/FilterContext;)Lcom/sun/scenario/effect/impl/Renderer; 1 member ; # com/sun/scenario/effect/impl/RendererFactory$$Lambda$779+0x00000008012db9a0 +instanceKlass com/sun/scenario/effect/impl/RendererFactory +instanceKlass @bci com/sun/scenario/effect/impl/Renderer ()V 11 argL0 ; # com/sun/scenario/effect/impl/Renderer$$Lambda$778+0x00000008012db5a8 +instanceKlass com/sun/scenario/effect/impl/Renderer +instanceKlass com/sun/javafx/geom/transform/Affine2D$1 +instanceKlass com/sun/prism/impl/packrect/Level +instanceKlass com/sun/prism/impl/shape/MaskData +instanceKlass com/sun/prism/impl/GlyphCache$GlyphData +instanceKlass com/sun/prism/shader/Solid_TextureSecondPassLCD_Loader +instanceKlass com/sun/prism/shader/Solid_TextureFirstPassLCD_Loader +instanceKlass com/sun/prism/impl/packrect/RectanglePacker +instanceKlass com/sun/prism/impl/GlyphCache +instanceKlass com/sun/javafx/font/directwrite/DWRITE_MATRIX +instanceKlass com/sun/prism/PrinterGraphics +instanceKlass jdk/internal/foreign/MemorySessionImpl +instanceKlass java/lang/foreign/MemorySession +instanceKlass java/lang/foreign/SegmentAllocator +instanceKlass com/sun/prism/d3d/D3DTexture$1 +instanceKlass com/sun/prism/impl/ps/BaseShaderContext$1 +instanceKlass com/sun/prism/shader/FillPgram_LinearGradient_PAD_Loader +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012dd000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012dcc00 +instanceKlass @bci com/sun/prism/impl/BufferUtil nativeOrder (Ljava/nio/ByteBuffer;)V 12 argL0 ; # com/sun/prism/impl/BufferUtil$$Lambda$777+0x00000008012d9338 +instanceKlass com/sun/prism/impl/BufferUtil +instanceKlass com/sun/prism/impl/ps/PaintHelper +instanceKlass com/sun/prism/paint/Stop +instanceKlass com/sun/prism/d3d/D3DContext$1 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012dc800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012dc400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012dc000 +instanceKlass com/sun/prism/shader/FillPgram_Color_Loader +instanceKlass @bci com/sun/prism/d3d/D3DResourceFactory createStockShader (Ljava/lang/String;)Lcom/sun/prism/ps/Shader; 16 member ; # com/sun/prism/d3d/D3DResourceFactory$$Lambda$776+0x00000008012d1dc8 +instanceKlass com/sun/javafx/geom/transform/Affine3D$1 +instanceKlass com/sun/prism/impl/BaseGraphicsResource +instanceKlass @bci com/sun/prism/impl/ps/BaseShaderGraphics ()V 30 argL0 ; # com/sun/prism/impl/ps/BaseShaderGraphics$$Lambda$775+0x00000008012d39c0 +instanceKlass com/sun/prism/impl/Disposer$Target +instanceKlass com/sun/prism/impl/Disposer +instanceKlass com/sun/prism/impl/PrismTrace +instanceKlass com/sun/prism/d3d/D3DResource$D3DRecord +instanceKlass com/sun/prism/impl/Disposer$Record +instanceKlass com/sun/prism/impl/BaseTexture +instanceKlass com/sun/prism/d3d/D3DContextSource +instanceKlass com/sun/prism/ReadbackRenderTarget +instanceKlass com/sun/prism/d3d/D3DRenderTarget +instanceKlass @bci javafx/animation/Animation$1 timePulse (J)V 39 ; # java/lang/invoke/LambdaForm$MH+0x00000008012d0c00 +instanceKlass @bci javafx/animation/Animation$1 timePulse (J)V 39 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x00000008012d0800 +instanceKlass @bci javafx/animation/Animation$1 timePulse (J)V 39 member ; # javafx/animation/Animation$1$$Lambda$774+0x00000008012d66a8 +instanceKlass @bci com/sun/scenario/animation/AnimationPulse$PulseData ()V 56 argL0 ; # com/sun/scenario/animation/AnimationPulse$PulseData$$Lambda$773+0x00000008012d64a0 +instanceKlass @bci com/sun/scenario/animation/AnimationPulse$PulseData ()V 48 argL0 ; # com/sun/scenario/animation/AnimationPulse$PulseData$$Lambda$772+0x00000008012d5e88 +instanceKlass com/sun/prism/impl/BaseResourcePool$WeakLinkedList +instanceKlass @bci com/sun/scenario/animation/AnimationPulse$PulseData ()V 40 argL0 ; # com/sun/scenario/animation/AnimationPulse$PulseData$$Lambda$771+0x00000008012d5a70 +instanceKlass @bci com/sun/prism/impl/BaseResourcePool ()V 110 argL0 ; # com/sun/prism/impl/BaseResourcePool$$Lambda$770+0x00000008012d5868 +instanceKlass @bci com/sun/scenario/animation/AnimationPulse$PulseData ()V 32 argL0 ; # com/sun/scenario/animation/AnimationPulse$PulseData$$Lambda$769+0x00000008012d5660 +instanceKlass @bci com/sun/prism/impl/BaseResourcePool ()V 92 argL0 ; # com/sun/prism/impl/BaseResourcePool$$Lambda$768+0x00000008012d5458 +instanceKlass @bci com/sun/scenario/animation/AnimationPulse$PulseData ()V 24 argL0 ; # com/sun/scenario/animation/AnimationPulse$PulseData$$Lambda$767+0x00000008012d5250 +instanceKlass @bci com/sun/prism/impl/BaseResourcePool ()V 74 argL0 ; # com/sun/prism/impl/BaseResourcePool$$Lambda$766+0x00000008012d5048 +instanceKlass @bci com/sun/scenario/animation/AnimationPulse$PulseData ()V 16 argL0 ; # com/sun/scenario/animation/AnimationPulse$PulseData$$Lambda$764+0x00000008012d4e40 +instanceKlass @bci com/sun/prism/impl/BaseResourcePool ()V 56 argL0 ; # com/sun/prism/impl/BaseResourcePool$$Lambda$765+0x00000008012d4c38 +instanceKlass @bci com/sun/scenario/animation/AnimationPulse$PulseData ()V 8 argL0 ; # com/sun/scenario/animation/AnimationPulse$PulseData$$Lambda$763+0x00000008012d4a30 +instanceKlass @bci com/sun/prism/impl/BaseResourcePool ()V 38 argL0 ; # com/sun/prism/impl/BaseResourcePool$$Lambda$762+0x00000008012d4828 +instanceKlass @bci com/sun/scenario/animation/AnimationPulse$PulseData ()V 0 argL0 ; # com/sun/scenario/animation/AnimationPulse$PulseData$$Lambda$761+0x00000008012d4620 +instanceKlass @bci com/sun/prism/impl/BaseResourcePool ()V 20 argL0 ; # com/sun/prism/impl/BaseResourcePool$$Lambda$760+0x00000008012d4418 +instanceKlass @cpi com/sun/scenario/animation/AnimationPulse$PulseData 164 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x00000008012d0400 +instanceKlass com/sun/prism/impl/ManagedResource +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x00000008012d0000 +instanceKlass com/sun/prism/impl/BaseResourcePool$Predicate +instanceKlass com/sun/prism/impl/BaseResourcePool +instanceKlass com/sun/scenario/animation/AnimationPulse$PulseData +instanceKlass com/sun/scenario/animation/AnimationPulse$PulseData$Accessor +instanceKlass java/util/concurrent/ConcurrentLinkedQueue$Node +instanceKlass com/sun/scenario/animation/AnimationPulse$AnimationPulseHolder +instanceKlass com/sun/scenario/animation/AnimationPulse +instanceKlass com/sun/scenario/animation/AnimationPulseMBean +instanceKlass com/sun/glass/ui/Size +instanceKlass com/sun/javafx/tk/quantum/CursorUtils$1 +instanceKlass com/sun/javafx/tk/quantum/CursorUtils +instanceKlass com/sun/prism/image/CompoundImage +instanceKlass com/sun/javafx/sg/prism/EffectFilter +instanceKlass com/sun/scenario/effect/GaussianShadow$1 +instanceKlass com/sun/javafx/tk/Toolkit$1 +instanceKlass com/sun/scenario/effect/impl/state/LinearConvolveRenderState +instanceKlass com/sun/scenario/effect/Color4f +instanceKlass com/sun/scenario/effect/impl/state/LinearConvolveKernel +instanceKlass com/sun/scenario/effect/impl/state/RenderState +instanceKlass com/sun/javafx/geom/Path2D$SVGParser +instanceKlass com/sun/javafx/sg/prism/CacheFilter +instanceKlass com/sun/javafx/geometry/BoundsUtils +instanceKlass javafx/scene/control/TextInputControl$TextInputControlFromatterAccessor +instanceKlass javafx/scene/control/TextFormatter$Change +instanceKlass javafx/animation/Animation$7 +instanceKlass com/sun/javafx/scene/traversal/TabOrderHelper +instanceKlass @bci com/sun/javafx/tk/Toolkit runPulse (Lcom/sun/javafx/tk/TKPulseListener;Ljava/security/AccessControlContext;)V 15 member ; # com/sun/javafx/tk/Toolkit$$Lambda$759+0x00000008012c8bf0 +instanceKlass @bci com/sun/javafx/tk/quantum/ViewScene setCursor (Ljava/lang/Object;)V 7 member ; # com/sun/javafx/tk/quantum/ViewScene$$Lambda$758+0x00000008012c89e0 +instanceKlass @bci javafx/scene/Node buildEventDispatchChain (Ljavafx/event/EventDispatchChain;)Ljavafx/event/EventDispatchChain; 9 member ; # javafx/scene/Node$$Lambda$757+0x00000008012c87d0 +instanceKlass java/util/EnumMap$EnumMapIterator +instanceKlass javafx/scene/effect/Effect$2 +instanceKlass com/sun/javafx/scene/input/PickResultChooser +instanceKlass com/sun/javafx/geom/PickRay +instanceKlass com/sun/javafx/scene/input/InputEventUtils +instanceKlass javafx/scene/input/PickResult +instanceKlass javafx/scene/input/MouseEvent$Flags +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler handleMouseEvent (Lcom/sun/glass/ui/View;JIIIIIIIZZ)V 98 member ; # com/sun/javafx/tk/quantum/GlassViewEventHandler$$Lambda$756+0x00000008012c54f0 +instanceKlass com/sun/javafx/tk/quantum/PixelUtils +instanceKlass com/sun/javafx/image/impl/IntArgbPre$Accessor +instanceKlass com/sun/javafx/image/impl/IntArgbPre +instanceKlass com/sun/javafx/image/impl/IntArgb$Accessor +instanceKlass com/sun/javafx/image/IntPixelAccessor +instanceKlass com/sun/javafx/image/IntToBytePixelConverter +instanceKlass com/sun/javafx/image/IntPixelSetter +instanceKlass com/sun/javafx/image/IntPixelGetter +instanceKlass com/sun/javafx/image/impl/IntArgb +instanceKlass com/sun/javafx/image/impl/BaseByteToIntConverter +instanceKlass com/sun/javafx/image/ByteToIntPixelConverter +instanceKlass com/sun/javafx/iio/common/SmoothMinifier +instanceKlass com/sun/javafx/iio/common/PushbroomScaler +instanceKlass com/sun/javafx/iio/common/ScalerFactory +instanceKlass @bci com/sun/javafx/tk/Toolkit notifyWindowListeners (Ljava/util/List;)V 74 member ; # com/sun/javafx/tk/Toolkit$$Lambda$755+0x00000008012c6000 +instanceKlass @bci com/sun/javafx/tk/quantum/WindowStage setVisible (Z)V 102 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x00000008012c4400 +instanceKlass @bci com/sun/javafx/tk/quantum/WindowStage setVisible (Z)V 102 member ; # com/sun/javafx/tk/quantum/WindowStage$$Lambda$754+0x00000008012c3d08 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler$ViewEventNotification run ()Ljava/lang/Void; 298 member ; # com/sun/javafx/tk/quantum/GlassViewEventHandler$ViewEventNotification$$Lambda$753+0x00000008012c3af8 +instanceKlass javafx/scene/layout/FlowPane$LayoutRect +instanceKlass javafx/scene/layout/FlowPane$Run +instanceKlass java/text/BreakIterator$BreakIteratorCache +instanceKlass sun/text/SupplementaryCharacterData +instanceKlass sun/text/CompactByteArray +instanceKlass @bci sun/util/resources/BreakIteratorResourceBundle getResourceAsStream (Ljava/lang/String;)Ljava/io/InputStream; 2 member ; # sun/util/resources/BreakIteratorResourceBundle$$Lambda$752+0x000000080117c380 +instanceKlass sun/util/locale/provider/AvailableLanguageTags +instanceKlass @bci sun/util/locale/provider/JRELocaleProviderAdapter getBreakIteratorProvider ()Ljava/text/spi/BreakIteratorProvider; 8 member ; # sun/util/locale/provider/JRELocaleProviderAdapter$$Lambda$751+0x000000080117b868 +instanceKlass java/text/BreakIterator +instanceKlass javafx/scene/text/HitInfo +instanceKlass com/sun/javafx/scene/text/TextLayout$Hit +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012c4000 +instanceKlass javafx/scene/layout/Region$12 +instanceKlass javafx/scene/Parent$5 +instanceKlass com/sun/javafx/font/directwrite/DWRITE_SCRIPT_ANALYSIS +instanceKlass javafx/scene/layout/FlowPane$StyleableProperties +instanceKlass com/sun/javafx/scene/control/behavior/MnemonicInfo +instanceKlass com/sun/javafx/binding/DoubleConstant +instanceKlass @bci javafx/scene/control/skin/ButtonSkin (Ljavafx/scene/control/Button;)V 110 member ; # javafx/scene/control/skin/ButtonSkin$$Lambda$750+0x00000008012bf848 +instanceKlass @bci javafx/scene/control/skin/ButtonSkin (Ljavafx/scene/control/Button;)V 96 member ; # javafx/scene/control/skin/ButtonSkin$$Lambda$749+0x00000008012bf628 +instanceKlass @bci javafx/scene/control/skin/ButtonSkin (Ljavafx/scene/control/Button;)V 82 member ; # javafx/scene/control/skin/ButtonSkin$$Lambda$748+0x00000008012bf408 +instanceKlass @bci javafx/scene/control/skin/ButtonSkin (Ljavafx/scene/control/Button;)V 68 member ; # javafx/scene/control/skin/ButtonSkin$$Lambda$747+0x00000008012bf1e8 +instanceKlass @bci javafx/scene/control/skin/ButtonSkin (Ljavafx/scene/control/Button;)V 27 member ; # javafx/scene/control/skin/ButtonSkin$$Lambda$746+0x00000008012befd8 +instanceKlass @bci javafx/scene/control/skin/ButtonSkin (Ljavafx/scene/control/Button;)V 17 member ; # javafx/scene/control/skin/ButtonSkin$$Lambda$745+0x00000008012bedc8 +instanceKlass @bci javafx/scene/control/skin/ButtonSkin (Ljavafx/scene/control/Button;)V 7 member ; # javafx/scene/control/skin/ButtonSkin$$Lambda$744+0x00000008012bebb8 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 456 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$743+0x00000008012be440 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 441 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$742+0x00000008012be220 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 427 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$741+0x00000008012be000 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 413 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$740+0x00000008012bbc40 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 399 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$739+0x00000008012bba20 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 384 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$738+0x00000008012bb800 +instanceKlass com/sun/javafx/text/ScriptMapper +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012bcc00 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012bc800 +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x00000008012bc400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012bc000 +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x00000008012acc00 +instanceKlass java/lang/invoke/ClassSpecializer$Factory$1Var +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x00000008012ac800 +instanceKlass sun/invoke/util/ValueConversions$1 +instanceKlass sun/invoke/util/ValueConversions$WrapperCache +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008012ac400 +instanceKlass jdk/internal/icu/text/BidiLine +instanceKlass jdk/internal/icu/text/UTF16 +instanceKlass jdk/internal/icu/impl/Trie2$UTrie2Header +instanceKlass jdk/internal/icu/impl/Trie2$1 +instanceKlass jdk/internal/icu/impl/Trie2$ValueMapper +instanceKlass jdk/internal/icu/impl/Trie2 +instanceKlass jdk/internal/icu/impl/UBiDiProps$IsAcceptable +instanceKlass jdk/internal/icu/impl/ICUBinary$Authenticate +instanceKlass @bci jdk/internal/module/SystemModuleFinders$SystemModuleReader open (Ljava/lang/String;)Ljava/util/Optional; 6 member ; # jdk/internal/module/SystemModuleFinders$SystemModuleReader$$Lambda$737+0x0000000801178af0 +instanceKlass jdk/internal/icu/impl/ICUBinary$1 +instanceKlass jdk/internal/icu/impl/ICUBinary +instanceKlass jdk/internal/icu/impl/UBiDiProps +instanceKlass jdk/internal/icu/text/BidiBase$Point +instanceKlass jdk/internal/icu/text/BidiBase$InsertPoints +instanceKlass jdk/internal/icu/text/BidiRun +instanceKlass jdk/internal/icu/text/BidiBase$ImpTabPair +instanceKlass jdk/internal/icu/text/BidiBase +instanceKlass java/text/Bidi +instanceKlass com/sun/scenario/effect/EffectHelper +instanceKlass javafx/scene/effect/Effect$1 +instanceKlass com/sun/scenario/effect/EffectHelper$EffectAccessor +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin (Ljavafx/scene/control/ScrollBar;)V 85 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$736+0x00000008012b55f0 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin (Ljavafx/scene/control/ScrollBar;)V 71 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$735+0x00000008012b53d0 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin (Ljavafx/scene/control/ScrollBar;)V 32 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$734+0x00000008012b51b0 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin initialize ()V 311 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$733+0x00000008012b4fa0 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin initialize ()V 292 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$732+0x00000008012b4d90 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin initialize ()V 279 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$731+0x00000008012b4b80 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin initialize ()V 266 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$730+0x00000008012b4970 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin initialize ()V 253 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$729+0x00000008012b4760 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin initialize ()V 240 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$728+0x00000008012b4550 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin initialize ()V 227 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$727+0x00000008012b4340 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin initialize ()V 214 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$726+0x00000008012b4130 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin initialize ()V 201 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$725+0x00000008012b3f20 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin initialize ()V 160 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$724+0x00000008012b3d10 +instanceKlass @bci javafx/scene/control/skin/ScrollBarSkin initialize ()V 147 member ; # javafx/scene/control/skin/ScrollBarSkin$$Lambda$723+0x00000008012b3b00 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 285 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$722+0x00000008012b38f0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 266 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$721+0x00000008012b36e0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 247 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$720+0x00000008012b34d0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 228 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$719+0x00000008012b32c0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 202 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$718+0x00000008012b3080 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 167 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$717+0x00000008012b2e70 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 147 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$716+0x00000008012b2c60 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 127 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$715+0x00000008012b2a50 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 107 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$714+0x00000008012b2840 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 80 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$713+0x00000008012b2600 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 57 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$712+0x00000008012b23f0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollBarBehavior (Ljavafx/scene/control/ScrollBar;)V 35 member ; # com/sun/javafx/scene/control/behavior/ScrollBarBehavior$$Lambda$711+0x00000008012b21e0 +instanceKlass javafx/scene/control/skin/CellSkinBase$StyleableProperties +instanceKlass @bci com/sun/javafx/scene/control/behavior/CellBehaviorBase (Ljavafx/scene/control/Cell;)V 75 member ; # com/sun/javafx/scene/control/behavior/CellBehaviorBase$$Lambda$710+0x00000008012ad420 +instanceKlass @bci com/sun/javafx/scene/control/behavior/CellBehaviorBase (Ljavafx/scene/control/Cell;)V 54 member ; # com/sun/javafx/scene/control/behavior/CellBehaviorBase$$Lambda$709+0x00000008012ad210 +instanceKlass @bci com/sun/javafx/scene/control/behavior/CellBehaviorBase (Ljavafx/scene/control/Cell;)V 33 member ; # com/sun/javafx/scene/control/behavior/CellBehaviorBase$$Lambda$708+0x00000008012ad000 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow getCell (I)Ljavafx/scene/control/IndexedCell; 158 member ; # javafx/scene/control/skin/VirtualFlow$$Lambda$707+0x00000008012ae630 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 305 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$706+0x00000008012ae420 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 271 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$705+0x00000008012ae210 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 205 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$704+0x00000008012ae000 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 192 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$703+0x00000008012abc00 +instanceKlass @cpi javafx/scene/control/skin/ListViewSkin 727 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x00000008012ac000 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 179 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$702+0x00000008012ab9f0 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 166 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$701+0x00000008012ab7e0 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 153 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$700+0x00000008012ab5d0 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 140 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$699+0x00000008012ab3c0 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 127 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$698+0x00000008012ab1b0 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 114 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$697+0x00000008012aafa0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1737 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$696+0x00000008012aad90 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1704 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$695+0x00000008012aab80 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1671 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$694+0x00000008012aa970 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1641 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$693+0x00000008012aa760 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1611 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$692+0x00000008012aa550 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1581 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$691+0x00000008012aa340 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1551 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$690+0x00000008012aa130 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1522 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$689+0x00000008012a9f20 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1493 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$688+0x00000008012a9d10 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1474 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$687+0x00000008012a9b00 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1455 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$686+0x00000008012a98f0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1436 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$685+0x00000008012a96e0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1410 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$684+0x00000008012a94a0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1374 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$683+0x00000008012a9290 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1340 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$682+0x00000008012a9080 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1307 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$681+0x00000008012a8e70 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1274 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$680+0x00000008012a8c60 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1241 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$679+0x00000008012a8a50 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1208 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$678+0x00000008012a8840 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1175 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$677+0x00000008012a8630 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1145 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$676+0x00000008012a8420 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1115 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$675+0x00000008012a8210 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1085 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$674+0x00000008012a8000 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1055 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$673+0x000000080129c400 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 1026 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$672+0x000000080129cc20 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 997 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$671+0x000000080129ca10 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 978 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$670+0x000000080129c800 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 959 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$669+0x00000008012a7c20 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 940 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$668+0x00000008012a7a10 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 914 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$667+0x00000008012a77d0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 879 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$666+0x00000008012a75c0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 844 argL0 ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$665+0x00000008012a7388 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 810 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$664+0x00000008012a7178 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 772 argL0 ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$663+0x00000008012a6f40 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 748 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$662+0x00000008012a6d30 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 728 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$661+0x00000008012a6b20 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 698 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$660+0x00000008012a6910 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 668 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$659+0x00000008012a6700 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 637 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$658+0x00000008012a64f0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 606 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$657+0x00000008012a62e0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 575 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$656+0x00000008012a60d0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 545 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$655+0x00000008012a5ec0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 525 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$654+0x00000008012a5cb0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 505 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$653+0x00000008012a5aa0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 485 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$652+0x00000008012a5890 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 465 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$651+0x00000008012a5680 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 445 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$650+0x00000008012a5470 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 425 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$649+0x00000008012a5260 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 392 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$648+0x00000008012a5050 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 362 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$647+0x00000008012a4e40 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 333 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$646+0x00000008012a4c30 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 303 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$645+0x00000008012a4a20 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 273 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$644+0x00000008012a4810 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 242 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$643+0x00000008012a4600 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 214 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$642+0x00000008012a43f0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 165 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$641+0x00000008012a41b0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 158 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$640+0x00000008012a3f70 +instanceKlass com/sun/javafx/scene/control/behavior/ListViewBehavior$2 +instanceKlass com/sun/javafx/scene/control/behavior/ListViewBehavior$1 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 42 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$639+0x00000008012a3920 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 32 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$638+0x00000008012a3710 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ListViewBehavior (Ljavafx/scene/control/ListView;)V 7 member ; # com/sun/javafx/scene/control/behavior/ListViewBehavior$$Lambda$637+0x00000008012a3500 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 74 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$636+0x00000008012a3058 +instanceKlass javafx/scene/control/skin/ListViewSkin$1 +instanceKlass javafx/collections/WeakMapChangeListener +instanceKlass @bci javafx/scene/control/skin/ListViewSkin (Ljavafx/scene/control/ListView;)V 22 member ; # javafx/scene/control/skin/ListViewSkin$$Lambda$635+0x00000008012a2a08 +instanceKlass @bci javafx/scene/control/skin/VirtualContainerBase (Ljavafx/scene/control/Control;)V 15 member ; # javafx/scene/control/skin/VirtualContainerBase$$Lambda$634+0x00000008012a27f8 +instanceKlass javafx/scene/control/skin/VirtualFlow$3 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 710 member ; # javafx/scene/control/skin/VirtualFlow$$Lambda$633+0x00000008012a2168 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 700 member ; # javafx/scene/control/skin/VirtualFlow$$Lambda$632+0x00000008012a1f58 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 690 member ; # javafx/scene/control/skin/VirtualFlow$$Lambda$631+0x00000008012a1d48 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 666 member ; # javafx/scene/control/skin/VirtualFlow$$Lambda$630+0x00000008012a1b38 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 607 member ; # javafx/scene/control/skin/VirtualFlow$$Lambda$629+0x00000008012a1928 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 536 argL0 ; # javafx/scene/control/skin/VirtualFlow$$Lambda$628+0x00000008012a1720 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 497 argL0 ; # javafx/scene/control/skin/VirtualFlow$$Lambda$627+0x00000008012a1518 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 472 member ; # javafx/scene/control/skin/VirtualFlow$$Lambda$626+0x00000008012a1308 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 459 member ; # javafx/scene/control/skin/VirtualFlow$$Lambda$625+0x00000008012a10f8 +instanceKlass javafx/scene/control/skin/VirtualFlow$2 +instanceKlass javafx/scene/control/skin/VirtualFlow$1 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 419 member ; # javafx/scene/control/skin/VirtualFlow$$Lambda$624+0x00000008012a0aa8 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 397 member ; # javafx/scene/control/skin/VirtualFlow$$Lambda$623+0x00000008012a0898 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow ()V 377 argL0 ; # javafx/scene/control/skin/VirtualFlow$$Lambda$622+0x000000080129ddc8 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow$ClippedContainer (Ljavafx/scene/control/skin/VirtualFlow;)V 75 member ; # javafx/scene/control/skin/VirtualFlow$ClippedContainer$$Lambda$621+0x000000080129dbb8 +instanceKlass @bci javafx/scene/control/skin/VirtualFlow$ClippedContainer (Ljavafx/scene/control/skin/VirtualFlow;)V 62 member ; # javafx/scene/control/skin/VirtualFlow$ClippedContainer$$Lambda$620+0x000000080129d9a8 +instanceKlass @bci com/sun/javafx/scene/control/VirtualScrollBar (Ljavafx/scene/control/skin/VirtualFlow;)V 29 member ; # com/sun/javafx/scene/control/VirtualScrollBar$$Lambda$619+0x000000080129fcb8 +instanceKlass @bci javafx/scene/control/skin/ListViewSkin ()V 0 argL0 ; # javafx/scene/control/skin/ListViewSkin$$Lambda$618+0x000000080129a5c0 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin (Ljavafx/scene/control/ComboBox;)V 287 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$617+0x00000008012993d0 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin (Ljavafx/scene/control/ComboBox;)V 257 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$616+0x00000008012991b0 +instanceKlass @bci java/util/function/Consumer andThen (Ljava/util/function/Consumer;)Ljava/util/function/Consumer; 7 member ; # java/util/function/Consumer$$Lambda$615+0x0000000801176c88 +instanceKlass @cpi java/util/function/Consumer 50 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080129c000 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin (Ljavafx/scene/control/ComboBox;)V 243 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$614+0x0000000801298f90 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin (Ljavafx/scene/control/ComboBox;)V 228 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$613+0x0000000801298d70 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin (Ljavafx/scene/control/ComboBox;)V 214 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$612+0x0000000801298b50 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin (Ljavafx/scene/control/ComboBox;)V 200 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$611+0x0000000801298930 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin (Ljavafx/scene/control/ComboBox;)V 186 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$610+0x0000000801298710 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin (Ljavafx/scene/control/ComboBox;)V 172 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$609+0x00000008012984f0 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin (Ljavafx/scene/control/ComboBox;)V 158 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$608+0x00000008012982d0 +instanceKlass com/sun/javafx/scene/control/ReadOnlyUnbackedObservableList$SelectionListIterator +instanceKlass javafx/scene/control/ListCell$3 +instanceKlass @bci javafx/scene/control/ListCell ()V 65 member ; # javafx/scene/control/ListCell$$Lambda$607+0x0000000801297ad0 +instanceKlass javafx/scene/control/ListCell$2 +instanceKlass @bci javafx/scene/control/ListCell ()V 43 member ; # javafx/scene/control/ListCell$$Lambda$606+0x00000008012976a8 +instanceKlass javafx/scene/control/ListCell$1 +instanceKlass @bci javafx/scene/control/ListCell ()V 21 member ; # javafx/scene/control/ListCell$$Lambda$605+0x0000000801297278 +instanceKlass @bci javafx/scene/control/ListCell ()V 6 member ; # javafx/scene/control/ListCell$$Lambda$604+0x0000000801297068 +instanceKlass javafx/scene/control/Cell$1 +instanceKlass javafx/scene/control/skin/ComboBoxListViewSkin$2 +instanceKlass javafx/scene/control/ListView$StyleableProperties +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin createListView ()Ljavafx/scene/control/ListView; 101 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$603+0x00000008012942b8 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin createListView ()Ljavafx/scene/control/ListView; 91 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$602+0x00000008012940a8 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin createListView ()Ljavafx/scene/control/ListView; 78 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$601+0x0000000801293e98 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin createListView ()Ljavafx/scene/control/ListView; 53 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$600+0x0000000801293c88 +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin$3 (Ljavafx/scene/control/skin/ComboBoxListViewSkin;)V 32 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$3$$Lambda$599+0x0000000801293668 +instanceKlass @bci javafx/scene/control/ListView (Ljavafx/collections/ObservableList;)V 101 member ; # javafx/scene/control/ListView$$Lambda$598+0x0000000801293458 +instanceKlass @bci javafx/scene/control/ListView$ListViewFocusModel (Ljavafx/scene/control/ListView;)V 123 member ; # javafx/scene/control/ListView$ListViewFocusModel$$Lambda$597+0x0000000801293248 +instanceKlass javafx/scene/control/ListView$ListViewFocusModel$1 +instanceKlass @bci javafx/scene/control/ListView$ListViewFocusModel (Ljavafx/scene/control/ListView;)V 11 member ; # javafx/scene/control/ListView$ListViewFocusModel$$Lambda$596+0x0000000801292e20 +instanceKlass @bci javafx/scene/control/FocusModel ()V 38 member ; # javafx/scene/control/FocusModel$$Lambda$595+0x0000000801292c10 +instanceKlass java/util/stream/Sink$ChainedInt +instanceKlass java/util/stream/Sink$OfInt +instanceKlass java/util/function/IntConsumer +instanceKlass @bci java/util/stream/IntPipeline boxed ()Ljava/util/stream/Stream; 1 argL0 ; # java/util/stream/IntPipeline$$Lambda$594+0x00000008011762a8 +instanceKlass java/util/stream/IntStream +instanceKlass java/util/BitSet$1BitSetSpliterator +instanceKlass javafx/scene/control/ListView$ListViewBitSetSelectionModel$1 +instanceKlass javafx/scene/control/ListView$ListViewBitSetSelectionModel$2 +instanceKlass @bci com/sun/javafx/scene/control/SelectedItemsReadOnlyObservableList (Ljavafx/collections/ObservableList;Ljava/util/function/Supplier;)V 28 member ; # com/sun/javafx/scene/control/SelectedItemsReadOnlyObservableList$$Lambda$593+0x00000008012925d0 +instanceKlass @bci javafx/scene/control/MultipleSelectionModelBase ()V 40 member ; # javafx/scene/control/MultipleSelectionModelBase$$Lambda$592+0x00000008012923c0 +instanceKlass java/util/BitSet +instanceKlass @bci javafx/scene/control/MultipleSelectionModelBase ()V 9 member ; # javafx/scene/control/MultipleSelectionModelBase$$Lambda$591+0x00000008012913d0 +instanceKlass @bci javafx/scene/control/ListView (Ljavafx/collections/ObservableList;)V 11 member ; # javafx/scene/control/ListView$$Lambda$590+0x000000080128fde0 +instanceKlass javafx/scene/control/FocusModel +instanceKlass @bci javafx/scene/control/skin/ComboBoxListViewSkin (Ljavafx/scene/control/ComboBox;)V 80 member ; # javafx/scene/control/skin/ComboBoxListViewSkin$$Lambda$589+0x000000080128ce58 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxListViewBehavior (Ljavafx/scene/control/ComboBox;)V 51 member ; # com/sun/javafx/scene/control/behavior/ComboBoxListViewBehavior$$Lambda$588+0x000000080128cc48 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxListViewBehavior (Ljavafx/scene/control/ComboBox;)V 32 member ; # com/sun/javafx/scene/control/behavior/ComboBoxListViewBehavior$$Lambda$587+0x000000080128ca38 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 326 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$586+0x000000080128c828 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 306 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$585+0x000000080128c618 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 286 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$584+0x000000080128c408 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 266 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$583+0x000000080128c1f8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 246 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$582+0x000000080128bfe8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 223 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$581+0x000000080128bdd8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 197 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$580+0x000000080128bbc8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 172 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$579+0x000000080128b9b8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 150 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$578+0x000000080128b7a8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 128 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$577+0x000000080128b598 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 34 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$576+0x000000080128b388 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior (Ljavafx/scene/control/ComboBoxBase;)V 7 member ; # com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior$$Lambda$575+0x000000080128b178 +instanceKlass javafx/scene/control/skin/ComboBoxListViewSkin$1 +instanceKlass javafx/scene/control/skin/ComboBoxPopupControl$1 +instanceKlass @bci javafx/scene/control/skin/ComboBoxPopupControl (Ljavafx/scene/control/ComboBoxBase;)V 127 member ; # javafx/scene/control/skin/ComboBoxPopupControl$$Lambda$574+0x000000080128ab18 +instanceKlass @bci javafx/scene/control/skin/ComboBoxPopupControl (Ljavafx/scene/control/ComboBoxBase;)V 104 member ; # javafx/scene/control/skin/ComboBoxPopupControl$$Lambda$573+0x000000080128a908 +instanceKlass @bci javafx/scene/control/skin/ComboBoxPopupControl (Ljavafx/scene/control/ComboBoxBase;)V 88 member ; # javafx/scene/control/skin/ComboBoxPopupControl$$Lambda$572+0x000000080128a6f8 +instanceKlass @bci javafx/scene/control/skin/ComboBoxPopupControl (Ljavafx/scene/control/ComboBoxBase;)V 27 member ; # javafx/scene/control/skin/ComboBoxPopupControl$$Lambda$571+0x000000080128a4e8 +instanceKlass @bci javafx/scene/control/skin/ComboBoxPopupControl (Ljavafx/scene/control/ComboBoxBase;)V 17 member ; # javafx/scene/control/skin/ComboBoxPopupControl$$Lambda$570+0x000000080128a2d8 +instanceKlass @bci javafx/scene/control/skin/ComboBoxBaseSkin (Ljavafx/scene/control/ComboBoxBase;)V 277 member ; # javafx/scene/control/skin/ComboBoxBaseSkin$$Lambda$569+0x000000080128a0b8 +instanceKlass @bci javafx/scene/control/skin/ComboBoxBaseSkin (Ljavafx/scene/control/ComboBoxBase;)V 263 member ; # javafx/scene/control/skin/ComboBoxBaseSkin$$Lambda$568+0x0000000801289e98 +instanceKlass @bci javafx/scene/control/skin/ComboBoxBaseSkin (Ljavafx/scene/control/ComboBoxBase;)V 249 member ; # javafx/scene/control/skin/ComboBoxBaseSkin$$Lambda$567+0x0000000801289c78 +instanceKlass @bci javafx/scene/control/skin/ComboBoxBaseSkin (Ljavafx/scene/control/ComboBoxBase;)V 231 member ; # javafx/scene/control/skin/ComboBoxBaseSkin$$Lambda$566+0x0000000801289a68 +instanceKlass @bci javafx/scene/control/skin/ComboBoxBaseSkin (Ljavafx/scene/control/ComboBoxBase;)V 44 member ; # javafx/scene/control/skin/ComboBoxBaseSkin$$Lambda$565+0x0000000801289858 +instanceKlass @bci javafx/scene/control/skin/ComboBoxBaseSkin (Ljavafx/scene/control/ComboBoxBase;)V 34 member ; # javafx/scene/control/skin/ComboBoxBaseSkin$$Lambda$564+0x0000000801289648 +instanceKlass @bci javafx/scene/control/skin/ComboBoxBaseSkin (Ljavafx/scene/control/ComboBoxBase;)V 24 member ; # javafx/scene/control/skin/ComboBoxBaseSkin$$Lambda$563+0x0000000801289438 +instanceKlass @bci javafx/scene/control/skin/ComboBoxBaseSkin (Ljavafx/scene/control/ComboBoxBase;)V 14 member ; # javafx/scene/control/skin/ComboBoxBaseSkin$$Lambda$562+0x0000000801289228 +instanceKlass com/sun/javafx/font/directwrite/DWRITE_GLYPH_METRICS +instanceKlass com/sun/javafx/font/directwrite/DWRITE_GLYPH_RUN +instanceKlass com/sun/javafx/font/directwrite/RECT +instanceKlass com/sun/javafx/font/directwrite/D2D1_MATRIX_3X2_F +instanceKlass com/sun/javafx/font/directwrite/D2D1_COLOR_F +instanceKlass com/sun/javafx/font/directwrite/DWGlyph +instanceKlass java/lang/FdLibm +instanceKlass java/lang/FdLibm$Hypot +instanceKlass com/sun/javafx/geom/Path2D$Iterator +instanceKlass com/sun/javafx/scene/shape/PathUtils +instanceKlass javafx/scene/control/skin/TextFieldSkin$8 +instanceKlass javafx/scene/control/skin/TextInputControlSkin$StyleableProperties +instanceKlass @bci javafx/scene/control/skin/TextFieldSkin (Ljavafx/scene/control/TextField;)V 786 member ; # javafx/scene/control/skin/TextFieldSkin$$Lambda$561+0x0000000801283c50 +instanceKlass @bci javafx/scene/control/skin/TextFieldSkin (Ljavafx/scene/control/TextField;)V 755 member ; # javafx/scene/control/skin/TextFieldSkin$$Lambda$560+0x0000000801283a30 +instanceKlass @bci javafx/scene/control/skin/TextFieldSkin (Ljavafx/scene/control/TextField;)V 741 member ; # javafx/scene/control/skin/TextFieldSkin$$Lambda$559+0x0000000801283820 +instanceKlass @bci javafx/scene/control/skin/TextFieldSkin (Ljavafx/scene/control/TextField;)V 715 member ; # javafx/scene/control/skin/TextFieldSkin$$Lambda$558+0x0000000801283258 +instanceKlass @bci javafx/scene/control/skin/TextFieldSkin (Ljavafx/scene/control/TextField;)V 688 member ; # javafx/scene/control/skin/TextFieldSkin$$Lambda$557+0x0000000801283038 +instanceKlass @bci javafx/scene/control/skin/TextFieldSkin (Ljavafx/scene/control/TextField;)V 674 member ; # javafx/scene/control/skin/TextFieldSkin$$Lambda$556+0x0000000801282e18 +instanceKlass @bci javafx/scene/control/skin/TextFieldSkin (Ljavafx/scene/control/TextField;)V 659 member ; # javafx/scene/control/skin/TextFieldSkin$$Lambda$555+0x0000000801282c08 +instanceKlass javafx/scene/shape/LineTo$1 +instanceKlass com/sun/javafx/scene/shape/LineToHelper$LineToAccessor +instanceKlass com/sun/javafx/util/WeakReferenceQueue$1 +instanceKlass javafx/scene/shape/MoveTo$1 +instanceKlass com/sun/javafx/scene/shape/PathElementHelper +instanceKlass javafx/scene/shape/PathElement$1 +instanceKlass com/sun/javafx/scene/shape/MoveToHelper$MoveToAccessor +instanceKlass com/sun/javafx/scene/shape/PathElementHelper$PathElementAccessor +instanceKlass javafx/scene/text/Text$10 +instanceKlass com/sun/javafx/text/TextLine +instanceKlass com/sun/javafx/font/CMap +instanceKlass com/sun/javafx/font/PrismMetrics +instanceKlass com/sun/javafx/text/LayoutCache +instanceKlass com/sun/javafx/text/TextRun +instanceKlass javafx/scene/shape/Shape$StrokeAttributes +instanceKlass @bci javafx/scene/control/skin/TextFieldSkin (Ljavafx/scene/control/TextField;)V 566 member ; # javafx/scene/control/skin/TextFieldSkin$$Lambda$554+0x0000000801278430 +instanceKlass javafx/beans/binding/Bindings$ShortCircuitAndInvalidator +instanceKlass @bci com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler registerInvalidationListener (Ljavafx/beans/Observable;Ljava/util/function/Consumer;)V 38 argL0 ; # com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler$$Lambda$553+0x0000000801278000 +instanceKlass @bci javafx/scene/control/skin/TextFieldSkin (Ljavafx/scene/control/TextField;)V 477 member ; # javafx/scene/control/skin/TextFieldSkin$$Lambda$552+0x0000000801277d88 +instanceKlass javafx/scene/Group$1 +instanceKlass com/sun/javafx/scene/GroupHelper$GroupAccessor +instanceKlass @bci javafx/scene/control/skin/TextFieldSkin (Ljavafx/scene/control/TextField;)V 136 member ; # javafx/scene/control/skin/TextFieldSkin$$Lambda$551+0x0000000801275d20 +instanceKlass @bci javafx/scene/control/skin/TextFieldSkin (Ljavafx/scene/control/TextField;)V 122 member ; # javafx/scene/control/skin/TextFieldSkin$$Lambda$550+0x0000000801275b00 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextFieldBehavior (Ljavafx/scene/control/TextField;)V 94 member ; # com/sun/javafx/scene/control/behavior/TextFieldBehavior$$Lambda$549+0x00000008012758f0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextFieldBehavior (Ljavafx/scene/control/TextField;)V 69 member ; # com/sun/javafx/scene/control/behavior/TextFieldBehavior$$Lambda$548+0x00000008012756e0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextFieldBehavior (Ljavafx/scene/control/TextField;)V 43 member ; # com/sun/javafx/scene/control/behavior/TextFieldBehavior$$Lambda$547+0x00000008012754d0 +instanceKlass com/sun/javafx/scene/control/behavior/TextInputControlBehavior$2 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 2061 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$546+0x00000008012750d0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 2031 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$545+0x0000000801274ec0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1999 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$544+0x0000000801274cb0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1968 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$543+0x0000000801274aa0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1941 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$542+0x0000000801274890 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1914 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$541+0x0000000801274680 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1887 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$540+0x0000000801274470 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1861 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$539+0x0000000801274260 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1835 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$538+0x0000000801274050 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1809 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$537+0x0000000801273e40 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1783 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$536+0x0000000801273c30 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1757 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$535+0x0000000801273a20 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1722 argL0 ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$534+0x00000008012737e8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1685 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$533+0x00000008012735d8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1655 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$532+0x00000008012733c8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1625 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$531+0x00000008012731b8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1595 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$530+0x0000000801272fa8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1565 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$529+0x0000000801272d98 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1535 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$528+0x0000000801272b88 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1508 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$527+0x0000000801272978 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1481 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$526+0x0000000801272768 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1454 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$525+0x0000000801272558 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1428 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$524+0x0000000801272348 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1402 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$523+0x0000000801272138 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1376 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$522+0x0000000801271f28 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1350 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$521+0x0000000801271d18 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1324 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$520+0x0000000801271b08 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1289 argL0 ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$519+0x00000008012718d0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1247 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$518+0x00000008012716c0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1226 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$517+0x00000008012712a8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1206 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$516+0x0000000801271098 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1186 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$515+0x0000000801270e88 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1166 argL0 ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$514+0x0000000801270c50 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1161 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$513+0x0000000801270a40 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1125 argL0 ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$512+0x0000000801270838 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1095 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$511+0x0000000801270628 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1046 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$510+0x0000000801270418 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 1016 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$509+0x0000000801270208 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 996 argL0 ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$508+0x0000000801270000 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 964 argL0 ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$507+0x000000080126fc18 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 935 argL0 ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$506+0x000000080126fa10 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 906 argL0 ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$505+0x000000080126f808 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 880 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$504+0x000000080126f5f8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 853 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$503+0x000000080126f3e8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 823 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$502+0x000000080126f1d8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 793 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$501+0x000000080126efc8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 766 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$500+0x000000080126edb8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 739 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$499+0x000000080126eba8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 712 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$498+0x000000080126e998 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 684 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$497+0x000000080126e788 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 656 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$496+0x000000080126e578 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 631 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$495+0x000000080126e368 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 604 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$494+0x000000080126e158 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 587 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$493+0x000000080126df48 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 560 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$492+0x000000080126dd38 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 532 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$491+0x000000080126db28 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 507 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$490+0x000000080126d918 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 479 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$489+0x000000080126d708 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 454 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$488+0x000000080126d4f8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 426 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$487+0x000000080126d2e8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 402 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$486+0x000000080126d0d8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 375 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$485+0x000000080126cec8 +instanceKlass com/sun/javafx/scene/control/inputmap/KeyBinding$1 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 345 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$484+0x000000080126cac8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 328 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$483+0x000000080126c8b8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 312 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$482+0x000000080126c6a8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 296 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$481+0x000000080126c498 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 280 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$480+0x000000080126c288 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 264 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$479+0x000000080126c078 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior keyMapping (Lcom/sun/javafx/scene/control/inputmap/KeyBinding;Ljavafx/event/EventHandler;Ljava/util/function/Predicate;)Lcom/sun/javafx/scene/control/inputmap/InputMap$KeyMapping; 7 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$478+0x000000080126be68 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 248 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$477+0x000000080126bc58 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 224 argL0 ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$476+0x000000080126ba20 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 218 argL0 ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$475+0x000000080126b7e8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 212 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$474+0x000000080126b5a8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 176 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$473+0x0000000801269c68 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 157 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$472+0x0000000801269a58 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 138 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$471+0x0000000801269848 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 119 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$470+0x0000000801269638 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 100 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$469+0x0000000801269428 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 81 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$468+0x0000000801269218 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 62 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$467+0x0000000801269008 +instanceKlass com/sun/javafx/scene/control/skin/resources/ControlResources +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 43 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$466+0x0000000801268c08 +instanceKlass @bci com/sun/javafx/scene/control/behavior/TextInputControlBehavior (Ljavafx/scene/control/TextInputControl;)V 7 member ; # com/sun/javafx/scene/control/behavior/TextInputControlBehavior$$Lambda$465+0x00000008012689f8 +instanceKlass javafx/scene/control/skin/TextInputControlSkin$6 +instanceKlass @bci javafx/scene/control/skin/TextInputControlSkin (Ljavafx/scene/control/TextInputControl;)V 450 member ; # javafx/scene/control/skin/TextInputControlSkin$$Lambda$464+0x00000008012671a0 +instanceKlass javafx/scene/shape/Path$1 +instanceKlass com/sun/javafx/scene/shape/PathHelper$PathAccessor +instanceKlass @bci javafx/scene/control/skin/TextInputControlSkin$CaretBlinking (Ljavafx/beans/property/BooleanProperty;)V 82 member ; # javafx/scene/control/skin/TextInputControlSkin$CaretBlinking$$Lambda$463+0x0000000801265138 +instanceKlass javafx/animation/KeyValue +instanceKlass @bci javafx/scene/control/skin/TextInputControlSkin$CaretBlinking (Ljavafx/beans/property/BooleanProperty;)V 56 member ; # javafx/scene/control/skin/TextInputControlSkin$CaretBlinking$$Lambda$462+0x0000000801264b50 +instanceKlass com/sun/scenario/animation/shared/InterpolationInterval +instanceKlass com/sun/scenario/animation/shared/ClipInterpolator +instanceKlass @bci com/sun/scenario/animation/shared/TimelineClipCore ()V 0 argL0 ; # com/sun/scenario/animation/shared/TimelineClipCore$$Lambda$461+0x0000000801263ad0 +instanceKlass javafx/animation/KeyFrame +instanceKlass com/sun/scenario/animation/shared/TimelineClipCore +instanceKlass com/sun/scenario/animation/shared/ClipEnvelope +instanceKlass javafx/animation/Animation$1 +instanceKlass javafx/util/Duration +instanceKlass com/sun/scenario/animation/shared/AnimationAccessor +instanceKlass javafx/animation/Animation +instanceKlass javafx/scene/control/skin/TextInputControlSkin$CaretBlinking +instanceKlass com/sun/javafx/scene/control/Properties +instanceKlass @bci javafx/scene/control/skin/TextInputControlSkin ()V 4 argL0 ; # javafx/scene/control/skin/TextInputControlSkin$$Lambda$460+0x000000080125d8c0 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 223 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$459+0x000000080125a5c8 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 209 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$458+0x000000080125a3a8 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 195 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$457+0x000000080125a188 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 181 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$456+0x0000000801259f68 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 167 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$455+0x0000000801259d48 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 153 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$454+0x0000000801259b28 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 139 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$453+0x0000000801259908 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 125 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$452+0x00000008012596e8 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 111 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$451+0x00000008012594c8 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 97 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$450+0x00000008012592a8 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 83 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$449+0x0000000801259088 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin (Ljavafx/scene/control/ScrollPane;)V 71 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$448+0x0000000801258e68 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 561 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$447+0x0000000801258c58 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 542 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$446+0x0000000801258a48 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 523 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$445+0x0000000801258838 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 507 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$444+0x0000000801258628 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 482 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$443+0x0000000801258418 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 458 argL0 ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$442+0x0000000801258210 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 450 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$441+0x0000000801258000 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 437 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$440+0x0000000801257d38 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 421 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$439+0x0000000801257b28 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 408 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$438+0x0000000801257918 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 384 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$437+0x0000000801257708 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 364 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$436+0x00000008012574f8 +instanceKlass javafx/scene/control/ScrollBar$StyleableProperties +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 180 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$435+0x0000000801256a78 +instanceKlass @bci javafx/scene/control/skin/ScrollPaneSkin initialize ()V 30 member ; # javafx/scene/control/skin/ScrollPaneSkin$$Lambda$434+0x0000000801254650 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollPaneBehavior (Ljavafx/scene/control/ScrollPane;)V 210 member ; # com/sun/javafx/scene/control/behavior/ScrollPaneBehavior$$Lambda$433+0x0000000801254440 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollPaneBehavior (Ljavafx/scene/control/ScrollPane;)V 190 member ; # com/sun/javafx/scene/control/behavior/ScrollPaneBehavior$$Lambda$432+0x0000000801254230 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollPaneBehavior (Ljavafx/scene/control/ScrollPane;)V 170 member ; # com/sun/javafx/scene/control/behavior/ScrollPaneBehavior$$Lambda$431+0x0000000801254020 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollPaneBehavior (Ljavafx/scene/control/ScrollPane;)V 150 member ; # com/sun/javafx/scene/control/behavior/ScrollPaneBehavior$$Lambda$430+0x0000000801253e10 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollPaneBehavior (Ljavafx/scene/control/ScrollPane;)V 130 member ; # com/sun/javafx/scene/control/behavior/ScrollPaneBehavior$$Lambda$429+0x0000000801253c00 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollPaneBehavior (Ljavafx/scene/control/ScrollPane;)V 111 member ; # com/sun/javafx/scene/control/behavior/ScrollPaneBehavior$$Lambda$428+0x00000008012539f0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollPaneBehavior (Ljavafx/scene/control/ScrollPane;)V 92 member ; # com/sun/javafx/scene/control/behavior/ScrollPaneBehavior$$Lambda$427+0x00000008012537e0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollPaneBehavior (Ljavafx/scene/control/ScrollPane;)V 73 member ; # com/sun/javafx/scene/control/behavior/ScrollPaneBehavior$$Lambda$426+0x00000008012535d0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollPaneBehavior (Ljavafx/scene/control/ScrollPane;)V 54 member ; # com/sun/javafx/scene/control/behavior/ScrollPaneBehavior$$Lambda$425+0x00000008012533c0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ScrollPaneBehavior (Ljavafx/scene/control/ScrollPane;)V 34 member ; # com/sun/javafx/scene/control/behavior/ScrollPaneBehavior$$Lambda$424+0x00000008012531b0 +instanceKlass javafx/scene/control/skin/ScrollPaneSkin$2 +instanceKlass javafx/scene/control/skin/ScrollPaneSkin$1 +instanceKlass @bci javafx/scene/control/skin/LabelSkin (Ljavafx/scene/control/Label;)V 16 member ; # javafx/scene/control/skin/LabelSkin$$Lambda$423+0x000000080124f6c0 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 294 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$422+0x000000080124f4a0 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 280 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$421+0x000000080124f280 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 266 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$420+0x000000080124f060 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 252 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$419+0x000000080124ee40 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 238 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$418+0x000000080124ec20 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 224 argL0 ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$417+0x000000080124ea08 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 211 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$416+0x000000080124e7e8 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 197 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$415+0x000000080124e5c8 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 183 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$414+0x000000080124e3a8 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 169 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$413+0x000000080124e188 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 155 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$412+0x000000080124df68 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 141 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$411+0x000000080124dd48 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 127 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$410+0x000000080124db28 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 113 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$409+0x000000080124d908 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 99 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$408+0x000000080124d6e8 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 85 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$407+0x000000080124d4c8 +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 71 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$406+0x000000080124d2a8 +instanceKlass javafx/scene/text/Text$TextAttribute +instanceKlass @bci javafx/scene/control/skin/LabeledSkinBase (Ljavafx/scene/control/Labeled;)V 26 member ; # javafx/scene/control/skin/LabeledSkinBase$$Lambda$405+0x0000000801246048 +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkin (Ljavafx/scene/control/MenuButton;)V 52 member ; # javafx/scene/control/skin/MenuButtonSkin$$Lambda$404+0x0000000801245748 +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkin (Ljavafx/scene/control/MenuButton;)V 35 member ; # javafx/scene/control/skin/MenuButtonSkin$$Lambda$403+0x0000000801245538 +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkin (Ljavafx/scene/control/MenuButton;)V 22 member ; # javafx/scene/control/skin/MenuButtonSkin$$Lambda$402+0x0000000801245328 +instanceKlass @bci com/sun/javafx/scene/control/behavior/MenuButtonBehavior (Ljavafx/scene/control/MenuButton;)V 47 member ; # com/sun/javafx/scene/control/behavior/MenuButtonBehavior$$Lambda$401+0x0000000801245118 +instanceKlass @bci com/sun/javafx/scene/control/behavior/MenuButtonBehavior (Ljavafx/scene/control/MenuButton;)V 20 member ; # com/sun/javafx/scene/control/behavior/MenuButtonBehavior$$Lambda$400+0x0000000801244f08 +instanceKlass @bci com/sun/javafx/scene/control/behavior/BehaviorBase addDefaultChildMap (Lcom/sun/javafx/scene/control/inputmap/InputMap;Lcom/sun/javafx/scene/control/inputmap/InputMap;)V 17 member ; # com/sun/javafx/scene/control/behavior/BehaviorBase$$Lambda$399+0x0000000801244cf8 +instanceKlass @bci com/sun/javafx/scene/control/inputmap/InputMap reprocessAllMappings ()V 14 member ; # com/sun/javafx/scene/control/inputmap/InputMap$$Lambda$398+0x0000000801244ad8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase (Ljavafx/scene/control/MenuButton;)V 183 member ; # com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase$$Lambda$397+0x00000008012448c8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase (Ljavafx/scene/control/MenuButton;)V 155 member ; # com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase$$Lambda$396+0x00000008012446b8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase (Ljavafx/scene/control/MenuButton;)V 127 member ; # com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase$$Lambda$395+0x00000008012444a8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase (Ljavafx/scene/control/MenuButton;)V 99 member ; # com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase$$Lambda$394+0x0000000801244298 +instanceKlass @bci com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase (Ljavafx/scene/control/MenuButton;)V 62 member ; # com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase$$Lambda$393+0x0000000801244088 +instanceKlass @bci com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase (Ljavafx/scene/control/MenuButton;)V 35 member ; # com/sun/javafx/scene/control/behavior/MenuButtonBehaviorBase$$Lambda$392+0x0000000801243e78 +instanceKlass @bci com/sun/javafx/scene/control/behavior/BehaviorBase removeMapping (Ljava/lang/Object;)V 12 member ; # com/sun/javafx/scene/control/behavior/BehaviorBase$$Lambda$391+0x0000000801243c58 +instanceKlass @bci java/util/stream/Collectors toList ()Ljava/util/stream/Collector; 14 argL0 ; # java/util/stream/Collectors$$Lambda$390+0x0000000801175418 +instanceKlass @bci java/util/stream/Collectors toList ()Ljava/util/stream/Collector; 9 argL0 ; # java/util/stream/Collectors$$Lambda$389+0x0000000801175200 +instanceKlass @bci java/util/stream/Collectors toList ()Ljava/util/stream/Collector; 4 argL0 ; # java/util/stream/Collectors$$Lambda$388+0x0000000801174ff8 +instanceKlass @bci com/sun/javafx/scene/control/inputmap/InputMap lookupMappingKey (Ljava/lang/Object;)Ljava/util/List; 20 member ; # com/sun/javafx/scene/control/inputmap/InputMap$$Lambda$387+0x0000000801243a18 +instanceKlass @bci com/sun/javafx/scene/control/inputmap/InputMap lookupMappingKey (Ljava/lang/Object;)Ljava/util/List; 9 argL0 ; # com/sun/javafx/scene/control/inputmap/InputMap$$Lambda$386+0x00000008012437e0 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ButtonBehavior (Ljavafx/scene/control/ButtonBase;)V 225 argL0 ; # com/sun/javafx/scene/control/behavior/ButtonBehavior$$Lambda$385+0x00000008012435a8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ButtonBehavior (Ljavafx/scene/control/ButtonBase;)V 220 member ; # com/sun/javafx/scene/control/behavior/ButtonBehavior$$Lambda$384+0x0000000801243398 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ButtonBehavior (Ljavafx/scene/control/ButtonBase;)V 190 argL0 ; # com/sun/javafx/scene/control/behavior/ButtonBehavior$$Lambda$383+0x0000000801243160 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ButtonBehavior (Ljavafx/scene/control/ButtonBase;)V 185 member ; # com/sun/javafx/scene/control/behavior/ButtonBehavior$$Lambda$382+0x0000000801242f50 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ButtonBehavior (Ljavafx/scene/control/ButtonBase;)V 155 member ; # com/sun/javafx/scene/control/behavior/ButtonBehavior$$Lambda$381+0x0000000801242d40 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ButtonBehavior (Ljavafx/scene/control/ButtonBase;)V 136 member ; # com/sun/javafx/scene/control/behavior/ButtonBehavior$$Lambda$380+0x0000000801242b30 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ButtonBehavior (Ljavafx/scene/control/ButtonBase;)V 117 member ; # com/sun/javafx/scene/control/behavior/ButtonBehavior$$Lambda$379+0x0000000801242920 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ButtonBehavior (Ljavafx/scene/control/ButtonBase;)V 98 member ; # com/sun/javafx/scene/control/behavior/ButtonBehavior$$Lambda$378+0x0000000801242710 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ButtonBehavior (Ljavafx/scene/control/ButtonBase;)V 79 member ; # com/sun/javafx/scene/control/behavior/ButtonBehavior$$Lambda$377+0x00000008012422f8 +instanceKlass @bci com/sun/javafx/scene/control/behavior/ButtonBehavior (Ljavafx/scene/control/ButtonBase;)V 57 member ; # com/sun/javafx/scene/control/behavior/ButtonBehavior$$Lambda$376+0x00000008012420e8 +instanceKlass @bci com/sun/javafx/scene/control/inputmap/InputMap addMapping (Lcom/sun/javafx/scene/control/inputmap/InputMap$Mapping;)V 23 argL0 ; # com/sun/javafx/scene/control/inputmap/InputMap$$Lambda$375+0x0000000801241ec0 +instanceKlass @bci com/sun/javafx/scene/control/inputmap/InputMap addEventHandler (Ljavafx/event/EventType;)V 20 member ; # com/sun/javafx/scene/control/inputmap/InputMap$$Lambda$374+0x0000000801241cb0 +instanceKlass @bci com/sun/javafx/scene/control/inputmap/InputMap addEventHandler (Ljavafx/event/EventType;)V 5 argL0 ; # com/sun/javafx/scene/control/inputmap/InputMap$$Lambda$373+0x0000000801241a88 +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 321 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$372+0x0000000801241880 +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 289 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$371+0x0000000801241678 +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 254 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$370+0x0000000801241470 +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 219 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$369+0x0000000801241268 +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 184 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$368+0x0000000801241060 +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 149 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$367+0x0000000801240e58 +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 114 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$366+0x0000000801240c50 +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 86 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$365+0x0000000801240a48 +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 68 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$364+0x0000000801240840 +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 50 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$363+0x0000000801240638 +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 32 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$362+0x0000000801240430 +instanceKlass com/sun/javafx/scene/control/inputmap/KeyBinding +instanceKlass @bci com/sun/javafx/scene/control/behavior/FocusTraversalInputMap ()V 14 argL0 ; # com/sun/javafx/scene/control/behavior/FocusTraversalInputMap$$Lambda$361+0x0000000801228c00 +instanceKlass com/sun/javafx/scene/control/inputmap/InputMap$Mapping +instanceKlass com/sun/javafx/scene/control/behavior/FocusTraversalInputMap +instanceKlass @bci com/sun/javafx/scene/control/inputmap/InputMap (Ljavafx/scene/Node;)V 108 member ; # com/sun/javafx/scene/control/inputmap/InputMap$$Lambda$360+0x000000080123f7e0 +instanceKlass @bci com/sun/javafx/scene/control/inputmap/InputMap (Ljavafx/scene/Node;)V 86 member ; # com/sun/javafx/scene/control/inputmap/InputMap$$Lambda$359+0x000000080123f5d0 +instanceKlass com/sun/javafx/scene/control/inputmap/InputMap +instanceKlass @bci com/sun/javafx/scene/control/behavior/ButtonBehavior (Ljavafx/scene/control/ButtonBase;)V 7 member ; # com/sun/javafx/scene/control/behavior/ButtonBehavior$$Lambda$358+0x000000080123ecf0 +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkinBase (Ljavafx/scene/control/MenuButton;)V 423 member ; # javafx/scene/control/skin/MenuButtonSkinBase$$Lambda$357+0x000000080123ead0 +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkinBase (Ljavafx/scene/control/MenuButton;)V 405 member ; # javafx/scene/control/skin/MenuButtonSkinBase$$Lambda$356+0x000000080123e8b0 +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkinBase (Ljavafx/scene/control/MenuButton;)V 391 member ; # javafx/scene/control/skin/MenuButtonSkinBase$$Lambda$355+0x000000080123e690 +instanceKlass @bci com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler registerChangeListener (Ljavafx/beans/value/ObservableValue;Ljava/util/function/Consumer;)V 38 argL0 ; # com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler$$Lambda$354+0x000000080123e478 +instanceKlass @cpi com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler 221 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801228800 +instanceKlass @bci com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler ()V 89 member ; # com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler$$Lambda$353+0x000000080123e268 +instanceKlass @bci com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler ()V 53 member ; # com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler$$Lambda$352+0x000000080123e058 +instanceKlass @bci com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler ()V 17 member ; # com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler$$Lambda$351+0x000000080123de48 +instanceKlass @bci com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler ()V 0 argL0 ; # com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler$$Lambda$350+0x000000080123dc30 +instanceKlass com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkinBase (Ljavafx/scene/control/MenuButton;)V 377 member ; # javafx/scene/control/skin/MenuButtonSkinBase$$Lambda$349+0x000000080123d818 +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkinBase (Ljavafx/scene/control/MenuButton;)V 352 member ; # javafx/scene/control/skin/MenuButtonSkinBase$$Lambda$348+0x000000080123d608 +instanceKlass @bci com/sun/javafx/scene/control/ControlAcceleratorSupport getSceneChangeListener (Ljava/lang/Object;Ljavafx/collections/ObservableList;)Ljavafx/beans/value/ChangeListener; 34 member ; # com/sun/javafx/scene/control/ControlAcceleratorSupport$$Lambda$347+0x000000080123d3f8 +instanceKlass @bci com/sun/javafx/scene/control/ControlAcceleratorSupport getListener (Ljavafx/scene/Scene;Ljavafx/scene/control/MenuItem;)Ljavafx/beans/value/ChangeListener; 34 member ; # com/sun/javafx/scene/control/ControlAcceleratorSupport$$Lambda$346+0x000000080123d1e8 +instanceKlass @bci com/sun/javafx/scene/control/ControlAcceleratorSupport doAcceleratorInstall (Ljavafx/collections/ObservableList;Ljavafx/scene/Scene;)V 2 member ; # com/sun/javafx/scene/control/ControlAcceleratorSupport$$Lambda$345+0x000000080123cfd8 +instanceKlass com/sun/javafx/scene/control/ControlAcceleratorSupport +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkinBase (Ljavafx/scene/control/MenuButton;)V 290 member ; # javafx/scene/control/skin/MenuButtonSkinBase$$Lambda$344+0x000000080123cbd8 +instanceKlass @bci javafx/scene/control/skin/MenuButtonSkinBase$MenuLabeledImpl (Ljavafx/scene/control/MenuButton;)V 15 member ; # javafx/scene/control/skin/MenuButtonSkinBase$MenuLabeledImpl$$Lambda$343+0x00000008012368f8 +instanceKlass com/sun/javafx/scene/control/LabeledImpl$StyleableProperties +instanceKlass com/sun/javafx/scene/control/LabeledImpl$Shuttler +instanceKlass com/sun/javafx/scene/control/behavior/BehaviorBase +instanceKlass com/sun/javafx/css/BitSet$1 +instanceKlass com/sun/javafx/scene/control/Logging +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 361 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$342+0x0000000801233c70 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 339 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$341+0x0000000801233a60 +instanceKlass com/sun/javafx/scene/traversal/TraverseListener +instanceKlass com/sun/javafx/scene/KeyboardShortcutsHandler$CopyOnWriteMap$1$1 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 317 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$340+0x0000000801232a70 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 288 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$339+0x0000000801232860 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 228 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$338+0x0000000801232650 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin rebuildUI ()V 587 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$337+0x0000000801232440 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin rebuildUI ()V 575 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$336+0x0000000801232230 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin rebuildUI ()V 564 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$335+0x0000000801232020 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin rebuildUI ()V 552 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$334+0x0000000801231e10 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin rebuildUI ()V 535 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$333+0x0000000801231c00 +instanceKlass javafx/beans/value/WritableLongValue +instanceKlass javafx/beans/value/WritableFloatValue +instanceKlass com/sun/javafx/binding/BidirectionalBinding +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin rebuildUI ()V 461 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$332+0x000000080122aae8 +instanceKlass @cpi javafx/scene/control/skin/MenuBarSkin 1279 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801228400 +instanceKlass javafx/beans/property/StringPropertyBase$Listener +instanceKlass @bci com/sun/javafx/scene/control/MenuBarButton (Ljavafx/scene/control/skin/MenuBarSkin;Ljavafx/scene/control/Menu;)V 51 member ; # com/sun/javafx/scene/control/MenuBarButton$$Lambda$331+0x000000080122a6a0 +instanceKlass @bci com/sun/javafx/scene/control/MenuBarButton (Ljavafx/scene/control/skin/MenuBarSkin;Ljavafx/scene/control/Menu;)V 30 member ; # com/sun/javafx/scene/control/MenuBarButton$$Lambda$330+0x000000080122a490 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 211 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$329+0x000000080122e618 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 201 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$328+0x000000080122e3f8 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 185 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$327+0x000000080122e1e8 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 171 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$326+0x000000080122dfc8 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 143 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$325+0x000000080122ddb8 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 133 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$324+0x000000080122db98 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 105 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$323+0x000000080122d988 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 95 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$322+0x000000080122d778 +instanceKlass javafx/scene/control/skin/MenuBarSkin$1 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 32 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$321+0x000000080122d350 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin (Ljavafx/scene/control/MenuBar;)V 22 member ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$320+0x000000080122d140 +instanceKlass javafx/scene/control/SkinBase$StyleableProperties +instanceKlass @bci javafx/collections/transformation/TransformationList getListener ()Ljavafx/collections/ListChangeListener; 9 member ; # javafx/collections/transformation/TransformationList$$Lambda$319+0x000000080122cd40 +instanceKlass @bci javafx/collections/transformation/FilteredList ()V 0 argL0 ; # javafx/collections/transformation/FilteredList$$Lambda$318+0x000000080122cb08 +instanceKlass com/sun/javafx/FXPermissions +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin ()V 6 argL0 ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$317+0x00000008012271b8 +instanceKlass @bci javafx/scene/control/skin/MenuBarSkin ()V 0 argL0 ; # javafx/scene/control/skin/MenuBarSkin$$Lambda$316+0x0000000801226f80 +instanceKlass @cpi com/sun/prism/impl/BaseResourcePool 452 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801228000 +instanceKlass @bci javafx/scene/control/SkinBase ()V 0 argL0 ; # javafx/scene/control/SkinBase$$Lambda$315+0x0000000801226d78 +instanceKlass javafx/scene/control/SkinBase +instanceKlass javafx/scene/paint/Stop +instanceKlass com/sun/javafx/css/StyleCacheEntry +instanceKlass javafx/css/Style +instanceKlass javafx/css/Match +instanceKlass com/sun/javafx/css/CalculatedValue +instanceKlass com/sun/javafx/css/StyleCacheEntry$Key +instanceKlass com/sun/javafx/css/StyleCache +instanceKlass javafx/scene/layout/StackPane$StyleableProperties +instanceKlass javafx/scene/layout/HBox$StyleableProperties +instanceKlass javafx/scene/layout/VBox$StyleableProperties +instanceKlass javafx/scene/Node$23 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassWindowEventHandler handleWindowEvent (Lcom/sun/glass/ui/Window;JI)V 12 member ; # com/sun/javafx/tk/quantum/GlassWindowEventHandler$$Lambda$314+0x0000000801221338 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler handleViewEvent (Lcom/sun/glass/ui/View;JI)V 45 member ; # com/sun/javafx/tk/quantum/GlassViewEventHandler$$Lambda$313+0x0000000801221128 +instanceKlass jdk/jfr/FlightRecorder +instanceKlass @bci com/sun/javafx/logging/PulseLogger isPulseLoggingRequested ()Z 0 argL0 ; # com/sun/javafx/logging/PulseLogger$$Lambda$312+0x0000000801220658 +instanceKlass com/sun/javafx/logging/PrintLogger$PulseData +instanceKlass @bci com/sun/javafx/logging/PrintLogger ()V 18 argL0 ; # com/sun/javafx/logging/PrintLogger$$Lambda$311+0x0000000801220258 +instanceKlass @bci com/sun/javafx/logging/PrintLogger ()V 0 argL0 ; # com/sun/javafx/logging/PrintLogger$$Lambda$310+0x000000080121fdc0 +instanceKlass com/sun/javafx/logging/Logger +instanceKlass com/sun/javafx/logging/PulseLogger +instanceKlass @bci com/sun/javafx/tk/quantum/WindowStage setScene (Lcom/sun/javafx/tk/TKScene;)V 40 member ; # com/sun/javafx/tk/quantum/WindowStage$$Lambda$309+0x000000080121f558 +instanceKlass com/sun/javafx/geom/DirtyRegionContainer +instanceKlass com/sun/javafx/geom/DirtyRegionPool +instanceKlass com/sun/javafx/sg/prism/NodePath +instanceKlass javafx/scene/Scene$InputMethodRequestsDelegate +instanceKlass com/sun/javafx/scene/input/ExtendedInputMethodRequests +instanceKlass javafx/scene/Scene$DropTargetListener +instanceKlass com/sun/javafx/util/WeakReferenceQueue +instanceKlass com/sun/javafx/scene/transform/TransformUtils +instanceKlass java/util/LinkedList$Node +instanceKlass @bci javafx/scene/Camera ()V 115 member ; # javafx/scene/Camera$$Lambda$308+0x000000080121d430 +instanceKlass javafx/scene/ParallelCamera$1 +instanceKlass javafx/scene/Camera$1 +instanceKlass com/sun/javafx/scene/ParallelCameraHelper$ParallelCameraAccessor +instanceKlass com/sun/javafx/scene/CameraHelper$CameraAccessor +instanceKlass com/sun/scenario/effect/impl/state/AccessHelper +instanceKlass @bci com/sun/scenario/effect/Effect ()V 4 argL0 ; # com/sun/scenario/effect/Effect$$Lambda$307+0x0000000801219940 +instanceKlass com/sun/scenario/effect/impl/state/AccessHelper$StateAccessor +instanceKlass com/sun/prism/paint/Paint +instanceKlass com/sun/scenario/effect/Effect +instanceKlass javafx/scene/Scene$ScenePeerPaintListener +instanceKlass javafx/scene/Scene$ScenePeerListener +instanceKlass @bci com/sun/javafx/tk/quantum/GlassScene setSecurityContext (Ljava/security/AccessControlContext;)V 22 argL0 ; # com/sun/javafx/tk/quantum/GlassScene$$Lambda$306+0x0000000801215620 +instanceKlass com/sun/javafx/tk/quantum/SwipeGestureRecognizer$CenterComputer +instanceKlass com/sun/javafx/tk/quantum/SwipeGestureRecognizer$MultiTouchTracker +instanceKlass com/sun/javafx/tk/quantum/SwipeGestureRecognizer +instanceKlass com/sun/javafx/tk/quantum/GestureRecognizers +instanceKlass com/sun/javafx/tk/quantum/GlassSceneDnDEventHandler +instanceKlass com/sun/javafx/tk/quantum/GlassViewEventHandler$ViewEventNotification +instanceKlass com/sun/javafx/tk/quantum/GlassViewEventHandler$MouseEventNotification +instanceKlass com/sun/javafx/tk/quantum/GlassViewEventHandler$KeyEventNotification +instanceKlass @bci com/sun/javafx/tk/quantum/GlassViewEventHandler ()V 0 argL0 ; # com/sun/javafx/tk/quantum/GlassViewEventHandler$$Lambda$305+0x0000000801216da0 +instanceKlass com/sun/javafx/tk/quantum/GestureRecognizer +instanceKlass com/sun/javafx/tk/quantum/GlassTouchEventListener +instanceKlass @bci com/sun/glass/ui/View ()V 0 argL0 ; # com/sun/glass/ui/View$$Lambda$304+0x00000008012167c8 +instanceKlass com/sun/prism/PresentableState +instanceKlass com/sun/javafx/tk/quantum/ViewPainter +instanceKlass com/sun/glass/ui/View$EventHandler +instanceKlass com/sun/glass/ui/ClipboardAssistance +instanceKlass javafx/application/Platform +instanceKlass @bci com/sun/glass/ui/GestureSupport createTouchCountListener ()Lcom/sun/glass/ui/TouchInputSupport$TouchCountListener; 4 member ; # com/sun/glass/ui/GestureSupport$$Lambda$303+0x0000000801211a30 +instanceKlass @cpi com/sun/glass/ui/GestureSupport 204 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801214000 +instanceKlass com/sun/glass/ui/TouchInputSupport$TouchCountListener +instanceKlass com/sun/glass/ui/TouchInputSupport +instanceKlass com/sun/glass/ui/GestureSupport$GestureState +instanceKlass com/sun/glass/ui/GestureSupport +instanceKlass com/sun/glass/ui/win/WinGestureSupport +instanceKlass com/sun/javafx/tk/quantum/WindowStage$1 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassStage lambda$doIntersectionPrivilege$1 (Ljava/security/AccessControlContext;)Ljava/security/AccessControlContext; 0 argL0 ; # com/sun/javafx/tk/quantum/GlassStage$$Lambda$302+0x0000000801210418 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassStage doIntersectionPrivilege (Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;Ljava/security/AccessControlContext;)Ljava/security/AccessControlContext; 1 member ; # com/sun/javafx/tk/quantum/GlassStage$$Lambda$301+0x0000000801210208 +instanceKlass @bci com/sun/javafx/tk/quantum/GlassStage setSecurityContext (Ljava/security/AccessControlContext;)V 22 argL0 ; # com/sun/javafx/tk/quantum/GlassStage$$Lambda$300+0x0000000801210000 +instanceKlass java/util/ResourceBundle$3 +instanceKlass com/sun/glass/ui/Window$EventHandler +instanceKlass com/sun/javafx/tk/quantum/GlassStage +instanceKlass com/sun/javafx/event/EventUtil +instanceKlass javafx/scene/text/Text$StyleableProperties +instanceKlass javafx/scene/image/ImageView$StyleableProperties +instanceKlass javafx/scene/shape/Shape$StyleableProperties +instanceKlass javafx/scene/shape/Rectangle$StyleableProperties +instanceKlass javafx/scene/control/ScrollPane$StyleableProperties +instanceKlass javafx/scene/control/MenuBar$StyleableProperties +instanceKlass javafx/scene/layout/BackgroundImage +instanceKlass smeen/component/SpriteOption$1 +instanceKlass @bci smeen/component/SpriteOption (Lsmeen/views/MainView;)V 226 member ; # smeen/component/SpriteOption$$Lambda$299+0x0000000801208420 +instanceKlass @bci smeen/component/SpriteObject (Lsmeen/views/MainView;)V 86 member ; # smeen/component/SpriteObject$$Lambda$298+0x0000000801208210 +instanceKlass @bci smeen/component/SpriteObject (Lsmeen/views/MainView;)V 50 member ; # smeen/component/SpriteObject$$Lambda$297+0x0000000801208000 +instanceKlass @bci javafx/beans/property/ListPropertyBase (Ljavafx/collections/ObservableList;)V 6 member ; # javafx/beans/property/ListPropertyBase$$Lambda$296+0x0000000801207dd8 +instanceKlass javafx/beans/binding/ListExpression +instanceKlass javafx/beans/value/ObservableListValue +instanceKlass javafx/beans/value/WritableListValue +instanceKlass @bci smeen/component/SpriteOption (Lsmeen/views/MainView;)V 177 member ; # smeen/component/SpriteOption$$Lambda$295+0x0000000801201be8 +instanceKlass @bci smeen/component/SceneOption (Lsmeen/views/MainView;)V 227 member ; # smeen/component/SceneOption$$Lambda$294+0x00000008012019d8 +instanceKlass @bci javafx/scene/control/Label ()V 6 member ; # javafx/scene/control/Label$$Lambda$293+0x00000008012017c8 +instanceKlass javafx/scene/image/ImageView$1 +instanceKlass com/sun/javafx/scene/ImageViewHelper$ImageViewAccessor +instanceKlass @bci smeen/component/code/CodeArea (Lsmeen/views/MainView;Lsmeen/component/SpriteObject;)V 88 member ; # smeen/component/code/CodeArea$$Lambda$292+0x00000008011fc290 +instanceKlass @bci smeen/component/code/CodeArea (Lsmeen/views/MainView;Lsmeen/component/SpriteObject;)V 74 member ; # smeen/component/code/CodeArea$$Lambda$291+0x00000008011fc080 +instanceKlass @bci smeen/component/code/CodeArea (Lsmeen/views/MainView;Lsmeen/component/SpriteObject;)V 59 member ; # smeen/component/code/CodeArea$$Lambda$290+0x00000008011fbe70 +instanceKlass @bci smeen/component/code/CodeArea (Lsmeen/views/MainView;Lsmeen/component/SpriteObject;)V 47 member ; # smeen/component/code/CodeArea$$Lambda$289+0x00000008011fbc60 +instanceKlass @bci smeen/views/MainView (Ljavafx/stage/Stage;)V 556 member ; # smeen/views/MainView$$Lambda$288+0x00000008011fba50 +instanceKlass @bci smeen/views/MainView (Ljavafx/stage/Stage;)V 543 member ; # smeen/views/MainView$$Lambda$287+0x00000008011fb840 +instanceKlass smeen/logic/DraggingHandler +instanceKlass smeen/logic/CodeBlockInputSnapHandler +instanceKlass smeen/logic/CodeBlockListSnapHandler +instanceKlass @bci smeen/logic/CodeExecutionHandler (Lsmeen/views/MainView;)V 53 member ; # smeen/logic/CodeExecutionHandler$$Lambda$286+0x00000008011fa088 +instanceKlass @bci javafx/beans/property/SetPropertyBase (Ljavafx/collections/ObservableSet;)V 6 member ; # javafx/beans/property/SetPropertyBase$$Lambda$285+0x00000008011f9c50 +instanceKlass com/sun/javafx/collections/ObservableSetWrapper +instanceKlass javafx/beans/binding/SetExpression$EmptyObservableSet$1 +instanceKlass smeen/logic/SmeenContext +instanceKlass javafx/beans/binding/SetExpression +instanceKlass javafx/beans/value/ObservableSetValue +instanceKlass javafx/beans/value/WritableSetValue +instanceKlass smeen/logic/CodeExecutionHandler +instanceKlass @bci smeen/component/TopMenuBar (Lsmeen/views/MainView;)V 90 member ; # smeen/component/TopMenuBar$$Lambda$284+0x00000008011f3bd0 +instanceKlass @bci smeen/component/TopMenuBar (Lsmeen/views/MainView;)V 54 member ; # smeen/component/TopMenuBar$$Lambda$283+0x00000008011f39c0 +instanceKlass @bci smeen/component/TopMenuBar (Lsmeen/views/MainView;)V 29 member ; # smeen/component/TopMenuBar$$Lambda$282+0x00000008011f37b0 +instanceKlass @bci javafx/scene/control/Menu (Ljava/lang/String;Ljavafx/scene/Node;[Ljavafx/scene/control/MenuItem;)V 98 member ; # javafx/scene/control/Menu$$Lambda$281+0x00000008011f35a0 +instanceKlass javafx/scene/control/MenuItem +instanceKlass @bci smeen/component/ResizeEditor (Lsmeen/views/MainView;)V 224 member ; # smeen/component/ResizeEditor$$Lambda$280+0x00000008011ee760 +instanceKlass @bci smeen/component/ResizeEditor (Lsmeen/views/MainView;)V 210 member ; # smeen/component/ResizeEditor$$Lambda$279+0x00000008011ee550 +instanceKlass @bci smeen/component/SceneEditor createAddSceneButton (Lsmeen/views/MainView;)Ljavafx/scene/control/Button; 250 member ; # smeen/component/SceneEditor$$Lambda$278+0x00000008011ed880 +instanceKlass @bci smeen/component/SceneEditor createAddSceneButton (Lsmeen/views/MainView;)Ljavafx/scene/control/Button; 239 member ; # smeen/component/SceneEditor$$Lambda$277+0x00000008011ed670 +instanceKlass @bci smeen/component/SceneEditor createAddSceneButton (Lsmeen/views/MainView;)Ljavafx/scene/control/Button; 228 member ; # smeen/component/SceneEditor$$Lambda$276+0x00000008011ed460 +instanceKlass @bci smeen/component/SceneEditor (Lsmeen/views/MainView;)V 31 member ; # smeen/component/SceneEditor$$Lambda$275+0x00000008011ed250 +instanceKlass @bci smeen/component/SpriteEditor createAddSpriteButton ()Ljavafx/scene/control/Button; 233 member ; # smeen/component/SpriteEditor$$Lambda$274+0x00000008011ebe68 +instanceKlass @bci smeen/component/SpriteEditor setOnClick (Ljavafx/scene/layout/VBox;Ljava/lang/String;)V 85 member ; # smeen/component/SpriteEditor$$Lambda$273+0x00000008011ebc58 +instanceKlass javafx/beans/property/BooleanPropertyBase$Listener +instanceKlass com/sun/javafx/binding/Logging +instanceKlass javafx/beans/binding/When$ObjectConditionBuilder +instanceKlass javafx/beans/binding/When +instanceKlass @bci smeen/component/SpriteEditor setOnClick (Ljavafx/scene/layout/VBox;Ljava/lang/String;)V 19 member ; # smeen/component/SpriteEditor$$Lambda$272+0x00000008011eaab0 +instanceKlass com/sun/javafx/font/Glyph +instanceKlass com/sun/javafx/font/CompositeStrikeDisposer +instanceKlass com/sun/javafx/font/Metrics +instanceKlass com/sun/javafx/font/CompositeStrike +instanceKlass com/sun/javafx/font/FontStrikeDesc +instanceKlass com/sun/javafx/font/WindowsFontMap$FamilyDescription +instanceKlass com/sun/javafx/font/WindowsFontMap +instanceKlass @bci smeen/component/SpriteEditor (Lsmeen/views/MainView;)V 255 member ; # smeen/component/SpriteEditor$$Lambda$271+0x00000008011e88c0 +instanceKlass @bci javafx/scene/layout/FlowPane ()V 0 argL0 ; # javafx/scene/layout/FlowPane$$Lambda$270+0x00000008011c7ca0 +instanceKlass javafx/beans/value/ObservableFloatValue +instanceKlass javafx/beans/value/ObservableLongValue +instanceKlass javafx/beans/binding/Bindings +instanceKlass @bci smeen/component/StageArea (Lsmeen/views/MainView;)V 520 member ; # smeen/component/StageArea$$Lambda$269+0x00000008011bc2e8 +instanceKlass @bci smeen/util/SmeenLayouts clipChildren (Ljavafx/scene/layout/Region;)V 18 member ; # smeen/util/SmeenLayouts$$Lambda$268+0x00000008011bc0d8 +instanceKlass javafx/scene/shape/Rectangle$1 +instanceKlass com/sun/javafx/scene/shape/RectangleHelper$RectangleAccessor +instanceKlass smeen/util/SmeenLayouts +instanceKlass javafx/scene/layout/BorderPane$BorderPositionProperty$1 +instanceKlass @bci smeen/component/StageArea (Lsmeen/views/MainView;)V 330 member ; # smeen/component/StageArea$$Lambda$267+0x00000008011b7b90 +instanceKlass com/sun/javafx/scene/EventHandlerProperties +instanceKlass @bci smeen/component/StageArea (Lsmeen/views/MainView;)V 319 member ; # smeen/component/StageArea$$Lambda$266+0x00000008011b7788 +instanceKlass @bci smeen/component/StageArea (Lsmeen/views/MainView;)V 193 member ; # smeen/component/StageArea$$Lambda$265+0x00000008011b7578 +instanceKlass com/sun/javafx/geom/PathIterator +instanceKlass javafx/scene/shape/Circle$1 +instanceKlass com/sun/javafx/scene/shape/CircleHelper$CircleAccessor +instanceKlass @bci smeen/component/StageArea (Lsmeen/views/MainView;)V 117 member ; # smeen/component/StageArea$$Lambda$264+0x00000008011b4410 +instanceKlass com/sun/javafx/cursor/CursorFrame +instanceKlass javafx/scene/Cursor +instanceKlass @bci smeen/component/code/CodeSelector (Lsmeen/views/MainView;)V 1835 ; # java/lang/invoke/LambdaForm$MH+0x00000008011b1000 +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x00000008011b0c00 +instanceKlass @bci smeen/component/code/CodeSelector (Lsmeen/views/MainView;)V 1835 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x00000008011b0800 +instanceKlass @bci smeen/component/code/CodeSelector (Lsmeen/views/MainView;)V 1835 member ; # smeen/component/code/CodeSelector$$Lambda$263+0x00000008011ae2a0 +instanceKlass @cpi smeen/component/code/CodeSelector 605 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x00000008011b0400 +instanceKlass smeen/component/code/CodeSelector$1 +instanceKlass @bci smeen/component/code/block/variable/HideVarCodeBlock (Lsmeen/views/MainView;Lsmeen/component/code/CodeSelector;)V 77 member ; # smeen/component/code/block/variable/HideVarCodeBlock$$Lambda$262+0x00000008011ada68 +instanceKlass @bci smeen/component/code/block/variable/ShowVarCodeBlock (Lsmeen/views/MainView;Lsmeen/component/code/CodeSelector;)V 77 member ; # smeen/component/code/block/variable/ShowVarCodeBlock$$Lambda$261+0x00000008011acf28 +instanceKlass @bci smeen/component/code/block/variable/SetVarCodeBlock (Lsmeen/views/MainView;Lsmeen/component/code/CodeSelector;)V 129 member ; # smeen/component/code/block/variable/SetVarCodeBlock$$Lambda$260+0x00000008011ac3e8 +instanceKlass @cpi com/sun/javafx/scene/control/behavior/TextFieldBehavior 484 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x00000008011b0000 +instanceKlass @bci smeen/component/code/block/variable/SetVarCodeBlock (Lsmeen/views/MainView;Lsmeen/component/code/CodeSelector;)V 104 member ; # smeen/component/code/block/variable/SetVarCodeBlock$$Lambda$259+0x00000008011ac1d8 +instanceKlass @bci smeen/component/code/block/variable/CreateVarButton (Lsmeen/views/MainView;Lsmeen/component/code/CodeSelector;)V 69 member ; # smeen/component/code/block/variable/CreateVarButton$$Lambda$258+0x00000008011ab698 +instanceKlass javafx/scene/control/TextInputControl$StyleableProperties +instanceKlass javafx/scene/control/TextField$StyleableProperties +instanceKlass javafx/css/CssParser$Term +instanceKlass com/sun/javafx/css/parser/Token +instanceKlass @bci javafx/css/CssLexer$UnitsState (Ljavafx/css/CssLexer;)V 468 argL0 ; # javafx/css/CssLexer$UnitsState$$Lambda$257+0x00000008011aa468 +instanceKlass @bci javafx/css/CssLexer ()V 419 argL0 ; # javafx/css/CssLexer$$Lambda$256+0x00000008011aa080 +instanceKlass @bci javafx/css/CssLexer ()V 410 argL0 ; # javafx/css/CssLexer$$Lambda$255+0x00000008011a9e78 +instanceKlass @bci javafx/css/CssLexer ()V 401 argL0 ; # javafx/css/CssLexer$$Lambda$254+0x00000008011a9c70 +instanceKlass @bci javafx/css/CssLexer ()V 392 argL0 ; # javafx/css/CssLexer$$Lambda$253+0x00000008011a9a68 +instanceKlass @bci javafx/css/CssLexer ()V 383 argL0 ; # javafx/css/CssLexer$$Lambda$252+0x00000008011a9860 +instanceKlass @bci javafx/css/CssLexer ()V 374 argL0 ; # javafx/css/CssLexer$$Lambda$251+0x00000008011a9658 +instanceKlass @bci javafx/css/CssLexer ()V 365 argL0 ; # javafx/css/CssLexer$$Lambda$250+0x00000008011a9450 +instanceKlass @bci javafx/css/CssLexer ()V 356 argL0 ; # javafx/css/CssLexer$$Lambda$249+0x00000008011a9248 +instanceKlass @bci javafx/css/CssLexer ()V 347 argL0 ; # javafx/css/CssLexer$$Lambda$248+0x00000008011a9040 +instanceKlass @bci javafx/css/CssLexer ()V 338 argL0 ; # javafx/css/CssLexer$$Lambda$247+0x00000008011a8e38 +instanceKlass @bci javafx/css/CssLexer ()V 329 argL0 ; # javafx/css/CssLexer$$Lambda$246+0x00000008011a8c30 +instanceKlass @bci javafx/css/CssLexer ()V 320 argL0 ; # javafx/css/CssLexer$$Lambda$245+0x00000008011a8a28 +instanceKlass @bci javafx/css/CssLexer ()V 311 argL0 ; # javafx/css/CssLexer$$Lambda$244+0x00000008011a8820 +instanceKlass @bci javafx/css/CssLexer ()V 302 argL0 ; # javafx/css/CssLexer$$Lambda$243+0x00000008011a8618 +instanceKlass @bci javafx/css/CssLexer ()V 293 argL0 ; # javafx/css/CssLexer$$Lambda$242+0x00000008011a8410 +instanceKlass @bci javafx/css/CssLexer ()V 284 argL0 ; # javafx/css/CssLexer$$Lambda$241+0x00000008011a8208 +instanceKlass @bci javafx/css/CssLexer ()V 275 argL0 ; # javafx/css/CssLexer$$Lambda$240+0x00000008011a8000 +instanceKlass @bci javafx/css/CssLexer ()V 266 argL0 ; # javafx/css/CssLexer$$Lambda$239+0x00000008011a5c10 +instanceKlass @bci javafx/css/CssLexer ()V 257 argL0 ; # javafx/css/CssLexer$$Lambda$238+0x00000008011a5a08 +instanceKlass @bci javafx/css/CssLexer ()V 248 argL0 ; # javafx/css/CssLexer$$Lambda$237+0x00000008011a5800 +instanceKlass @bci javafx/css/CssLexer ()V 239 argL0 ; # javafx/css/CssLexer$$Lambda$236+0x00000008011a7c70 +instanceKlass @bci javafx/css/CssLexer ()V 230 argL0 ; # javafx/css/CssLexer$$Lambda$235+0x00000008011a7a68 +instanceKlass @bci javafx/css/CssLexer ()V 221 argL0 ; # javafx/css/CssLexer$$Lambda$234+0x00000008011a7860 +instanceKlass @bci javafx/css/CssLexer ()V 212 argL0 ; # javafx/css/CssLexer$$Lambda$233+0x00000008011a7658 +instanceKlass @bci javafx/css/CssLexer ()V 203 argL0 ; # javafx/css/CssLexer$$Lambda$232+0x00000008011a7450 +instanceKlass @bci javafx/css/CssLexer ()V 194 argL0 ; # javafx/css/CssLexer$$Lambda$231+0x00000008011a7248 +instanceKlass @bci javafx/css/CssLexer ()V 185 argL0 ; # javafx/css/CssLexer$$Lambda$230+0x00000008011a7040 +instanceKlass @bci javafx/css/CssLexer ()V 176 argL0 ; # javafx/css/CssLexer$$Lambda$229+0x00000008011a6e38 +instanceKlass @bci javafx/css/CssLexer ()V 167 argL0 ; # javafx/css/CssLexer$$Lambda$228+0x00000008011a6c30 +instanceKlass @bci javafx/css/CssLexer ()V 158 argL0 ; # javafx/css/CssLexer$$Lambda$227+0x00000008011a6a28 +instanceKlass @bci javafx/css/CssLexer ()V 149 argL0 ; # javafx/css/CssLexer$$Lambda$226+0x00000008011a6820 +instanceKlass @bci javafx/css/CssLexer ()V 140 argL0 ; # javafx/css/CssLexer$$Lambda$225+0x00000008011a6618 +instanceKlass @bci javafx/css/CssLexer ()V 131 argL0 ; # javafx/css/CssLexer$$Lambda$224+0x00000008011a6410 +instanceKlass @bci javafx/css/CssLexer ()V 122 argL0 ; # javafx/css/CssLexer$$Lambda$223+0x00000008011a6208 +instanceKlass @bci javafx/css/CssLexer ()V 113 argL0 ; # javafx/css/CssLexer$$Lambda$222+0x00000008011a6000 +instanceKlass @bci javafx/css/CssLexer ()V 104 argL0 ; # javafx/css/CssLexer$$Lambda$221+0x00000008011a3c70 +instanceKlass @bci javafx/css/CssLexer ()V 95 argL0 ; # javafx/css/CssLexer$$Lambda$220+0x00000008011a3a68 +instanceKlass @bci javafx/css/CssLexer ()V 86 argL0 ; # javafx/css/CssLexer$$Lambda$219+0x00000008011a3860 +instanceKlass @bci javafx/css/CssLexer ()V 77 argL0 ; # javafx/css/CssLexer$$Lambda$218+0x00000008011a3658 +instanceKlass @bci javafx/css/CssLexer ()V 68 argL0 ; # javafx/css/CssLexer$$Lambda$217+0x00000008011a3450 +instanceKlass @bci javafx/css/CssLexer ()V 59 argL0 ; # javafx/css/CssLexer$$Lambda$216+0x00000008011a3248 +instanceKlass @bci javafx/css/CssLexer ()V 50 argL0 ; # javafx/css/CssLexer$$Lambda$215+0x00000008011a3040 +instanceKlass @bci javafx/css/CssLexer ()V 41 argL0 ; # javafx/css/CssLexer$$Lambda$214+0x00000008011a2e38 +instanceKlass @bci javafx/css/CssLexer ()V 32 argL0 ; # javafx/css/CssLexer$$Lambda$213+0x00000008011a2c30 +instanceKlass @bci javafx/css/CssLexer ()V 23 argL0 ; # javafx/css/CssLexer$$Lambda$212+0x00000008011a2a28 +instanceKlass @bci javafx/css/CssLexer ()V 14 argL0 ; # javafx/css/CssLexer$$Lambda$211+0x00000008011a2820 +instanceKlass @bci javafx/css/CssLexer ()V 5 argL0 ; # javafx/css/CssLexer$$Lambda$210+0x00000008011a2618 +instanceKlass com/sun/javafx/css/parser/Recognizer +instanceKlass com/sun/javafx/css/parser/LexerState +instanceKlass javafx/css/CssLexer +instanceKlass @bci com/sun/marlin/DMarlinRenderingEngine logSettings (Ljava/lang/String;)V 68 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x00000008011a5400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008011a5000 +instanceKlass @bci com/sun/marlin/DMarlinRenderingEngine logSettings (Ljava/lang/String;)V 68 argL3 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x00000008011a4c00 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008011a4800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008011a4400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x00000008011a4000 +instanceKlass javafx/css/FontFace +instanceKlass javafx/css/CssParser$ParseError +instanceKlass javafx/css/CssParser +instanceKlass javafx/scene/control/Control$StyleableProperties +instanceKlass javafx/scene/control/Labeled$StyleableProperties +instanceKlass @bci smeen/component/code/block/variable/CreateVarButton createButton (Ljava/lang/String;Lsmeen/global/SmeenConstants$Type;)Ljavafx/scene/control/Button; 19 member ; # smeen/component/code/block/variable/CreateVarButton$$Lambda$209+0x000000080119d760 +instanceKlass @bci smeen/component/code/block/variable/CreateVarButton createPopup ()Ljavafx/stage/Popup; 227 member ; # smeen/component/code/block/variable/CreateVarButton$$Lambda$208+0x000000080119d550 +instanceKlass javafx/stage/PopupWindow$3 +instanceKlass com/sun/javafx/geom/Point2D +instanceKlass com/sun/javafx/util/TempState +instanceKlass @bci javafx/scene/Scene$KeyHandler (Ljavafx/scene/Scene;)V 11 member ; # javafx/scene/Scene$KeyHandler$$Lambda$207+0x000000080119c6b0 +instanceKlass javafx/scene/Scene$KeyHandler +instanceKlass @bci javafx/scene/Scene (Ljavafx/scene/Parent;DDLjavafx/scene/paint/Paint;ZLjavafx/scene/SceneAntialiasing;)V 316 member ; # javafx/scene/Scene$$Lambda$206+0x000000080119be30 +instanceKlass com/sun/javafx/logging/PlatformLogger$1 +instanceKlass com/sun/javafx/css/StyleCache$Key +instanceKlass javafx/scene/CssStyleHelper$CacheContainer +instanceKlass @bci com/sun/javafx/css/StyleMap ()V 30 argL0 ; # com/sun/javafx/css/StyleMap$$Lambda$205+0x000000080119b1c0 +instanceKlass com/sun/javafx/css/CascadingStyle +instanceKlass com/sun/javafx/css/StyleMap +instanceKlass com/sun/javafx/css/StyleManager$Cache$Key +instanceKlass com/sun/javafx/css/StyleManager$Cache +instanceKlass com/sun/javafx/css/StyleManager$Key +instanceKlass @bci java/lang/ClassLoader definePackage (Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Package; 73 member ; # java/lang/ClassLoader$$Lambda$204+0x0000000801173f38 +instanceKlass @bci com/sun/javafx/css/StyleManager findMatchingStyles (Ljavafx/scene/Node;Ljavafx/scene/SubScene;[Ljava/util/Set;)Lcom/sun/javafx/css/StyleMap; 251 argL0 ; # com/sun/javafx/css/StyleManager$$Lambda$203+0x000000080119a568 +instanceKlass com/sun/javafx/css/StyleManager$CacheContainer +instanceKlass javafx/css/converter/FontConverter$FontStyleConverter$Holder +instanceKlass javafx/css/converter/FontConverter$Holder +instanceKlass sun/util/logging/PlatformLogger$ConfigurableBridge$LoggerConfiguration +instanceKlass java/util/logging/LogManager$4 +instanceKlass @bci java/util/logging/Level$KnownLevel findByName (Ljava/lang/String;Ljava/util/function/Function;)Ljava/util/Optional; 29 argL0 ; # java/util/logging/Level$KnownLevel$$Lambda$15+0x800000023 +instanceKlass java/util/ArrayList$ArrayListSpliterator +instanceKlass @bci java/util/logging/Level findLevel (Ljava/lang/String;)Ljava/util/logging/Level; 13 argL0 ; # java/util/logging/Level$$Lambda$12+0x800000010 +instanceKlass java/util/Hashtable$Enumerator +instanceKlass java/util/Collections$3 +instanceKlass java/util/logging/LogManager$LoggerContext$1 +instanceKlass java/util/logging/LogManager$VisitedLoggers +instanceKlass java/util/logging/Logger$ConfigurationData +instanceKlass java/util/logging/Logger$LoggerBundle +instanceKlass java/util/logging/Handler +instanceKlass java/util/logging/Logger +instanceKlass java/util/logging/LogManager$2 +instanceKlass java/util/logging/LogManager$LoggingProviderAccess +instanceKlass java/util/logging/LogManager$LogNode +instanceKlass java/util/logging/LogManager$LoggerContext +instanceKlass java/util/logging/LogManager$1 +instanceKlass @bci java/util/logging/Level$KnownLevel add (Ljava/util/logging/Level;)V 49 argL0 ; # java/util/logging/Level$KnownLevel$$Lambda$14+0x800000022 +instanceKlass @bci java/util/logging/Level$KnownLevel add (Ljava/util/logging/Level;)V 19 argL0 ; # java/util/logging/Level$KnownLevel$$Lambda$13+0x800000021 +instanceKlass java/util/logging/Level +instanceKlass java/util/logging/LogManager +instanceKlass jdk/internal/logger/BootstrapLogger$BootstrapExecutors +instanceKlass jdk/internal/logger/BootstrapLogger$RedirectedLoggers +instanceKlass jdk/internal/logger/BootstrapLogger$DetectBackend$1 +instanceKlass jdk/internal/logger/BootstrapLogger$DetectBackend +instanceKlass jdk/internal/logger/BootstrapLogger +instanceKlass sun/util/logging/PlatformLogger$ConfigurableBridge +instanceKlass sun/util/logging/PlatformLogger$Bridge +instanceKlass sun/util/logging/internal/LoggingProviderImpl$LogManagerAccess +instanceKlass java/io/FilePermission$1 +instanceKlass jdk/internal/access/JavaIOFilePermissionAccess +instanceKlass jdk/internal/logger/LoggerFinderLoader +instanceKlass @bci java/lang/System$LoggerFinder accessProvider ()Ljava/lang/System$LoggerFinder; 6 argL0 ; # java/lang/System$LoggerFinder$$Lambda$198+0x00000008011728c0 +instanceKlass jdk/internal/logger/DefaultLoggerFinder$1 +instanceKlass java/lang/System$LoggerFinder +instanceKlass jdk/internal/logger/LazyLoggers$LazyLoggerFactories +instanceKlass jdk/internal/logger/LazyLoggers$1 +instanceKlass jdk/internal/logger/LazyLoggers +instanceKlass com/sun/javafx/logging/PlatformLogger +instanceKlass java/lang/System$Logger +instanceKlass com/sun/javafx/util/Logging +instanceKlass javafx/scene/CssStyleHelper +instanceKlass javafx/scene/Scene$ClickCounter +instanceKlass javafx/scene/Scene$ClickGenerator +instanceKlass javafx/scene/Scene$MouseHandler$1 +instanceKlass com/sun/javafx/event/EventQueue +instanceKlass javafx/scene/Scene$MouseHandler +instanceKlass com/sun/javafx/scene/traversal/TraversalEngine$BaseEngineContext +instanceKlass com/sun/javafx/scene/traversal/ContainerTabOrder +instanceKlass com/sun/javafx/scene/traversal/Algorithm +instanceKlass com/sun/javafx/scene/traversal/TraversalContext +instanceKlass javafx/scene/Scene$TouchMap +instanceKlass javafx/scene/Scene$TouchGesture +instanceKlass javafx/scene/Scene$TargetWrapper +instanceKlass javafx/scene/Scene$ScenePulseListener +instanceKlass javafx/scene/SceneAntialiasing +instanceKlass javafx/beans/value/WeakChangeListener +instanceKlass @bci javafx/stage/PopupWindow ()V 29 member ; # javafx/stage/PopupWindow$$Lambda$197+0x0000000801194cd0 +instanceKlass javafx/stage/PopupWindow$2 +instanceKlass @bci java/util/regex/CharPredicates ASCII_SPACE ()Ljava/util/regex/Pattern$BmpCharPredicate; 0 argL0 ; # java/util/regex/CharPredicates$$Lambda$17+0x800000025 +instanceKlass javafx/scene/input/KeyCombination$Modifier +instanceKlass javafx/stage/PopupWindow$1 +instanceKlass com/sun/javafx/stage/PopupWindowHelper$PopupWindowAccessor +instanceKlass @bci smeen/component/code/block/operator/inputDouble/FunctionOfCodeBlockInput (Lsmeen/views/MainView;)V 85 member ; # smeen/component/code/block/operator/inputDouble/FunctionOfCodeBlockInput$$Lambda$195+0x000000080118bc08 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 234 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$194+0x000000080118b9e0 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 215 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$193+0x000000080118b7b8 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 196 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$192+0x000000080118b590 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 177 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$191+0x000000080118b368 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 158 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$190+0x000000080118b140 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 139 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$189+0x000000080118af18 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 120 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$188+0x000000080118acf0 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 101 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$187+0x000000080118aac8 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 83 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$186+0x000000080118a8a0 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 65 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$185+0x000000080118a678 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 47 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$184+0x000000080118a450 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 27 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$183+0x000000080118a228 +instanceKlass @bci smeen/global/SmeenConstants$MathFunction ()V 7 argL0 ; # smeen/global/SmeenConstants$MathFunction$$Lambda$182+0x000000080118a000 +instanceKlass @bci smeen/component/code/block/sensing/KeyPressedCodeBlockInput (Lsmeen/views/MainView;)V 96 member ; # smeen/component/code/block/sensing/KeyPressedCodeBlockInput$$Lambda$181+0x000000080118f098 +instanceKlass com/sun/javafx/geom/Rectangle +instanceKlass com/sun/javafx/image/PixelUtils$1 +instanceKlass com/sun/javafx/image/PixelUtils +instanceKlass javafx/scene/image/WritableImage$2 +instanceKlass com/sun/javafx/tk/quantum/QuantumToolkit$QuantumImage +instanceKlass com/sun/prism/ResourceFactoryListener +instanceKlass javafx/scene/image/WritableImage$1 +instanceKlass javafx/scene/image/PixelWriter +instanceKlass com/sun/javafx/tk/Toolkit$WritableImageAccessor +instanceKlass java/util/concurrent/SynchronousQueue$TransferStack$SNode +instanceKlass java/util/concurrent/SynchronousQueue$Transferer +instanceKlass com/sun/javafx/collections/VetoableListDecorator$VetoableSubListDecorator$ModCountAccessorImplSub +instanceKlass @bci java/util/stream/MatchOps makeRef (Ljava/util/function/Predicate;Ljava/util/stream/MatchOps$MatchKind;)Ljava/util/stream/TerminalOp; 20 member ; # java/util/stream/MatchOps$$Lambda$180+0x00000008011712a8 +instanceKlass java/util/stream/MatchOps$BooleanTerminalSink +instanceKlass java/util/stream/MatchOps$MatchOp +instanceKlass java/util/stream/MatchOps +instanceKlass @bci smeen/component/code/CodeBlockList lambda$new$1 (Ljavafx/collections/ListChangeListener$Change;)V 23 argL0 ; # smeen/component/code/CodeBlockList$$Lambda$179+0x000000080118cfa8 +instanceKlass com/sun/javafx/collections/VetoableListDecorator$VetoableSubListDecorator +instanceKlass @bci smeen/component/code/CodeBlockList (Lsmeen/views/MainView;)V 49 argL0 ; # smeen/component/code/CodeBlockList$$Lambda$178+0x000000080118c8e8 +instanceKlass @bci smeen/component/code/CodeBlockList (Lsmeen/views/MainView;)V 32 argL0 ; # smeen/component/code/CodeBlockList$$Lambda$177+0x0000000801187dd8 +instanceKlass @bci smeen/component/code/block/event/WhenKeyPressedCodeBlock (Lsmeen/views/MainView;)V 94 member ; # smeen/component/code/block/event/WhenKeyPressedCodeBlock$$Lambda$176+0x0000000801187bc8 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress ()V 813 argL0 ; # smeen/global/SmeenConstants$KeyPress$$Lambda$175+0x00000008011870a8 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress ()V 793 argL0 ; # smeen/global/SmeenConstants$KeyPress$$Lambda$174+0x0000000801186e80 +instanceKlass @bci java/io/ObjectInputFilter$Config ()V 56 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801188400 +instanceKlass java/lang/invoke/MethodHandle$1 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress ()V 773 argL0 ; # smeen/global/SmeenConstants$KeyPress$$Lambda$173+0x0000000801186c58 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress ()V 753 argL0 ; # smeen/global/SmeenConstants$KeyPress$$Lambda$172+0x0000000801186a30 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress ()V 733 argL0 ; # smeen/global/SmeenConstants$KeyPress$$Lambda$171+0x0000000801186808 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress ()V 713 argL0 ; # smeen/global/SmeenConstants$KeyPress$$Lambda$170+0x00000008011865e0 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress ()V 693 argL0 ; # smeen/global/SmeenConstants$KeyPress$$Lambda$169+0x00000008011863b8 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress ()V 673 argL0 ; # smeen/global/SmeenConstants$KeyPress$$Lambda$168+0x0000000801186190 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress ()V 653 argL0 ; # smeen/global/SmeenConstants$KeyPress$$Lambda$167+0x0000000801185f68 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress ()V 633 argL0 ; # smeen/global/SmeenConstants$KeyPress$$Lambda$166+0x0000000801185d40 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress (Ljava/lang/String;ILjavafx/scene/input/KeyCode;)V 8 member ; # smeen/global/SmeenConstants$KeyPress$$Lambda$165+0x0000000801185b10 +instanceKlass @cpi smeen/global/SmeenConstants$KeyPress 464 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801188000 +instanceKlass @bci smeen/global/SmeenConstants$KeyPress ()V 7 argL0 ; # smeen/global/SmeenConstants$KeyPress$$Lambda$164+0x00000008011858e8 +instanceKlass smeen/global/SmeenConstants +instanceKlass @bci javafx/scene/control/ComboBox (Ljavafx/collections/ObservableList;)V 183 member ; # javafx/scene/control/ComboBox$$Lambda$163+0x00000008011852b8 +instanceKlass @bci javafx/scene/control/ComboBox (Ljavafx/collections/ObservableList;)V 170 member ; # javafx/scene/control/ComboBox$$Lambda$162+0x00000008011850a8 +instanceKlass @bci javafx/scene/control/ComboBox (Ljavafx/collections/ObservableList;)V 157 member ; # javafx/scene/control/ComboBox$$Lambda$161+0x0000000801184e98 +instanceKlass javafx/scene/control/ComboBox$ComboBoxSelectionModel$1 +instanceKlass @bci javafx/scene/control/ComboBox$ComboBoxSelectionModel (Ljavafx/scene/control/ComboBox;)V 71 member ; # javafx/scene/control/ComboBox$ComboBoxSelectionModel$$Lambda$160+0x0000000801184a70 +instanceKlass javafx/scene/control/ComboBox$ComboBoxSelectionModel$2 +instanceKlass javafx/scene/control/ComboBox$3 +instanceKlass @bci javafx/scene/control/ComboBoxBase ()V 143 member ; # javafx/scene/control/ComboBoxBase$$Lambda$159+0x0000000801184208 +instanceKlass javafx/collections/MapChangeListener +instanceKlass javafx/scene/control/SelectionModel +instanceKlass javafx/beans/property/ObjectPropertyBase$Listener +instanceKlass javafx/scene/Node$NodeTransformation +instanceKlass javafx/scene/shape/SVGPath$1 +instanceKlass com/sun/javafx/scene/shape/SVGPathHelper$SVGPathAccessor +instanceKlass smeen/global/SmeenComponent +instanceKlass @bci smeen/component/code/CodeSelector addMouseDragEventHandler (Lsmeen/component/code/CodeBlockInput;)V 6 member ; # smeen/component/code/CodeSelector$$Lambda$158+0x0000000801165138 +instanceKlass @bci smeen/component/code/CodeBlockInput (Lsmeen/views/MainView;)V 149 argL0 ; # smeen/component/code/CodeBlockInput$$Lambda$157+0x0000000801164f30 +instanceKlass @bci smeen/component/code/CodeSelector addMouseDragEventHandler (Lsmeen/component/code/CodeBlock;)V 6 member ; # smeen/component/code/CodeSelector$$Lambda$156+0x0000000801164b40 +instanceKlass javafx/scene/layout/BorderStrokeStyle +instanceKlass javafx/scene/layout/BorderStroke +instanceKlass @bci javafx/scene/control/TextInputControl$4 invalidated ()V 14 member ; # javafx/scene/control/TextInputControl$4$$Lambda$155+0x0000000801164350 +instanceKlass javafx/scene/control/TextFormatter +instanceKlass @bci smeen/component/code/CodeBlockInputSlot (Lsmeen/views/MainView;Lsmeen/global/SmeenConstants$Type;)V 141 member ; # smeen/component/code/CodeBlockInputSlot$$Lambda$154+0x0000000801163890 +instanceKlass @bci javafx/scene/control/TextInputControl (Ljavafx/scene/control/TextInputControl$Content;)V 260 member ; # javafx/scene/control/TextInputControl$$Lambda$153+0x0000000801163680 +instanceKlass @bci javafx/scene/control/TextInputControl (Ljavafx/scene/control/TextInputControl$Content;)V 247 member ; # javafx/scene/control/TextInputControl$$Lambda$152+0x0000000801163290 +instanceKlass @bci javafx/scene/control/TextInputControl (Ljavafx/scene/control/TextInputControl$Content;)V 234 member ; # javafx/scene/control/TextInputControl$$Lambda$151+0x0000000801163080 +instanceKlass javafx/beans/property/IntegerPropertyBase$Listener +instanceKlass com/sun/javafx/binding/BindingHelperObserver +instanceKlass @bci javafx/scene/control/TextInputControl (Ljavafx/scene/control/TextInputControl$Content;)V 204 member ; # javafx/scene/control/TextInputControl$$Lambda$150+0x0000000801161d18 +instanceKlass javafx/scene/control/TextInputControl$UndoRedoChange +instanceKlass javafx/scene/control/IndexRange +instanceKlass javafx/scene/control/TextField$TextFieldContent +instanceKlass javafx/beans/value/ObservableIntegerValue +instanceKlass javafx/beans/value/WritableIntegerValue +instanceKlass javafx/scene/control/TextInputControl$Content +instanceKlass com/sun/javafx/scene/control/FormatterAccessor +instanceKlass javafx/scene/Node$MiscProperties +instanceKlass @bci javafx/scene/layout/StackPane ()V 0 argL0 ; # javafx/scene/layout/StackPane$$Lambda$149+0x000000080114f088 +instanceKlass javafx/util/StringConverter +instanceKlass @bci smeen/component/code/CodeBlock (Lsmeen/views/MainView;)V 201 argL0 ; # smeen/component/code/CodeBlock$$Lambda$148+0x000000080114d440 +instanceKlass @bci com/sun/javafx/binding/ExpressionHelperBase trim (I[Ljava/lang/Object;)I 0 argL0 ; # com/sun/javafx/binding/ExpressionHelperBase$$Lambda$147+0x000000080114d208 +instanceKlass javafx/scene/layout/BackgroundFill +instanceKlass com/sun/javafx/font/LogicalFont +instanceKlass com/sun/javafx/font/PrismFont +instanceKlass @bci com/sun/javafx/font/PrismFontFactory addFileCloserHook ()V 14 member ; # com/sun/javafx/font/PrismFontFactory$$Lambda$146+0x0000000801149fd0 +instanceKlass @bci com/sun/javafx/font/PrismFontFactory addFileCloserHook ()V 7 member ; # com/sun/javafx/font/PrismFontFactory$$Lambda$145+0x0000000801149dc0 +instanceKlass com/sun/javafx/font/PrismCompositeFontResource +instanceKlass com/sun/javafx/font/CompositeFontResource +instanceKlass com/sun/javafx/font/Disposer$1 +instanceKlass com/sun/javafx/font/Disposer +instanceKlass com/sun/javafx/font/directwrite/DWDisposer +instanceKlass com/sun/javafx/font/PrismFontFile$DirectoryEntry +instanceKlass com/sun/javafx/font/FontFileReader$Buffer +instanceKlass @bci com/sun/javafx/font/FontFileReader openFile ()Z 11 member ; # com/sun/javafx/font/FontFileReader$$Lambda$144+0x0000000801148228 +instanceKlass com/sun/javafx/font/FontFileReader +instanceKlass com/sun/javafx/font/PrismFontStrike +instanceKlass com/sun/javafx/font/DisposerRecord +instanceKlass com/sun/javafx/font/CharToGlyphMapper +instanceKlass com/sun/javafx/font/FontStrike +instanceKlass @bci com/sun/scenario/effect/impl/Renderer getPeerInstance (Lcom/sun/scenario/effect/FilterContext;Ljava/lang/String;I)Lcom/sun/scenario/effect/impl/EffectPeer; 33 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801147800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801147400 +instanceKlass @bci com/sun/scenario/effect/impl/Renderer getPeerInstance (Lcom/sun/scenario/effect/FilterContext;Ljava/lang/String;I)Lcom/sun/scenario/effect/impl/EffectPeer; 33 argL3 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801147000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801146c00 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801146800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801146400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801146000 +instanceKlass @bci com/sun/scenario/effect/impl/Renderer getPeerInstance (Lcom/sun/scenario/effect/FilterContext;Ljava/lang/String;I)Lcom/sun/scenario/effect/impl/EffectPeer; 33 argL1 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801145c00 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801145800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801145400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801145000 +instanceKlass @bci com/sun/javafx/font/FontFileWriter openFile ()Ljava/io/File; 45 member ; # com/sun/javafx/font/FontFileWriter$$Lambda$143+0x0000000801142f30 +instanceKlass sun/nio/ch/FileChannelImpl$Closer +instanceKlass sun/nio/ch/NativeThreadSet +instanceKlass java/nio/channels/spi/AbstractInterruptibleChannel +instanceKlass java/nio/channels/InterruptibleChannel +instanceKlass java/nio/channels/ScatteringByteChannel +instanceKlass java/nio/channels/GatheringByteChannel +instanceKlass java/nio/channels/SeekableByteChannel +instanceKlass java/nio/channels/ByteChannel +instanceKlass java/nio/channels/WritableByteChannel +instanceKlass java/nio/channels/ReadableByteChannel +instanceKlass java/nio/channels/Channel +instanceKlass sun/nio/fs/WindowsChannelFactory$2 +instanceKlass sun/nio/fs/WindowsSecurityDescriptor +instanceKlass sun/security/provider/AbstractDrbg$NonceProvider +instanceKlass @bci sun/security/provider/AbstractDrbg$SeederHolder ()V 42 member ; # sun/security/provider/AbstractDrbg$SeederHolder$$Lambda$142+0x000000080107ca98 +instanceKlass @cpi sun/security/provider/AbstractDrbg$SeederHolder 98 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801144c00 +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x0000000801144800 +instanceKlass java/net/NetworkInterface$1 +instanceKlass java/net/DefaultInterface +instanceKlass java/net/InterfaceAddress +instanceKlass java/net/NetworkInterface +instanceKlass java/lang/constant/DynamicConstantDesc +instanceKlass java/lang/constant/DirectMethodHandleDesc$1 +instanceKlass java/lang/constant/DirectMethodHandleDescImpl$1 +instanceKlass java/lang/constant/DirectMethodHandleDescImpl +instanceKlass java/lang/constant/DirectMethodHandleDesc +instanceKlass java/lang/constant/MethodHandleDesc$1 +instanceKlass java/lang/constant/MethodHandleDesc +instanceKlass java/lang/constant/MethodTypeDescImpl +instanceKlass java/lang/constant/MethodTypeDesc +instanceKlass java/lang/constant/ReferenceClassDescImpl +instanceKlass java/lang/constant/ConstantUtils +instanceKlass java/lang/constant/ClassDesc +instanceKlass java/lang/constant/ConstantDescs +instanceKlass java/lang/invoke/VarHandle$1 +instanceKlass sun/security/provider/ByteArrayAccess$BE +instanceKlass sun/security/provider/ByteArrayAccess +instanceKlass sun/security/provider/SeedGenerator$1 +instanceKlass sun/security/util/MessageDigestSpi2 +instanceKlass sun/security/jca/GetInstance$Instance +instanceKlass sun/security/jca/GetInstance +instanceKlass java/security/MessageDigestSpi +instanceKlass sun/security/provider/SeedGenerator +instanceKlass sun/security/provider/AbstractDrbg$SeederHolder +instanceKlass java/security/DrbgParameters$NextBytes +instanceKlass @bci sun/security/provider/AbstractDrbg ()V 12 argL0 ; # sun/security/provider/AbstractDrbg$$Lambda$141+0x0000000801076860 +instanceKlass @cpi sun/security/provider/AbstractDrbg 396 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801144400 +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x0000000801144000 +instanceKlass sun/security/provider/EntropySource +instanceKlass sun/security/provider/AbstractDrbg +instanceKlass java/security/DrbgParameters$Instantiation +instanceKlass java/security/DrbgParameters +instanceKlass sun/security/provider/MoreDrbgParameters +instanceKlass @bci sun/security/provider/DRBG (Ljava/security/SecureRandomParameters;)V 26 argL0 ; # sun/security/provider/DRBG$$Lambda$140+0x00000008010753f0 +instanceKlass java/security/SecureRandomSpi +instanceKlass java/security/SecureRandomParameters +instanceKlass java/util/LinkedHashMap$LinkedHashIterator +instanceKlass sun/security/util/SecurityProviderConstants +instanceKlass java/security/Provider$UString +instanceKlass java/security/Provider$Service +instanceKlass sun/security/provider/NativePRNG$NonBlocking +instanceKlass sun/security/provider/NativePRNG$Blocking +instanceKlass sun/security/provider/NativePRNG +instanceKlass sun/security/provider/SunEntries$1 +instanceKlass sun/security/provider/SunEntries +instanceKlass sun/security/jca/ProviderList$2 +instanceKlass java/security/Provider$EngineDescription +instanceKlass java/security/Provider$ServiceKey +instanceKlass sun/security/jca/ProviderConfig +instanceKlass sun/security/jca/ProviderList +instanceKlass sun/security/jca/Providers +instanceKlass java/util/Random +instanceKlass java/util/random/RandomGenerator +instanceKlass java/nio/file/TempFileHelper +instanceKlass java/nio/file/attribute/FileAttribute +instanceKlass @bci com/sun/javafx/font/FontFileWriter openFile ()Ljava/io/File; 11 argL0 ; # com/sun/javafx/font/FontFileWriter$$Lambda$139+0x0000000801142d28 +instanceKlass com/sun/javafx/font/FontFileWriter +instanceKlass com/sun/javafx/font/directwrite/IUnknown +instanceKlass @bci com/sun/javafx/font/directwrite/OS ()V 0 argL0 ; # com/sun/javafx/font/directwrite/OS$$Lambda$138+0x0000000801142498 +instanceKlass com/sun/javafx/font/directwrite/OS +instanceKlass com/sun/javafx/text/GlyphLayout +instanceKlass com/sun/javafx/font/PrismFontFile +instanceKlass com/sun/javafx/font/FontConstants +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801124400 +instanceKlass com/sun/javafx/scene/text/FontHelper +instanceKlass javafx/scene/text/Font$1 +instanceKlass com/sun/javafx/scene/text/FontHelper$FontAccessor +instanceKlass smeen/global/Fonts +instanceKlass @bci javafx/scene/control/Label (Ljava/lang/String;)V 7 member ; # javafx/scene/control/Label$$Lambda$137+0x0000000801125db8 +instanceKlass smeen/logic/Executable +instanceKlass @bci smeen/views/MainView (Ljavafx/stage/Stage;)V 127 member ; # smeen/views/MainView$$Lambda$136+0x0000000801127930 +instanceKlass javafx/collections/MapChangeListener$Change +instanceKlass com/sun/javafx/collections/ObservableMapWrapper +instanceKlass javafx/event/WeakEventHandler +instanceKlass com/sun/javafx/event/CompositeEventHandler$EventProcessorRecord +instanceKlass com/sun/javafx/event/CompositeEventHandler +instanceKlass javafx/event/EventType +instanceKlass @bci javafx/event/Event ()V 0 argL0 ; # javafx/event/Event$$Lambda$135+0x00000008011224e8 +instanceKlass @bci javafx/scene/control/Control ()V 35 argL0 ; # javafx/scene/control/Control$$Lambda$134+0x00000008011222e0 +instanceKlass @cpi com/sun/javafx/scene/control/behavior/FocusTraversalInputMap 213 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801124000 +instanceKlass javafx/event/EventHandler +instanceKlass java/util/EventListener +instanceKlass com/sun/javafx/css/StyleManager$RefList +instanceKlass javafx/css/converter/FontConverter$FontWeightConverter$Holder +instanceKlass javafx/css/converter/StringConverter$Holder +instanceKlass javafx/css/converter/FontConverter$FontSizeConverter$Holder +instanceKlass com/sun/javafx/css/SelectorPartitioning$Slot +instanceKlass com/sun/javafx/css/SelectorPartitioning$Partition +instanceKlass javafx/css/converter/StopConverter$Holder +instanceKlass javafx/css/converter/LadderConverter$Holder +instanceKlass javafx/css/converter/DeriveColorConverter$Holder +instanceKlass javafx/css/Size +instanceKlass javafx/css/ParsedValue +instanceKlass javafx/css/Declaration +instanceKlass javafx/css/Rule$Observables +instanceKlass @bci com/sun/javafx/css/SelectorPartitioning ()V 28 argL0 ; # com/sun/javafx/css/SelectorPartitioning$$Lambda$133+0x000000080111f280 +instanceKlass com/sun/javafx/css/SelectorPartitioning$PartitionKey +instanceKlass com/sun/javafx/css/SelectorPartitioning +instanceKlass com/sun/javafx/css/StyleManager$StylesheetContainer +instanceKlass java/util/AbstractList$SubList$1 +instanceKlass javafx/collections/ModifiableObservableListBase$SubObservableList +instanceKlass javafx/css/StyleClass +instanceKlass javafx/css/Selector +instanceKlass javafx/css/Rule +instanceKlass javafx/css/StyleConverter$StringStore +instanceKlass sun/net/www/protocol/jar/JarFileFactory +instanceKlass sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +instanceKlass javafx/css/Stylesheet +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801118400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801118000 +instanceKlass javafx/geometry/Point2D +instanceKlass javafx/scene/text/Font +instanceKlass @bci com/sun/javafx/font/PrismFontFactory ()V 59 member ; # com/sun/javafx/font/PrismFontFactory$$Lambda$132+0x00000008011166b8 +instanceKlass java/io/FilenameFilter +instanceKlass com/sun/javafx/font/FontResource +instanceKlass com/sun/javafx/font/PGFont +instanceKlass com/sun/javafx/font/PrismFontFactory +instanceKlass com/sun/javafx/scene/text/TextLine +instanceKlass com/sun/javafx/scene/text/GlyphList +instanceKlass java/text/CharacterIterator +instanceKlass com/sun/javafx/text/PrismTextLayout +instanceKlass com/sun/javafx/scene/text/TextLayout +instanceKlass com/sun/javafx/text/PrismTextLayoutFactory +instanceKlass @bci javafx/scene/text/Text ()V 64 member ; # javafx/scene/text/Text$$Lambda$131+0x00000008011152b8 +instanceKlass @bci javafx/scene/text/Text ()V 37 member ; # javafx/scene/text/Text$$Lambda$130+0x00000008011150a8 +instanceKlass javafx/beans/WeakInvalidationListener +instanceKlass javafx/scene/text/Text$1 +instanceKlass javafx/scene/shape/Shape$1 +instanceKlass com/sun/javafx/scene/text/TextSpan +instanceKlass com/sun/javafx/scene/shape/TextHelper$TextAccessor +instanceKlass com/sun/javafx/scene/shape/ShapeHelper$ShapeAccessor +instanceKlass com/sun/javafx/beans/event/AbstractNotifyListener +instanceKlass com/sun/javafx/scene/control/skin/Utils +instanceKlass @bci com/sun/javafx/css/StyleManager loadStylesheetUnPrivileged (Ljava/lang/String;)Ljavafx/css/Stylesheet; 7 member ; # com/sun/javafx/css/StyleManager$$Lambda$129+0x000000080110ace0 +instanceKlass com/sun/javafx/css/StyleManager$ImageCache +instanceKlass com/sun/javafx/css/StyleManager$InstanceHolder +instanceKlass com/sun/javafx/css/StyleManager +instanceKlass @bci com/sun/javafx/application/PlatformImpl _setPlatformUserAgentStylesheet (Ljava/lang/String;)V 370 member ; # com/sun/javafx/application/PlatformImpl$$Lambda$128+0x000000080110a4f0 +instanceKlass @bci com/sun/javafx/application/PlatformImpl _setAccessibilityTheme (Ljava/lang/String;)V 0 argL0 ; # com/sun/javafx/application/PlatformImpl$$Lambda$127+0x000000080110a2e8 +instanceKlass @bci com/sun/glass/ui/win/WinApplication getHighContrastScheme (Ljava/lang/String;)Ljava/lang/String; 11 member ; # com/sun/glass/ui/win/WinApplication$$Lambda$126+0x000000080110a0b8 +instanceKlass @bci java/util/ResourceBundle$ResourceBundleProviderHelper loadPropertyResourceBundle (Ljava/lang/Module;Ljava/lang/Module;Ljava/lang/String;Ljava/util/Locale;)Ljava/util/ResourceBundle; 14 member ; # java/util/ResourceBundle$ResourceBundleProviderHelper$$Lambda$125+0x000000080106a7b0 +instanceKlass java/security/Security$1 +instanceKlass java/security/Security +instanceKlass sun/security/util/SecurityProperties +instanceKlass sun/security/util/FilePermCompat +instanceKlass sun/security/util/SecurityConstants +instanceKlass @bci java/util/ResourceBundle$ResourceBundleProviderHelper loadResourceBundle (Ljava/lang/Module;Ljava/lang/Module;Ljava/lang/String;Ljava/util/Locale;)Ljava/util/ResourceBundle; 13 member ; # java/util/ResourceBundle$ResourceBundleProviderHelper$$Lambda$124+0x0000000801069710 +instanceKlass java/util/ResourceBundle$CacheKeyReference +instanceKlass java/util/ResourceBundle$CacheKey +instanceKlass @bci java/util/ResourceBundle getLoader (Ljava/lang/Module;)Ljava/lang/ClassLoader; 6 member ; # java/util/ResourceBundle$$Lambda$123+0x0000000801068ec8 +instanceKlass com/sun/javafx/tk/quantum/QuantumToolkit$6 +instanceKlass com/sun/javafx/application/PlatformImpl$2 +instanceKlass @bci com/sun/javafx/application/PlatformImpl _setPlatformUserAgentStylesheet (Ljava/lang/String;)V 8 argL0 ; # com/sun/javafx/application/PlatformImpl$$Lambda$122+0x0000000801109078 +instanceKlass javafx/scene/control/Control$1 +instanceKlass javafx/scene/control/Skin +instanceKlass com/sun/javafx/scene/control/ControlHelper$ControlAccessor +instanceKlass @bci javafx/scene/layout/HBox ()V 0 argL0 ; # javafx/scene/layout/HBox$$Lambda$121+0x0000000801105210 +instanceKlass javafx/beans/property/DoublePropertyBase$Listener +instanceKlass javafx/scene/effect/Effect +instanceKlass javafx/css/converter/EffectConverter$Holder +instanceKlass javafx/css/converter/CursorConverter$Holder +instanceKlass javafx/scene/Node$StyleableProperties +instanceKlass javafx/css/converter/SizeConverter$Holder +instanceKlass javafx/css/converter/BooleanConverter$Holder +instanceKlass javafx/scene/layout/BorderWidths +instanceKlass com/sun/javafx/scene/layout/region/BorderImageSlices +instanceKlass com/sun/javafx/scene/layout/region/Margins +instanceKlass com/sun/javafx/scene/layout/region/Margins$Holder +instanceKlass javafx/scene/layout/Border +instanceKlass javafx/scene/layout/BackgroundSize +instanceKlass javafx/scene/layout/BackgroundPosition +instanceKlass com/sun/javafx/scene/layout/region/RepeatStruct +instanceKlass javafx/css/converter/URLConverter$Holder +instanceKlass javafx/scene/layout/CornerRadii +instanceKlass javafx/scene/paint/Paint$1 +instanceKlass com/sun/javafx/tk/Toolkit$PaintAccessor +instanceKlass javafx/css/converter/PaintConverter$Holder +instanceKlass javafx/scene/layout/Background +instanceKlass javafx/css/converter/InsetsConverter$Holder +instanceKlass javafx/css/StyleConverter +instanceKlass javafx/css/CssMetaData +instanceKlass javafx/scene/layout/Region$StyleableProperties +instanceKlass @bci javafx/scene/layout/VBox ()V 0 argL0 ; # javafx/scene/layout/VBox$$Lambda$120+0x00000008010f3948 +instanceKlass @bci smeen/views/MainView (Ljavafx/stage/Stage;)V 20 member ; # smeen/views/MainView$$Lambda$119+0x00000008010f2100 +instanceKlass javafx/beans/value/ChangeListener +instanceKlass javafx/geometry/Insets +instanceKlass @bci javafx/scene/layout/Region ()V 6 member ; # javafx/scene/layout/Region$$Lambda$118+0x00000008010f1b18 +instanceKlass javafx/collections/SetChangeListener +instanceKlass @bci javafx/scene/Node ()V 73 member ; # javafx/scene/Node$$Lambda$117+0x00000008010efa78 +instanceKlass @bci javafx/scene/Node ()V 63 member ; # javafx/scene/Node$$Lambda$116+0x00000008010ef868 +instanceKlass javafx/scene/layout/Pane$1 +instanceKlass com/sun/javafx/geom/Vec2d +instanceKlass javafx/scene/layout/Region$1 +instanceKlass javafx/scene/Parent$1 +instanceKlass @bci javafx/scene/PropertyHelper getBooleanProperty (Ljava/lang/String;)Z 1 member ; # javafx/scene/PropertyHelper$$Lambda$115+0x00000008010ee1f0 +instanceKlass javafx/scene/PropertyHelper +instanceKlass @bci javafx/scene/Node ()V 123 argL0 ; # javafx/scene/Node$$Lambda$114+0x00000008010ebcb0 +instanceKlass @cpi javafx/scene/Node 3299 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x00000008010ec000 +instanceKlass com/sun/javafx/scene/BoundsAccessor +instanceKlass javafx/collections/SetChangeListener$Change +instanceKlass com/sun/javafx/css/BitSet +instanceKlass javafx/css/PseudoClass +instanceKlass javafx/geometry/Point3D +instanceKlass com/sun/javafx/scene/transform/TransformHelper +instanceKlass javafx/scene/transform/Transform$1 +instanceKlass com/sun/javafx/scene/transform/TransformHelper$TransformAccessor +instanceKlass javafx/scene/transform/Transform +instanceKlass com/sun/javafx/scene/NodeHelper +instanceKlass javafx/scene/Node$1 +instanceKlass smeen/logic/SnapHandler +instanceKlass javafx/scene/control/Skinnable +instanceKlass smeen/util/Copyable +instanceKlass com/sun/javafx/scene/layout/PaneHelper$PaneAccessor +instanceKlass com/sun/javafx/scene/layout/RegionHelper$RegionAccessor +instanceKlass com/sun/javafx/sg/prism/NGNode +instanceKlass com/sun/javafx/scene/ParentHelper$ParentAccessor +instanceKlass com/sun/javafx/scene/NodeHelper$NodeAccessor +instanceKlass @bci javafx/scene/Scene ()V 76 argL0 ; # javafx/scene/Scene$$Lambda$113+0x00000008010c0368 +instanceKlass com/sun/javafx/scene/SceneHelper +instanceKlass javafx/scene/Scene$2 +instanceKlass javafx/scene/input/InputMethodRequests +instanceKlass com/sun/javafx/tk/TKDropTargetListener +instanceKlass com/sun/javafx/tk/TKScenePaintListener +instanceKlass com/sun/javafx/tk/TKSceneListener +instanceKlass javafx/css/StyleableProperty +instanceKlass com/sun/glass/ui/Accessible$EventHandler +instanceKlass com/sun/javafx/scene/SceneHelper$SceneAccessor +instanceKlass com/sun/javafx/perf/PerformanceTracker$SceneAccessor +instanceKlass com/sun/javafx/scene/traversal/TraversalEngine +instanceKlass javafx/scene/Scene +instanceKlass com/sun/javafx/collections/VetoableListDecorator$ModCountAccessorImpl +instanceKlass com/sun/javafx/collections/VetoableListDecorator$VetoableIteratorDecorator +instanceKlass java/util/Collections$1 +instanceKlass com/sun/prism/Image$Serial +instanceKlass com/sun/javafx/image/impl/ByteRgba$Accessor +instanceKlass com/sun/javafx/image/impl/ByteRgba +instanceKlass com/sun/javafx/image/impl/ByteBgraPre$Accessor +instanceKlass com/sun/javafx/image/impl/ByteBgraPre +instanceKlass com/sun/javafx/image/impl/BaseByteToByteConverter +instanceKlass com/sun/javafx/image/ByteToBytePixelConverter +instanceKlass com/sun/javafx/image/PixelConverter +instanceKlass com/sun/javafx/image/impl/ByteBgra$Accessor +instanceKlass com/sun/javafx/image/BytePixelAccessor +instanceKlass com/sun/javafx/image/BytePixelSetter +instanceKlass com/sun/javafx/image/PixelSetter +instanceKlass com/sun/javafx/image/BytePixelGetter +instanceKlass com/sun/javafx/image/impl/ByteBgra +instanceKlass com/sun/prism/Image$1 +instanceKlass javafx/scene/image/PixelFormat +instanceKlass com/sun/javafx/image/PixelGetter +instanceKlass com/sun/prism/Image$Accessor +instanceKlass com/sun/prism/Image +instanceKlass com/sun/javafx/iio/ImageFrame +instanceKlass com/sun/javafx/iio/ImageMetadata +instanceKlass com/sun/javafx/iio/common/ImageLoaderImpl +instanceKlass java/util/Vector$1 +instanceKlass com/sun/javafx/iio/common/ImageTools +instanceKlass com/sun/javafx/iio/ImageFormatDescription$Signature +instanceKlass com/sun/javafx/iio/common/ImageDescriptor +instanceKlass com/sun/javafx/iio/bmp/BMPImageLoaderFactory +instanceKlass com/sun/javafx/iio/png/PNGImageLoaderFactory +instanceKlass com/sun/javafx/iio/jpeg/JPEGImageLoaderFactory +instanceKlass com/sun/javafx/iio/ImageLoader +instanceKlass com/sun/javafx/iio/ImageFormatDescription +instanceKlass com/sun/javafx/iio/gif/GIFImageLoaderFactory +instanceKlass com/sun/javafx/iio/ImageLoaderFactory +instanceKlass com/sun/javafx/iio/ImageStorage$InstanceHolder +instanceKlass com/sun/javafx/iio/ImageStorage +instanceKlass com/sun/javafx/tk/quantum/PrismImageLoader2$PrismLoadListener +instanceKlass com/sun/javafx/iio/ImageLoadListener +instanceKlass com/sun/javafx/tk/quantum/PrismImageLoader2 +instanceKlass sun/net/DefaultProgressMeteringPolicy +instanceKlass sun/net/ProgressMeteringPolicy +instanceKlass sun/net/ProgressMonitor +instanceKlass sun/net/www/MessageHeader +instanceKlass java/net/URLConnection +instanceKlass smeen/global/SmeenFileChooser +instanceKlass @bci com/sun/javafx/collections/VetoableListDecorator (Ljavafx/collections/ObservableList;)V 14 member ; # com/sun/javafx/collections/VetoableListDecorator$$Lambda$112+0x00000008010a23a8 +instanceKlass @bci com/sun/javafx/collections/TrackableObservableList ()V 13 member ; # com/sun/javafx/collections/TrackableObservableList$$Lambda$111+0x00000008010a2198 +instanceKlass com/sun/javafx/collections/VetoableListDecorator$ModCountAccessor +instanceKlass com/sun/javafx/collections/VetoableListDecorator +instanceKlass com/sun/javafx/event/EventDispatchChainImpl +instanceKlass javafx/event/EventDispatchChain +instanceKlass com/sun/javafx/event/BasicEventDispatcher +instanceKlass javafx/event/EventDispatcher +instanceKlass java/util/EventObject +instanceKlass javafx/beans/binding/NumberBinding +instanceKlass javafx/stage/Window$TKBoundsConfigurator +instanceKlass com/sun/javafx/tk/TKPulseListener +instanceKlass javafx/stage/Stage$2 +instanceKlass javafx/stage/Stage$1 +instanceKlass com/sun/javafx/stage/WindowHelper +instanceKlass javafx/stage/Window$1 +instanceKlass com/sun/javafx/stage/WindowPeerListener +instanceKlass com/sun/javafx/tk/TKStageListener +instanceKlass javafx/beans/binding/StringExpression +instanceKlass javafx/beans/value/ObservableStringValue +instanceKlass javafx/beans/value/WritableStringValue +instanceKlass com/sun/javafx/stage/StagePeerListener$StageAccessor +instanceKlass com/sun/javafx/stage/StageHelper$StageAccessor +instanceKlass com/sun/javafx/stage/WindowHelper$WindowAccessor +instanceKlass javafx/beans/value/WritableDoubleValue +instanceKlass javafx/beans/value/WritableNumberValue +instanceKlass @bci com/sun/javafx/application/LauncherImpl launchApplication1 (Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/String;)V 415 member ; # com/sun/javafx/application/LauncherImpl$$Lambda$110+0x0000000801088f70 +instanceKlass @bci com/sun/javafx/application/PlatformImpl setApplicationName (Ljava/lang/Class;)V 1 member ; # com/sun/javafx/application/PlatformImpl$$Lambda$109+0x0000000801088d60 +instanceKlass @bci com/sun/javafx/application/LauncherImpl launchApplication1 (Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/String;)V 303 member ; # com/sun/javafx/application/LauncherImpl$$Lambda$108+0x0000000801088b50 +instanceKlass com/sun/javafx/application/LauncherImpl$1 +instanceKlass @bci com/sun/javafx/tk/quantum/WindowStage setScene (Lcom/sun/javafx/tk/TKScene;)V 40 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080108c800 +instanceKlass @bci com/sun/javafx/application/LauncherImpl launchApplication (Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/String;)V 109 member ; # com/sun/javafx/application/LauncherImpl$$Lambda$107+0x0000000801085d90 +instanceKlass @bci com/sun/javafx/application/LauncherImpl launchApplication (Ljava/lang/Class;[Ljava/lang/String;)V 8 argL0 ; # com/sun/javafx/application/LauncherImpl$$Lambda$106+0x0000000801085b88 +instanceKlass java/lang/StackTraceElement$HashedModules +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080108c400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080108c000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801084c00 +instanceKlass javafx/stage/Window +instanceKlass smeen/util/Savable +instanceKlass smeen/util/Resettable +instanceKlass javafx/scene/Node +instanceKlass javafx/css/Styleable +instanceKlass javafx/event/EventTarget +instanceKlass @bci com/sun/javafx/application/PlatformImpl lambda$runLater$11 (Ljava/lang/Runnable;Ljava/security/AccessControlContext;)V 1 member ; # com/sun/javafx/application/PlatformImpl$$Lambda$105+0x0000000801086000 +instanceKlass com/sun/scenario/animation/AbstractPrimaryTimer$MainLoop +instanceKlass com/sun/scenario/DelayedRunnable +instanceKlass com/sun/glass/ui/InvokeLaterDispatcher$Future +instanceKlass com/sun/scenario/animation/shared/TimerReceiver +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter +instanceKlass com/sun/scenario/animation/shared/PulseReceiver +instanceKlass java/util/concurrent/LinkedBlockingDeque$Node +instanceKlass @bci com/sun/javafx/application/PlatformImpl runLater (Ljava/lang/Runnable;Z)V 68 member ; # com/sun/javafx/application/PlatformImpl$$Lambda$104+0x0000000801082e28 +instanceKlass com/sun/javafx/animation/TickCalculation +instanceKlass @bci com/sun/javafx/application/PlatformImpl runAndWait (Ljava/lang/Runnable;Z)V 43 member ; # com/sun/javafx/application/PlatformImpl$$Lambda$103+0x0000000801082a28 +instanceKlass @bci com/sun/scenario/animation/AbstractPrimaryTimer ()V 16 argL0 ; # com/sun/scenario/animation/AbstractPrimaryTimer$$Lambda$102+0x0000000801082820 +instanceKlass @bci com/sun/javafx/application/LauncherImpl launchApplicationWithArgs (Lcom/sun/javafx/application/ModuleAccess;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V 55 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801084800 +instanceKlass @bci com/sun/javafx/application/LauncherImpl launchApplicationWithArgs (Lcom/sun/javafx/application/ModuleAccess;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V 55 member ; # com/sun/javafx/application/LauncherImpl$$Lambda$101+0x0000000801082610 +instanceKlass com/sun/scenario/Settings +instanceKlass @cpi com/sun/javafx/application/LauncherImpl 874 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801084400 +instanceKlass java/util/AbstractList$Itr +instanceKlass javafx/collections/ListChangeBuilder$SubChange +instanceKlass javafx/geometry/Rectangle2D +instanceKlass @bci javafx/stage/Screen ()V 29 argL0 ; # javafx/stage/Screen$$Lambda$100+0x0000000801081dc8 +instanceKlass @cpi javafx/stage/Screen 277 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801084000 +instanceKlass com/sun/javafx/tk/TKScreenConfigurationListener +instanceKlass com/sun/javafx/binding/ExpressionHelperBase +instanceKlass javafx/collections/WeakListChangeListener +instanceKlass javafx/beans/WeakListener +instanceKlass @bci javafx/collections/FXCollections$UnmodifiableObservableListImpl (Ljavafx/collections/ObservableList;)V 11 member ; # javafx/collections/FXCollections$UnmodifiableObservableListImpl$$Lambda$99+0x0000000801080b50 +instanceKlass javafx/collections/ListChangeListener +instanceKlass javafx/collections/ListChangeBuilder +instanceKlass javafx/collections/ListChangeListener$Change +instanceKlass javafx/util/Callback +instanceKlass com/sun/javafx/collections/SortableList +instanceKlass javafx/collections/FXCollections$EmptyObservableList$1 +instanceKlass javafx/collections/ObservableIntegerArray +instanceKlass javafx/collections/ObservableFloatArray +instanceKlass javafx/collections/ObservableArray +instanceKlass javafx/collections/ObservableSet +instanceKlass javafx/collections/ObservableList +instanceKlass javafx/collections/ObservableMap +instanceKlass javafx/collections/FXCollections +instanceKlass javafx/stage/Screen +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit runToolkit ()V 55 member ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$98+0x000000080103b640 +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit runToolkit ()V 45 member ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$97+0x000000080103b430 +instanceKlass com/sun/prism/impl/ps/BaseShaderContext$State +instanceKlass com/sun/javafx/geom/Vec3d +instanceKlass com/sun/prism/impl/VertexBuffer +instanceKlass com/sun/javafx/geom/BaseBounds +instanceKlass com/sun/javafx/geom/transform/GeneralTransform3D +instanceKlass com/sun/javafx/geom/transform/BaseTransform +instanceKlass com/sun/javafx/geom/transform/CanTransformVec3d +instanceKlass com/sun/prism/MaskTextureGraphics +instanceKlass com/sun/prism/ReadbackGraphics +instanceKlass com/sun/prism/ps/ShaderGraphics +instanceKlass com/sun/prism/impl/BaseGraphics +instanceKlass com/sun/prism/RectShadowGraphics +instanceKlass com/sun/prism/Graphics +instanceKlass com/sun/prism/impl/BaseContext +instanceKlass java/util/TimSort +instanceKlass java/util/Arrays$LegacyMergeSort +instanceKlass @bci java/util/Map$Entry comparingByKey ()Ljava/util/Comparator; 0 argL0 ; # java/util/Map$Entry$$Lambda$96+0x0000000801064a68 +instanceKlass sun/util/cldr/CLDRBaseLocaleDataMetaInfo$TZCanonicalIDMapHolder +instanceKlass java/time/LocalTime +instanceKlass java/time/temporal/ValueRange +instanceKlass java/time/Duration +instanceKlass java/time/temporal/TemporalAmount +instanceKlass java/time/temporal/TemporalUnit +instanceKlass java/time/temporal/TemporalField +instanceKlass java/time/LocalDate +instanceKlass java/time/chrono/ChronoLocalDate +instanceKlass java/time/zone/ZoneOffsetTransition +instanceKlass java/time/LocalDateTime +instanceKlass java/time/chrono/ChronoLocalDateTime +instanceKlass java/time/temporal/TemporalAdjuster +instanceKlass java/time/temporal/Temporal +instanceKlass java/time/temporal/TemporalAccessor +instanceKlass java/time/zone/ZoneOffsetTransitionRule +instanceKlass java/time/zone/ZoneRules +instanceKlass java/time/zone/Ser +instanceKlass java/io/Externalizable +instanceKlass jdk/internal/loader/URLClassPath$1 +instanceKlass java/lang/CompoundEnumeration +instanceKlass jdk/internal/loader/BuiltinClassLoader$1 +instanceKlass jdk/internal/loader/BuiltinClassLoader$2 +instanceKlass java/util/Spliterators$1Adapter +instanceKlass java/util/Spliterators$ArraySpliterator +instanceKlass java/time/zone/ZoneRulesProvider$1 +instanceKlass java/time/zone/ZoneRulesProvider +instanceKlass java/time/ZoneId +instanceKlass sun/util/resources/Bundles$CacheKeyReference +instanceKlass @bci java/util/ResourceBundle$ResourceBundleProviderHelper newResourceBundle (Ljava/lang/Class;)Ljava/util/ResourceBundle; 22 member ; # java/util/ResourceBundle$ResourceBundleProviderHelper$$Lambda$11+0x80000000f +instanceKlass java/util/ResourceBundle$ResourceBundleProviderHelper +instanceKlass @bci sun/util/cldr/CLDRLocaleProviderAdapter applyAliases (Ljava/util/Locale;)Ljava/util/Locale; 4 argL0 ; # sun/util/cldr/CLDRLocaleProviderAdapter$$Lambda$57+0x800000062 +instanceKlass sun/util/resources/Bundles$CacheKey +instanceKlass java/util/ResourceBundle$1 +instanceKlass jdk/internal/access/JavaUtilResourceBundleAccess +instanceKlass sun/util/resources/Bundles +instanceKlass sun/util/resources/LocaleData$LocaleDataStrategy +instanceKlass sun/util/resources/Bundles$Strategy +instanceKlass sun/util/resources/LocaleData$1 +instanceKlass sun/util/resources/LocaleData +instanceKlass sun/util/locale/provider/LocaleResources +instanceKlass java/util/Collections$EmptyEnumeration +instanceKlass sun/util/resources/provider/NonBaseLocaleDataMetaInfo +instanceKlass @bci sun/util/locale/provider/JRELocaleProviderAdapter createSupportedLocaleString (Ljava/lang/String;)Ljava/lang/String; 6 member ; # sun/util/locale/provider/JRELocaleProviderAdapter$$Lambda$93+0x0000000801060828 +instanceKlass sun/util/locale/provider/BaseLocaleDataMetaInfo +instanceKlass @bci sun/util/locale/provider/JRELocaleProviderAdapter getTimeZoneNameProvider ()Ljava/util/spi/TimeZoneNameProvider; 8 member ; # sun/util/locale/provider/JRELocaleProviderAdapter$$Lambda$92+0x00000008010603d8 +instanceKlass @bci sun/util/cldr/CLDRLocaleProviderAdapter getTimeZoneNameProvider ()Ljava/util/spi/TimeZoneNameProvider; 8 member ; # sun/util/cldr/CLDRLocaleProviderAdapter$$Lambda$91+0x000000080105fd78 +instanceKlass java/util/ServiceLoader$ProviderImpl +instanceKlass java/util/ServiceLoader$Provider +instanceKlass java/util/ServiceLoader$1 +instanceKlass sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo +instanceKlass jdk/internal/jimage/ImageLocation +instanceKlass jdk/internal/jimage/decompressor/Decompressor +instanceKlass jdk/internal/jimage/ImageStringsReader +instanceKlass jdk/internal/jimage/ImageStrings +instanceKlass jdk/internal/jimage/ImageHeader +instanceKlass jdk/internal/jimage/NativeImageBuffer$1 +instanceKlass jdk/internal/jimage/NativeImageBuffer +instanceKlass jdk/internal/jimage/BasicImageReader$1 +instanceKlass jdk/internal/jimage/BasicImageReader +instanceKlass jdk/internal/jimage/ImageReader +instanceKlass jdk/internal/jimage/ImageReaderFactory$1 +instanceKlass java/nio/file/FileSystems$DefaultFileSystemHolder$1 +instanceKlass java/nio/file/FileSystems$DefaultFileSystemHolder +instanceKlass java/nio/file/Paths +instanceKlass jdk/internal/jimage/ImageReaderFactory +instanceKlass jdk/internal/module/SystemModuleFinders$SystemImage +instanceKlass jdk/internal/module/SystemModuleFinders$SystemModuleReader +instanceKlass java/util/ServiceLoader$3 +instanceKlass java/util/ServiceLoader$2 +instanceKlass java/util/ServiceLoader$LazyClassPathLookupIterator +instanceKlass java/util/concurrent/CopyOnWriteArrayList$COWIterator +instanceKlass java/util/ServiceLoader$ModuleServicesLookupIterator +instanceKlass java/util/ServiceLoader +instanceKlass @bci sun/util/cldr/CLDRLocaleProviderAdapter ()V 4 argL0 ; # sun/util/cldr/CLDRLocaleProviderAdapter$$Lambda$58+0x800000064 +instanceKlass sun/util/locale/BaseLocale$Key +instanceKlass sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar +instanceKlass sun/util/locale/InternalLocaleBuilder +instanceKlass sun/util/locale/StringTokenIterator +instanceKlass sun/util/locale/ParseStatus +instanceKlass sun/util/locale/LanguageTag +instanceKlass sun/util/cldr/CLDRBaseLocaleDataMetaInfo +instanceKlass sun/util/locale/provider/LocaleDataMetaInfo +instanceKlass sun/util/locale/provider/ResourceBundleBasedAdapter +instanceKlass sun/util/locale/provider/LocaleProviderAdapter$1 +instanceKlass sun/util/locale/provider/LocaleProviderAdapter +instanceKlass sun/util/locale/LocaleObjectCache +instanceKlass java/util/ResourceBundle +instanceKlass java/util/ResourceBundle$Control +instanceKlass sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +instanceKlass sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +instanceKlass sun/util/locale/provider/LocaleServiceProviderPool +instanceKlass java/util/spi/LocaleServiceProvider +instanceKlass sun/util/locale/provider/TimeZoneNameUtility +instanceKlass sun/util/calendar/CalendarUtils +instanceKlass sun/util/calendar/CalendarDate +instanceKlass sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +instanceKlass sun/util/calendar/ZoneInfoFile$1 +instanceKlass sun/util/calendar/ZoneInfoFile +instanceKlass java/util/TimeZone +instanceKlass sun/util/calendar/CalendarSystem$GregorianHolder +instanceKlass sun/util/calendar/CalendarSystem +instanceKlass java/util/Date +instanceKlass sun/nio/cs/Surrogate +instanceKlass sun/nio/cs/Surrogate$Parser +instanceKlass java/util/concurrent/ConcurrentHashMap$MapEntry +instanceKlass java/util/Collections$SynchronizedCollection +instanceKlass java/util/Properties$EntrySet +instanceKlass jdk/internal/vm/VMSupport +instanceKlass com/sun/prism/ps/Shader +instanceKlass com/sun/prism/Mesh +instanceKlass com/sun/prism/MeshView +instanceKlass com/sun/prism/PhongMaterial +instanceKlass com/sun/prism/Material +instanceKlass com/sun/prism/impl/TextureResourcePool +instanceKlass com/sun/prism/impl/ResourcePool +instanceKlass com/sun/prism/RTTexture +instanceKlass com/sun/prism/Presentable +instanceKlass com/sun/prism/RenderTarget +instanceKlass com/sun/prism/Surface +instanceKlass com/sun/prism/Texture +instanceKlass com/sun/prism/shape/ShapeRep +instanceKlass java/util/concurrent/Executors$RunnableAdapter +instanceKlass java/util/concurrent/FutureTask$WaitNode +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumRenderer createResourceFactory ()V 16 argL0 ; # com/sun/javafx/tk/quantum/QuantumRenderer$$Lambda$89+0x0000000801032290 +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumRenderer createResourceFactory ()V 10 member ; # com/sun/javafx/tk/quantum/QuantumRenderer$$Lambda$88+0x0000000801032080 +instanceKlass java/util/concurrent/FutureTask +instanceKlass @bci com/sun/glass/ui/Screen ()V 4 argL0 ; # com/sun/glass/ui/Screen$$Lambda$87+0x0000000801031978 +instanceKlass @bci com/sun/glass/ui/win/WinApplication lambda$runLoop$4 (ILjava/lang/Runnable;)Ljava/lang/Thread; 7 member ; # com/sun/glass/ui/win/WinApplication$$Lambda$86+0x0000000801031768 +instanceKlass @cpi com/sun/glass/ui/win/WinApplication 499 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801034800 +instanceKlass @bci com/sun/glass/ui/win/WinApplication runLoop (Ljava/lang/Runnable;)V 58 ; # java/lang/invoke/LambdaForm$MH+0x0000000801034400 +# instanceKlass java/lang/invoke/LambdaForm$DMH+0x0000000801034000 +instanceKlass @bci com/sun/glass/ui/win/WinApplication runLoop (Ljava/lang/Runnable;)V 58 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080102a400 +instanceKlass @bci com/sun/glass/ui/win/WinApplication runLoop (Ljava/lang/Runnable;)V 58 member ; # com/sun/glass/ui/win/WinApplication$$Lambda$85+0x0000000801031558 +instanceKlass @bci com/sun/glass/ui/win/WinApplication getDesiredAwarenesslevel ()I 8 argL0 ; # com/sun/glass/ui/win/WinApplication$$Lambda$84+0x0000000801031350 +instanceKlass @bci com/sun/glass/ui/win/WinApplication runLoop (Ljava/lang/Runnable;)V 0 argL0 ; # com/sun/glass/ui/win/WinApplication$$Lambda$83+0x0000000801031148 +instanceKlass @bci com/sun/glass/ui/Application run (Ljava/lang/Runnable;)V 29 member ; # com/sun/glass/ui/Application$$Lambda$82+0x0000000801030f38 +instanceKlass java/util/concurrent/BlockingDeque +instanceKlass @bci com/sun/glass/ui/win/WinApplication ()V 4 argL0 ; # com/sun/glass/ui/win/WinApplication$$Lambda$81+0x0000000801030a28 +instanceKlass java/lang/ProcessEnvironment$CheckedEntry +instanceKlass java/lang/ProcessEnvironment$CheckedEntrySet$1 +instanceKlass java/lang/ProcessEnvironment$EntryComparator +instanceKlass java/lang/ProcessEnvironment$NameComparator +instanceKlass com/sun/glass/ui/win/WinApplication$1 +instanceKlass com/sun/glass/ui/Cursor +instanceKlass com/sun/glass/ui/View +instanceKlass com/sun/glass/ui/Accessible +instanceKlass com/sun/glass/ui/Pixels +instanceKlass com/sun/glass/ui/Window +instanceKlass com/sun/glass/ui/GlassRobot +instanceKlass com/sun/glass/ui/Timer +instanceKlass com/sun/glass/ui/delegate/MenuDelegate +instanceKlass com/sun/glass/ui/InvokeLaterDispatcher$InvokeLaterSubmitter +instanceKlass com/sun/glass/ui/delegate/ClipboardDelegate +instanceKlass com/sun/glass/ui/delegate/MenuItemDelegate +instanceKlass com/sun/glass/ui/delegate/MenuBarDelegate +instanceKlass @bci com/sun/glass/ui/Platform determinePlatform ()Ljava/lang/String; 6 argL0 ; # com/sun/glass/ui/Platform$$Lambda$80+0x000000080102e298 +instanceKlass com/sun/glass/ui/Platform +instanceKlass com/sun/glass/ui/PlatformFactory +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit startup (Ljava/lang/Runnable;)V 16 member ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$79+0x000000080102dc80 +instanceKlass @bci com/sun/javafx/application/PlatformImpl startup (Ljava/lang/Runnable;Z)V 231 member ; # com/sun/javafx/application/PlatformImpl$$Lambda$78+0x000000080102da70 +instanceKlass java/lang/Shutdown$Lock +instanceKlass java/lang/Shutdown +instanceKlass java/lang/ApplicationShutdownHooks$1 +instanceKlass java/lang/ApplicationShutdownHooks +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit init ()Z 37 member ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$77+0x000000080102d860 +instanceKlass @bci com/sun/javafx/tk/quantum/PaintCollector ()V 16 argL0 ; # com/sun/javafx/tk/quantum/PaintCollector$$Lambda$76+0x000000080102d5e0 +instanceKlass @cpi com/sun/prism/impl/ps/CachingShapeRepState$MaskCache 286 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x000000080102a000 +instanceKlass com/sun/javafx/tk/quantum/GlassScene +instanceKlass com/sun/javafx/tk/TKScene +instanceKlass com/sun/javafx/tk/quantum/PaintCollector +instanceKlass com/sun/javafx/tk/CompletionListener +instanceKlass java/util/concurrent/ForkJoinPool$2 +instanceKlass jdk/internal/access/JavaUtilConcurrentFJPAccess +instanceKlass java/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory +instanceKlass java/util/concurrent/ForkJoinPool$WorkQueue +instanceKlass java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory +instanceKlass @bci com/sun/glass/ui/Application ()V 4 argL0 ; # com/sun/glass/ui/Application$$Lambda$75+0x000000080102ca58 +instanceKlass com/sun/glass/ui/Application +instanceKlass com/sun/glass/ui/View$Capability +instanceKlass com/sun/glass/ui/Screen +instanceKlass com/sun/prism/impl/BaseResourceFactory +instanceKlass com/sun/prism/ps/ShaderFactory +instanceKlass @bci com/sun/prism/d3d/D3DPipeline ()V 0 argL0 ; # com/sun/prism/d3d/D3DPipeline$$Lambda$74+0x0000000801025f80 +instanceKlass com/sun/prism/ResourceFactory +instanceKlass com/sun/prism/GraphicsResource +instanceKlass @bci com/sun/marlin/DMarlinRenderingEngine logSettings (Ljava/lang/String;)V 68 argL2 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801029c00 +instanceKlass com/sun/javafx/font/FontFactory +instanceKlass com/sun/prism/GraphicsPipeline +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumRenderer$QuantumThreadFactory lambda$newThread$1 (Lcom/sun/javafx/tk/quantum/QuantumRenderer$PipelineRunnable;)Ljava/lang/Thread; 31 argL0 ; # com/sun/javafx/tk/quantum/QuantumRenderer$QuantumThreadFactory$$Lambda$73+0x00000008010252b8 +instanceKlass @bci com/sun/marlin/DMarlinRenderingEngine logSettings (Ljava/lang/String;)V 88 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801029800 +instanceKlass @bci com/sun/marlin/DMarlinRenderingEngine logSettings (Ljava/lang/String;)V 88 argL3 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801029400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801029000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801028c00 +instanceKlass @bci com/sun/marlin/DMarlinRenderingEngine logSettings (Ljava/lang/String;)V 88 argL1 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801028800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801028400 +instanceKlass java/lang/Thread$ThreadNumbering +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumRenderer$QuantumThreadFactory newThread (Ljava/lang/Runnable;)Ljava/lang/Thread; 19 member ; # com/sun/javafx/tk/quantum/QuantumRenderer$QuantumThreadFactory$$Lambda$72+0x00000008010250a8 +instanceKlass com/sun/javafx/tk/quantum/QuantumRenderer$PipelineRunnable +instanceKlass com/sun/javafx/tk/quantum/QuantumRenderer$QuantumThreadFactory +instanceKlass java/util/concurrent/atomic/Striped64$1 +instanceKlass jdk/internal/vm/ThreadContainers +instanceKlass jdk/internal/vm/StackableScope +instanceKlass java/util/concurrent/Executors$DefaultThreadFactory +instanceKlass java/util/concurrent/Executors +instanceKlass java/util/concurrent/LinkedBlockingQueue$Node +instanceKlass java/util/concurrent/atomic/AtomicReference +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumRenderer ()V 16 argL0 ; # com/sun/javafx/tk/quantum/QuantumRenderer$$Lambda$71+0x0000000801024a60 +instanceKlass java/util/concurrent/ThreadPoolExecutor$AbortPolicy +instanceKlass java/util/concurrent/RejectedExecutionHandler +instanceKlass java/util/concurrent/RunnableFuture +instanceKlass java/util/concurrent/Future +instanceKlass java/util/concurrent/BlockingQueue +instanceKlass java/util/concurrent/AbstractExecutorService +instanceKlass java/util/concurrent/ExecutorService +instanceKlass java/util/concurrent/Executor +instanceKlass @bci com/sun/javafx/tk/quantum/GlassSystemMenu ()V 16 member ; # com/sun/javafx/tk/quantum/GlassSystemMenu$$Lambda$70+0x0000000801024440 +instanceKlass @cpi javafx/scene/control/FocusModel 115 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801028000 +instanceKlass com/sun/glass/ui/Menu$EventHandler +instanceKlass com/sun/glass/ui/MenuItem$Callback +instanceKlass javafx/scene/input/KeyCombination +instanceKlass com/sun/javafx/menu/MenuItemBase +instanceKlass com/sun/javafx/tk/quantum/GlassSystemMenu +instanceKlass java/util/Collections$SynchronizedMap +instanceKlass @bci com/sun/prism/impl/PrismSettings ()V 0 argL0 ; # com/sun/prism/impl/PrismSettings$$Lambda$69+0x0000000801022fc0 +instanceKlass com/sun/prism/impl/PrismSettings +instanceKlass com/sun/javafx/tk/quantum/PerformanceTrackerHelper$1 +instanceKlass com/sun/javafx/tk/quantum/PerformanceTrackerHelper +instanceKlass com/sun/javafx/tk/quantum/QuantumToolkit$PulseTask +instanceKlass com/sun/javafx/geom/PathConsumer2D +instanceKlass com/sun/javafx/geom/Shape +instanceKlass com/sun/prism/BasicStroke +instanceKlass com/sun/javafx/tk/quantum/QuantumToolkit$3 +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit ()V 149 argL0 ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$68+0x0000000801020820 +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit ()V 132 argL0 ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$67+0x0000000801020618 +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit ()V 115 argL0 ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$66+0x0000000801020410 +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit ()V 98 argL0 ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$65+0x0000000801020208 +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit ()V 84 argL0 ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$64+0x0000000801020000 +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit ()V 67 argL0 ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$63+0x000000080101c400 +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit ()V 50 argL0 ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$62+0x000000080101cdf8 +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit ()V 33 argL0 ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$61+0x000000080101cbf0 +instanceKlass @bci com/sun/javafx/tk/quantum/QuantumToolkit ()V 16 argL0 ; # com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$60+0x000000080101c9e8 +instanceKlass com/sun/javafx/tk/TKSystemMenu +instanceKlass com/sun/scenario/animation/AbstractPrimaryTimer +instanceKlass com/sun/javafx/tk/FontLoader +instanceKlass com/sun/scenario/effect/Filterable +instanceKlass com/sun/scenario/effect/LockableResource +instanceKlass com/sun/scenario/effect/FilterContext +instanceKlass com/sun/javafx/tk/ImageLoader +instanceKlass com/sun/javafx/runtime/async/AbstractAsyncOperation +instanceKlass java/util/concurrent/Callable +instanceKlass com/sun/javafx/runtime/async/AsyncOperation +instanceKlass com/sun/glass/ui/Screen$EventHandler +instanceKlass com/sun/javafx/scene/text/TextLayoutFactory +instanceKlass com/sun/javafx/tk/TKStage +instanceKlass com/sun/javafx/tk/PlatformImage +instanceKlass javafx/scene/shape/PathElement +instanceKlass com/sun/glass/ui/Application$EventHandler +instanceKlass com/sun/javafx/tk/ScreenConfigurationAccessor +instanceKlass com/sun/javafx/perf/PerformanceTracker +instanceKlass @bci com/sun/javafx/font/PrismFontFactory getJDKFontDir ()Ljava/lang/String; 13 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x000000080101c000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080101bc00 +instanceKlass @bci com/sun/javafx/font/PrismFontFactory getJDKFontDir ()Ljava/lang/String; 13 argL3 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x000000080101b800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080101b400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080101b000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080101ac00 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080101a800 +instanceKlass @bci com/sun/javafx/font/PrismFontFactory getJDKFontDir ()Ljava/lang/String; 13 argL1 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x000000080101a400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x000000080101a000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801019c00 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801019800 +instanceKlass @bci com/sun/javafx/font/LogicalFont (Ljava/lang/String;ZZ)V 96 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801019400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801019000 +instanceKlass @bci com/sun/javafx/font/LogicalFont (Ljava/lang/String;ZZ)V 96 argL3 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801018c00 +instanceKlass java/lang/invoke/MethodHandles$1 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801018800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801018400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801018000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801015c00 +instanceKlass @bci com/sun/javafx/font/LogicalFont (Ljava/lang/String;ZZ)V 96 argL1 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801015800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801015400 +instanceKlass @bci com/sun/marlin/DMarlinRenderingEngine logSettings (Ljava/lang/String;)V 68 argL1 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801015000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801014c00 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801014800 +instanceKlass java/lang/Long$LongCache +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801014400 +instanceKlass jdk/internal/module/Resources +instanceKlass java/lang/StackStreamFactory$FrameBuffer +instanceKlass java/lang/StackStreamFactory$1 +instanceKlass java/lang/StackStreamFactory +instanceKlass @bci com/sun/glass/utils/NativeLibLoader loadLibrary (Ljava/lang/String;)V 10 argL0 ; # com/sun/glass/utils/NativeLibLoader$$Lambda$59+0x0000000801016208 +instanceKlass @bci com/sun/glass/utils/NativeLibLoader ()V 28 argL0 ; # com/sun/glass/utils/NativeLibLoader$$Lambda$58+0x0000000801016000 +instanceKlass com/sun/glass/utils/NativeLibLoader +instanceKlass jdk/internal/math/FloatingDecimal$ASCIIToBinaryBuffer +instanceKlass jdk/internal/math/FloatingDecimal$PreparedASCIIToBinaryBuffer +instanceKlass jdk/internal/math/FloatingDecimal$ASCIIToBinaryConverter +instanceKlass jdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer +instanceKlass jdk/internal/math/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +instanceKlass jdk/internal/math/FloatingDecimal$BinaryToASCIIConverter +instanceKlass jdk/internal/math/FloatingDecimal +instanceKlass @bci com/sun/javafx/PlatformUtil ()V 72 argL0 ; # com/sun/javafx/PlatformUtil$$Lambda$57+0x0000000801013bb8 +instanceKlass @bci com/sun/javafx/PlatformUtil ()V 56 argL0 ; # com/sun/javafx/PlatformUtil$$Lambda$56+0x00000008010139b0 +instanceKlass @bci com/sun/javafx/PlatformUtil ()V 37 argL0 ; # com/sun/javafx/PlatformUtil$$Lambda$55+0x00000008010137a8 +instanceKlass @bci com/sun/javafx/PlatformUtil ()V 18 argL0 ; # com/sun/javafx/PlatformUtil$$Lambda$54+0x00000008010135a0 +instanceKlass com/sun/javafx/PlatformUtil +instanceKlass @bci com/sun/marlin/TransformingPathConsumer2D$PathTracer (Ljava/lang/String;)V 6 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801014000 +instanceKlass com/sun/javafx/runtime/VersionInfo +instanceKlass @bci com/sun/javafx/tk/Toolkit getToolkit ()Lcom/sun/javafx/tk/Toolkit; 10 argL0 ; # com/sun/javafx/tk/Toolkit$$Lambda$53+0x0000000801012fb8 +instanceKlass @bci java/util/regex/Pattern DOT ()Ljava/util/regex/Pattern$CharPredicate; 0 argL0 ; # java/util/regex/Pattern$$Lambda$52+0x0000000801054e90 +instanceKlass @bci java/util/regex/CharPredicates ctype (I)Ljava/util/regex/Pattern$CharPredicate; 1 member ; # java/util/regex/CharPredicates$$Lambda$51+0x0000000801054c18 +instanceKlass javafx/scene/image/Image$1 +instanceKlass javafx/scene/image/PixelReader +instanceKlass javafx/beans/binding/NumberExpressionBase +instanceKlass javafx/beans/binding/NumberExpression +instanceKlass javafx/beans/value/ObservableDoubleValue +instanceKlass javafx/beans/value/ObservableNumberValue +instanceKlass com/sun/javafx/tk/Toolkit$ImageAccessor +instanceKlass javafx/geometry/Bounds +instanceKlass com/sun/javafx/util/Utils +instanceKlass javafx/scene/image/Image +instanceKlass @bci com/sun/javafx/tk/Toolkit ()V 14 argL0 ; # com/sun/javafx/tk/Toolkit$$Lambda$50+0x0000000801009638 +instanceKlass javafx/animation/Interpolatable +instanceKlass javafx/scene/paint/Paint +instanceKlass com/sun/javafx/tk/TKClipboard +instanceKlass com/sun/javafx/tk/Toolkit +instanceKlass com/sun/javafx/application/PlatformImpl$1 +instanceKlass @bci com/sun/javafx/application/PlatformImpl startup (Ljava/lang/Runnable;Z)V 142 argL0 ; # com/sun/javafx/application/PlatformImpl$$Lambda$49+0x000000080100b3d0 +instanceKlass @bci com/sun/javafx/application/PlatformImpl ()V 176 argL0 ; # com/sun/javafx/application/PlatformImpl$$Lambda$48+0x000000080100b1c8 +instanceKlass @bci com/sun/javafx/application/PlatformImpl ()V 159 argL0 ; # com/sun/javafx/application/PlatformImpl$$Lambda$47+0x000000080100afc0 +instanceKlass javafx/beans/InvalidationListener +instanceKlass javafx/beans/value/WritableObjectValue +instanceKlass javafx/beans/binding/Binding +instanceKlass javafx/beans/binding/ObjectExpression +instanceKlass javafx/beans/value/ObservableObjectValue +instanceKlass com/sun/javafx/tk/TKListener +instanceKlass javafx/beans/binding/BooleanExpression +instanceKlass javafx/beans/value/ObservableBooleanValue +instanceKlass javafx/beans/value/WritableBooleanValue +instanceKlass javafx/beans/property/Property +instanceKlass javafx/beans/value/WritableValue +instanceKlass javafx/beans/property/ReadOnlyProperty +instanceKlass javafx/beans/value/ObservableValue +instanceKlass javafx/beans/Observable +instanceKlass com/sun/javafx/application/PlatformImpl +instanceKlass @bci com/sun/javafx/application/LauncherImpl startToolkit ()V 21 member ; # com/sun/javafx/application/LauncherImpl$$Lambda$46+0x0000000801006208 +instanceKlass java/util/concurrent/CountDownLatch +instanceKlass @bci java/lang/invoke/BootstrapMethodInvoker invoke (Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object; 462 ; # java/lang/invoke/LambdaForm$MH+0x0000000801008000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801005c00 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801005800 +instanceKlass java/util/TreeMap$PrivateEntryIterator +instanceKlass java/util/TreeMap$Entry +instanceKlass java/lang/invoke/LambdaFormEditor$1 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801005400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801005000 +instanceKlass @cpi com/sun/javafx/scene/control/LambdaMultiplePropertyChangeListenerHandler 209 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801004c00 +instanceKlass java/nio/DirectByteBuffer$Deallocator +instanceKlass sun/nio/ch/Util$BufferCache +instanceKlass sun/nio/ch/Util +instanceKlass @cpi javafx/scene/control/skin/MenuBarSkin 1284 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801004800 +instanceKlass java/lang/invoke/VarHandle$AccessDescriptor +instanceKlass sun/nio/ch/NativeThread +instanceKlass sun/net/NetHooks +instanceKlass sun/net/spi/DefaultProxySelector$3 +instanceKlass java/util/concurrent/atomic/AtomicBoolean +instanceKlass sun/net/spi/DefaultProxySelector$NonProxyInfo +instanceKlass java/util/Properties$LineReader +instanceKlass sun/net/NetProperties$1 +instanceKlass sun/net/NetProperties +instanceKlass sun/net/spi/DefaultProxySelector$1 +instanceKlass java/net/Proxy +instanceKlass @bci com/sun/javafx/application/LauncherImpl ()V 0 argL0 ; # com/sun/javafx/application/LauncherImpl$$Lambda$45+0x0000000801006000 +instanceKlass @cpi java/io/ObjectInputFilter$Config 329 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801004400 +instanceKlass java/net/ProxySelector +instanceKlass java/net/SocksSocketImpl$3 +instanceKlass com/sun/javafx/application/ModuleAccess +instanceKlass javafx/application/Preloader$PreloaderNotification +instanceKlass @bci sun/nio/ch/NioSocketImpl closerFor (Ljava/io/FileDescriptor;Z)Ljava/lang/Runnable; 5 member ; # sun/nio/ch/NioSocketImpl$$Lambda$44+0x000000080104f778 +instanceKlass @cpi com/sun/javafx/scene/control/behavior/TextInputControlBehavior 1093 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801004000 +instanceKlass javafx/application/Application$Parameters +instanceKlass com/sun/javafx/application/PlatformImpl$FinishListener +instanceKlass com/sun/javafx/application/LauncherImpl +instanceKlass sun/launcher/LauncherHelper$FXHelper +instanceKlass javafx/application/Application +instanceKlass jdk/net/ExtendedSocketOptions$PlatformSocketOptions$1 +instanceKlass jdk/net/ExtendedSocketOptions$PlatformSocketOptions +instanceKlass jdk/net/ExtendedSocketOptions$ExtSocketOption +instanceKlass java/net/SocketOption +instanceKlass jdk/net/ExtendedSocketOptions +instanceKlass sun/net/ext/ExtendedSocketOptions +instanceKlass java/net/Inet6Address$Inet6AddressHolder +instanceKlass sun/nio/ch/Net$1 +instanceKlass java/net/ProtocolFamily +instanceKlass sun/nio/ch/Net +instanceKlass java/net/SocksConsts +instanceKlass sun/nio/ch/IOUtil +instanceKlass sun/nio/ch/NativeDispatcher +instanceKlass sun/net/PlatformSocketImpl +instanceKlass jdk/internal/module/ModulePatcher$PatchedModuleReader +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock +instanceKlass java/util/concurrent/locks/ReadWriteLock +instanceKlass java/net/SocketImpl +instanceKlass java/net/SocketOptions +instanceKlass java/net/InetSocketAddress$InetSocketAddressHolder +instanceKlass java/net/InetAddress$PlatformResolver +instanceKlass java/net/spi/InetAddressResolver +instanceKlass java/net/spi/InetAddressResolver$LookupPolicy +instanceKlass java/net/Inet4AddressImpl +instanceKlass java/net/Inet6AddressImpl +instanceKlass java/net/InetAddressImpl +instanceKlass jdk/internal/module/ModuleReferences$SafeCloseModuleReader +instanceKlass java/util/concurrent/ConcurrentSkipListMap$Node +instanceKlass java/util/concurrent/ConcurrentSkipListMap$Index +instanceKlass java/util/concurrent/ConcurrentNavigableMap +instanceKlass java/util/NavigableMap +instanceKlass java/util/SortedMap +instanceKlass java/util/NavigableSet +instanceKlass java/util/SortedSet +instanceKlass java/net/InetAddress$InetAddressHolder +instanceKlass java/net/InetAddress$1 +instanceKlass jdk/internal/access/JavaNetInetAddressAccess +instanceKlass java/net/InetAddress +instanceKlass java/net/SocketAddress +instanceKlass java/lang/invoke/VarForm +instanceKlass jdk/internal/loader/BuiltinClassLoader$5 +instanceKlass java/lang/invoke/VarHandleGuards +instanceKlass java/io/FileInputStream$1 +instanceKlass java/lang/ClassValue$Version +instanceKlass java/lang/ClassValue$Identity +instanceKlass java/lang/ClassValue +instanceKlass java/lang/invoke/VarHandles +instanceKlass java/net/Socket +instanceKlass sun/launcher/LauncherHelper +instanceKlass java/io/Reader +instanceKlass com/intellij/rt/execution/application/AppMainV2 +instanceKlass @bci jdk/internal/reflect/DirectConstructorHandleAccessor invokeImpl ([Ljava/lang/Object;)Ljava/lang/Object; 92 ; # java/lang/invoke/LambdaForm$MH+0x0000000801002800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801002400 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801002000 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801001c00 +instanceKlass @bci com/sun/marlin/RendererContext createContext ()Lcom/sun/marlin/RendererContext; 13 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801001800 +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801001400 +instanceKlass @cpi javafx/scene/control/ListView$ListViewFocusModel 210 form vmentry ; # java/lang/invoke/LambdaForm$DMH+0x0000000801001000 +instanceKlass com/intellij/rt/execution/application/AppMainV2$Agent +instanceKlass java/security/SecureClassLoader$DebugHolder +instanceKlass java/security/Permission +instanceKlass java/security/Guard +instanceKlass java/security/PermissionCollection +instanceKlass java/security/SecureClassLoader$1 +instanceKlass java/security/SecureClassLoader$CodeSourceKey +instanceKlass java/util/zip/Checksum$1 +instanceKlass java/util/zip/CRC32 +instanceKlass java/util/zip/Checksum +instanceKlass sun/nio/ByteBuffered +instanceKlass java/lang/Package$VersionInfo +instanceKlass java/lang/NamedPackage +instanceKlass jdk/internal/loader/Resource +instanceKlass jdk/internal/loader/FileURLMapper +instanceKlass jdk/internal/loader/URLClassPath$JarLoader$1 +instanceKlass java/nio/charset/CoderResult +instanceKlass java/lang/Readable +instanceKlass jdk/internal/loader/URLClassPath$Loader +instanceKlass jdk/internal/loader/URLClassPath$3 +instanceKlass java/security/PrivilegedExceptionAction +instanceKlass sun/net/util/URLUtil +instanceKlass sun/instrument/TransformerManager$TransformerInfo +instanceKlass sun/instrument/TransformerManager +instanceKlass sun/instrument/InstrumentationImpl +instanceKlass java/lang/instrument/Instrumentation +instanceKlass java/lang/invoke/StringConcatFactory +instanceKlass jdk/internal/module/ModuleBootstrap$SafeModuleFinder +instanceKlass java/lang/ModuleLayer$Controller +instanceKlass java/util/concurrent/CopyOnWriteArrayList +instanceKlass jdk/internal/module/ServicesCatalog$ServiceProvider +instanceKlass jdk/internal/loader/AbstractClassLoaderValue$Memoizer +instanceKlass jdk/internal/module/ModuleLoaderMap$Modules +instanceKlass jdk/internal/module/ModuleLoaderMap$Mapper +instanceKlass jdk/internal/module/ModuleLoaderMap +instanceKlass java/lang/module/ResolvedModule +instanceKlass java/lang/ModuleLayer +instanceKlass java/util/stream/ForEachOps$ForEachOp +instanceKlass java/util/stream/ForEachOps +instanceKlass @bci java/lang/module/ModuleFinder$2 findAll ()Ljava/util/Set; 50 member ; # java/lang/module/ModuleFinder$2$$Lambda$3+0x800000006 +instanceKlass @bci java/lang/module/ModuleFinder$2 findAll ()Ljava/util/Set; 38 argL0 ; # java/lang/module/ModuleFinder$2$$Lambda$4+0x800000007 +instanceKlass java/util/WeakHashMap$HashIterator +instanceKlass java/util/Collections$UnmodifiableCollection$1 +instanceKlass @bci jdk/internal/module/ModulePath jarPackages (Ljava/util/jar/JarFile;)Ljava/util/Set; 35 argL0 ; # jdk/internal/module/ModulePath$$Lambda$41+0x0000000801046e20 +instanceKlass @bci jdk/internal/module/ModulePath jarPackages (Ljava/util/jar/JarFile;)Ljava/util/Set; 25 member ; # jdk/internal/module/ModulePath$$Lambda$40+0x0000000801046bf0 +instanceKlass @bci jdk/internal/module/ModulePath jarPackages (Ljava/util/jar/JarFile;)Ljava/util/Set; 14 argL0 ; # jdk/internal/module/ModulePath$$Lambda$39+0x00000008010469c8 +instanceKlass @bci jdk/internal/module/ModulePath jarPackages (Ljava/util/jar/JarFile;)Ljava/util/Set; 4 argL0 ; # jdk/internal/module/ModulePath$$Lambda$38+0x0000000801046790 +instanceKlass jdk/internal/module/ModuleInfo$ConstantPool$Entry +instanceKlass jdk/internal/module/ModuleInfo$ConstantPool +instanceKlass jdk/internal/module/ModuleInfo$CountingDataInput +instanceKlass jdk/internal/module/ModuleInfo +instanceKlass @bci jdk/internal/module/ModulePath readJar (Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference; 99 member ; # jdk/internal/module/ModulePath$$Lambda$37+0x0000000801045698 +instanceKlass jdk/internal/org/objectweb/asm/ClassReader +instanceKlass java/io/RandomAccessFile$1 +instanceKlass @bci jdk/internal/module/ModuleReferences newJarModule (Ljdk/internal/module/ModuleInfo$Attributes;Ljdk/internal/module/ModulePatcher;Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference; 18 member ; # jdk/internal/module/ModuleReferences$$Lambda$55+0x800000060 +instanceKlass @bci jdk/internal/module/ModuleReferences newJarModule (Ljdk/internal/module/ModuleInfo$Attributes;Ljdk/internal/module/ModulePatcher;Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference; 9 member ; # jdk/internal/module/ModuleReferences$$Lambda$56+0x800000061 +instanceKlass java/lang/module/ModuleReader +instanceKlass java/net/URI$Parser +instanceKlass sun/nio/fs/WindowsUriSupport +instanceKlass jdk/internal/module/ModuleReferences +instanceKlass jdk/internal/module/ModuleInfo$Attributes +instanceKlass @bci jdk/internal/module/ModulePath deriveModuleDescriptor (Ljava/util/jar/JarFile;)Ljava/lang/module/ModuleDescriptor; 373 argL0 ; # jdk/internal/module/ModulePath$$Lambda$47+0x800000057 +instanceKlass @bci jdk/internal/module/ModulePath deriveModuleDescriptor (Ljava/util/jar/JarFile;)Ljava/lang/module/ModuleDescriptor; 363 member ; # jdk/internal/module/ModulePath$$Lambda$51+0x80000005c +instanceKlass @bci java/lang/module/ModuleDescriptor$Builder packages (Ljava/util/Set;)Ljava/lang/module/ModuleDescriptor$Builder; 17 argL0 ; # java/lang/module/ModuleDescriptor$Builder$$Lambda$1+0x800000002 +instanceKlass @bci jdk/internal/module/ModulePath deriveModuleDescriptor (Ljava/util/jar/JarFile;)Ljava/lang/module/ModuleDescriptor; 324 argL0 ; # jdk/internal/module/ModulePath$$Lambda$48+0x800000058 +instanceKlass @bci jdk/internal/module/ModulePath deriveModuleDescriptor (Ljava/util/jar/JarFile;)Ljava/lang/module/ModuleDescriptor; 314 member ; # jdk/internal/module/ModulePath$$Lambda$50+0x80000005a +instanceKlass java/util/HashMap$HashMapSpliterator +instanceKlass java/util/AbstractMap$SimpleImmutableEntry +instanceKlass @bci java/util/stream/Collectors partitioningBy (Ljava/util/function/Predicate;Ljava/util/stream/Collector;)Ljava/util/stream/Collector; 33 member ; # java/util/stream/Collectors$$Lambda$32+0x800000047 +instanceKlass @bci java/util/stream/Collectors partitioningBy (Ljava/util/function/Predicate;Ljava/util/stream/Collector;)Ljava/util/stream/Collector; 25 member ; # java/util/stream/Collectors$$Lambda$29+0x800000044 +instanceKlass @bci java/util/stream/Collectors partitioningBy (Ljava/util/function/Predicate;Ljava/util/stream/Collector;)Ljava/util/stream/Collector; 9 member ; # java/util/stream/Collectors$$Lambda$24+0x80000003f +instanceKlass @bci jdk/internal/module/ModulePath deriveModuleDescriptor (Ljava/util/jar/JarFile;)Ljava/lang/module/ModuleDescriptor; 255 argL0 ; # jdk/internal/module/ModulePath$$Lambda$54+0x80000005f +instanceKlass @bci jdk/internal/module/ModulePath deriveModuleDescriptor (Ljava/util/jar/JarFile;)Ljava/lang/module/ModuleDescriptor; 245 argL0 ; # jdk/internal/module/ModulePath$$Lambda$53+0x80000005e +instanceKlass @bci jdk/internal/module/ModulePath deriveModuleDescriptor (Ljava/util/jar/JarFile;)Ljava/lang/module/ModuleDescriptor; 235 argL0 ; # jdk/internal/module/ModulePath$$Lambda$49+0x800000059 +instanceKlass @bci jdk/internal/module/ModulePath deriveModuleDescriptor (Ljava/util/jar/JarFile;)Ljava/lang/module/ModuleDescriptor; 225 argL0 ; # jdk/internal/module/ModulePath$$Lambda$52+0x80000005d +instanceKlass @bci java/util/zip/ZipFile jarStream ()Ljava/util/stream/Stream; 25 member ; # java/util/zip/ZipFile$$Lambda$41+0x800000050 +instanceKlass java/util/function/IntFunction +instanceKlass java/util/Spliterators$AbstractSpliterator +instanceKlass jdk/internal/module/Checks +instanceKlass java/lang/module/ModuleDescriptor$Builder +instanceKlass java/util/regex/ASCII +instanceKlass java/util/regex/IntHashSet +instanceKlass java/util/regex/Matcher +instanceKlass java/util/regex/MatchResult +instanceKlass @bci java/util/regex/Pattern negate (Ljava/util/regex/Pattern$CharPredicate;)Ljava/util/regex/Pattern$CharPredicate; 1 member ; # java/util/regex/Pattern$$Lambda$20+0x800000030 +instanceKlass @bci java/util/regex/Pattern union (Ljava/util/regex/Pattern$CharPredicate;Ljava/util/regex/Pattern$CharPredicate;Z)Ljava/util/regex/Pattern$CharPredicate; 6 member ; # java/util/regex/Pattern$$Lambda$21+0x800000031 +instanceKlass @bci java/util/regex/Pattern Range (II)Ljava/util/regex/Pattern$CharPredicate; 23 member ; # java/util/regex/Pattern$$Lambda$19+0x800000029 +instanceKlass java/util/regex/Pattern$BitClass +instanceKlass java/util/regex/Pattern$TreeInfo +instanceKlass @bci java/util/regex/CharPredicates ASCII_DIGIT ()Ljava/util/regex/Pattern$BmpCharPredicate; 0 argL0 ; # java/util/regex/CharPredicates$$Lambda$16+0x800000024 +instanceKlass java/util/regex/CharPredicates +instanceKlass @bci java/util/regex/Pattern Single (I)Ljava/util/regex/Pattern$BmpCharPredicate; 1 member ; # java/util/regex/Pattern$$Lambda$18+0x800000028 +instanceKlass java/util/regex/Pattern$BmpCharPredicate +instanceKlass java/util/regex/Pattern$CharPredicate +instanceKlass java/util/regex/Pattern$Node +instanceKlass java/util/regex/Pattern +instanceKlass jdk/internal/module/ModulePath$Patterns +instanceKlass java/util/jar/Attributes +instanceKlass java/security/CodeSigner +instanceKlass sun/security/util/Debug +instanceKlass java/util/jar/JarVerifier +instanceKlass java/util/zip/ZipFile$InflaterCleanupAction +instanceKlass java/util/zip/Inflater$InflaterZStreamRef +instanceKlass java/util/zip/Inflater +instanceKlass java/util/zip/ZipEntry +instanceKlass jdk/internal/perf/PerfCounter$CoreCounters +instanceKlass sun/util/locale/LocaleUtils +instanceKlass sun/util/locale/BaseLocale +instanceKlass java/util/Locale +instanceKlass java/nio/file/attribute/FileTime +instanceKlass java/util/zip/ZipUtils +instanceKlass java/util/zip/ZipFile$Source$End +instanceKlass java/io/RandomAccessFile$2 +instanceKlass jdk/internal/access/JavaIORandomAccessFileAccess +instanceKlass java/io/RandomAccessFile +instanceKlass java/io/DataInput +instanceKlass java/io/DataOutput +instanceKlass java/util/zip/ZipFile$Source$Key +instanceKlass java/util/zip/ZipFile$Source +instanceKlass java/util/zip/ZipCoder +instanceKlass java/util/zip/ZipFile$CleanableResource +instanceKlass sun/nio/fs/BasicFileAttributesHolder +instanceKlass sun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator +instanceKlass java/nio/file/Files$AcceptAllFilter +instanceKlass java/nio/file/DirectoryStream$Filter +instanceKlass sun/nio/fs/WindowsDirectoryStream +instanceKlass java/nio/file/DirectoryStream +instanceKlass java/util/Collections$EmptyIterator +instanceKlass sun/nio/fs/WindowsChannelFactory$Flags +instanceKlass sun/nio/fs/WindowsChannelFactory$1 +instanceKlass sun/nio/fs/WindowsChannelFactory +instanceKlass sun/nio/fs/WindowsPath$1 +instanceKlass sun/nio/fs/WindowsNativeDispatcher$CompletionStatus +instanceKlass sun/nio/fs/WindowsNativeDispatcher$AclInformation +instanceKlass sun/nio/fs/WindowsNativeDispatcher$Account +instanceKlass sun/nio/fs/WindowsNativeDispatcher$DiskFreeSpace +instanceKlass sun/nio/fs/WindowsNativeDispatcher$VolumeInformation +instanceKlass sun/nio/fs/WindowsNativeDispatcher$FirstStream +instanceKlass sun/nio/fs/WindowsNativeDispatcher$FirstFile +instanceKlass java/util/Enumeration +instanceKlass java/util/concurrent/ConcurrentHashMap$Traverser +instanceKlass jdk/internal/loader/NativeLibraries$3 +instanceKlass jdk/internal/loader/NativeLibrary +instanceKlass java/util/ArrayDeque$DeqIterator +instanceKlass jdk/internal/loader/NativeLibraries$NativeLibraryContext$1 +instanceKlass jdk/internal/loader/NativeLibraries$NativeLibraryContext +instanceKlass jdk/internal/loader/NativeLibraries$2 +instanceKlass jdk/internal/loader/NativeLibraries$1 +instanceKlass jdk/internal/loader/NativeLibraries$LibraryPaths +instanceKlass sun/nio/fs/WindowsNativeDispatcher +instanceKlass sun/nio/fs/NativeBuffer$Deallocator +instanceKlass sun/nio/fs/NativeBuffer +instanceKlass java/lang/ThreadLocal$ThreadLocalMap +instanceKlass java/lang/ThreadLocal +instanceKlass sun/nio/fs/NativeBuffers +instanceKlass sun/nio/fs/WindowsFileAttributes +instanceKlass java/nio/file/attribute/DosFileAttributes +instanceKlass sun/nio/fs/AbstractBasicFileAttributeView +instanceKlass sun/nio/fs/DynamicFileAttributeView +instanceKlass sun/nio/fs/WindowsFileAttributeViews +instanceKlass sun/nio/fs/Util +instanceKlass java/nio/file/attribute/BasicFileAttributeView +instanceKlass java/nio/file/attribute/FileAttributeView +instanceKlass java/nio/file/attribute/AttributeView +instanceKlass java/nio/file/Files +instanceKlass java/nio/file/CopyOption +instanceKlass java/nio/file/attribute/BasicFileAttributes +instanceKlass java/util/ImmutableCollections$ListItr +instanceKlass java/util/ListIterator +instanceKlass java/lang/module/ModuleFinder$1 +instanceKlass java/lang/module/Resolver +instanceKlass java/lang/module/Configuration +instanceKlass @bci jdk/internal/module/DefaultRoots exportsAPI (Ljava/lang/module/ModuleDescriptor;)Z 9 argL0 ; # jdk/internal/module/DefaultRoots$$Lambda$45+0x800000055 +instanceKlass @bci java/lang/module/ModuleFinder$2 find (Ljava/lang/String;)Ljava/util/Optional; 62 member ; # java/lang/module/ModuleFinder$2$$Lambda$2+0x800000005 +instanceKlass java/util/stream/Streams +instanceKlass java/util/stream/Stream$Builder +instanceKlass java/util/stream/Streams$AbstractStreamBuilderImpl +instanceKlass @bci java/util/stream/FindOps$FindSink$OfRef ()V 43 argL0 ; # java/util/stream/FindOps$FindSink$OfRef$$Lambda$37+0x80000004c +instanceKlass @bci java/util/stream/FindOps$FindSink$OfRef ()V 38 argL0 ; # java/util/stream/FindOps$FindSink$OfRef$$Lambda$39+0x80000004e +instanceKlass @bci java/util/stream/FindOps$FindSink$OfRef ()V 16 argL0 ; # java/util/stream/FindOps$FindSink$OfRef$$Lambda$38+0x80000004d +instanceKlass @bci java/util/stream/FindOps$FindSink$OfRef ()V 11 argL0 ; # java/util/stream/FindOps$FindSink$OfRef$$Lambda$40+0x80000004f +instanceKlass java/util/stream/FindOps$FindOp +instanceKlass java/util/stream/FindOps$FindSink +instanceKlass java/util/stream/FindOps +instanceKlass @bci java/lang/module/ModuleFinder$2 find (Ljava/lang/String;)Ljava/util/Optional; 43 argL0 ; # java/lang/module/ModuleFinder$2$$Lambda$5+0x800000008 +instanceKlass @bci java/lang/module/ModuleFinder$2 find (Ljava/lang/String;)Ljava/util/Optional; 33 member ; # java/lang/module/ModuleFinder$2$$Lambda$6+0x800000009 +instanceKlass java/util/AbstractList$RandomAccessSpliterator +instanceKlass java/util/stream/Sink$ChainedReference +instanceKlass java/util/stream/ReduceOps$AccumulatingSink +instanceKlass java/util/stream/TerminalSink +instanceKlass java/util/stream/Sink +instanceKlass java/util/function/Consumer +instanceKlass java/util/stream/ReduceOps$Box +instanceKlass java/util/stream/ReduceOps$ReduceOp +instanceKlass java/util/stream/TerminalOp +instanceKlass java/util/stream/ReduceOps +instanceKlass @bci java/util/stream/Collectors castingIdentity ()Ljava/util/function/Function; 0 argL0 ; # java/util/stream/Collectors$$Lambda$27+0x800000042 +instanceKlass @bci java/util/stream/Collectors toSet ()Ljava/util/stream/Collector; 14 argL0 ; # java/util/stream/Collectors$$Lambda$25+0x800000040 +instanceKlass java/util/function/BinaryOperator +instanceKlass @bci java/util/stream/Collectors toSet ()Ljava/util/stream/Collector; 9 argL0 ; # java/util/stream/Collectors$$Lambda$22+0x800000039 +instanceKlass java/util/function/BiConsumer +instanceKlass @bci java/util/stream/Collectors toSet ()Ljava/util/stream/Collector; 4 argL0 ; # java/util/stream/Collectors$$Lambda$30+0x800000045 +instanceKlass java/util/stream/Collectors$CollectorImpl +instanceKlass java/util/stream/Collector +instanceKlass java/util/stream/Collectors +instanceKlass @bci jdk/internal/module/DefaultRoots compute (Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;)Ljava/util/Set; 42 argL0 ; # jdk/internal/module/DefaultRoots$$Lambda$42+0x800000052 +instanceKlass @bci jdk/internal/module/DefaultRoots compute (Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;)Ljava/util/Set; 32 member ; # jdk/internal/module/DefaultRoots$$Lambda$46+0x800000056 +instanceKlass @bci jdk/internal/module/DefaultRoots compute (Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;)Ljava/util/Set; 21 argL0 ; # jdk/internal/module/DefaultRoots$$Lambda$43+0x800000053 +instanceKlass java/util/concurrent/ForkJoinPool$ManagedBlocker +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +instanceKlass java/lang/ref/Cleaner$Cleanable +instanceKlass jdk/internal/ref/CleanerImpl +instanceKlass java/lang/ref/Cleaner$1 +instanceKlass java/lang/ref/Cleaner +instanceKlass jdk/internal/ref/CleanerFactory$1 +instanceKlass java/util/concurrent/ThreadFactory +instanceKlass jdk/internal/ref/CleanerFactory +instanceKlass @bci java/io/ObjectInputFilter$Config ()V 56 form vmentry ; # java/lang/invoke/LambdaForm$MH+0x0000000801000800 +instanceKlass sun/invoke/util/Wrapper$1 +instanceKlass @bci jdk/internal/module/DefaultRoots compute (Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;)Ljava/util/Set; 11 argL0 ; # jdk/internal/module/DefaultRoots$$Lambda$44+0x800000054 +instanceKlass java/lang/invoke/LambdaProxyClassArchive +instanceKlass java/lang/invoke/InfoFromMemberName +instanceKlass java/lang/invoke/MethodHandleInfo +instanceKlass jdk/internal/org/objectweb/asm/ConstantDynamic +instanceKlass jdk/internal/org/objectweb/asm/Handle +instanceKlass sun/security/action/GetBooleanAction +instanceKlass java/lang/invoke/AbstractValidatingLambdaMetafactory +instanceKlass java/lang/invoke/BootstrapMethodInvoker +instanceKlass java/util/function/Predicate +instanceKlass java/lang/WeakPairMap$Pair$Lookup +instanceKlass java/lang/WeakPairMap$Pair +instanceKlass java/lang/WeakPairMap +instanceKlass java/lang/Module$ReflectionData +instanceKlass java/lang/invoke/LambdaMetafactory +# instanceKlass java/lang/invoke/LambdaForm$MH+0x0000000801000400 +instanceKlass java/lang/invoke/MethodHandles$Lookup$ClassDefiner +instanceKlass java/lang/invoke/MethodHandles$Lookup$ClassFile +instanceKlass jdk/internal/org/objectweb/asm/Handler +instanceKlass jdk/internal/org/objectweb/asm/Attribute +instanceKlass jdk/internal/org/objectweb/asm/FieldVisitor +instanceKlass java/util/ArrayList$Itr +instanceKlass sun/invoke/empty/Empty +instanceKlass sun/invoke/util/VerifyType +instanceKlass java/lang/invoke/InvokerBytecodeGenerator$ClassData +instanceKlass jdk/internal/org/objectweb/asm/AnnotationVisitor +instanceKlass jdk/internal/org/objectweb/asm/Frame +instanceKlass jdk/internal/org/objectweb/asm/Label +instanceKlass jdk/internal/org/objectweb/asm/Type +instanceKlass jdk/internal/org/objectweb/asm/MethodVisitor +instanceKlass sun/invoke/util/BytecodeDescriptor +instanceKlass jdk/internal/org/objectweb/asm/ByteVector +instanceKlass jdk/internal/org/objectweb/asm/Symbol +instanceKlass jdk/internal/org/objectweb/asm/SymbolTable +instanceKlass jdk/internal/org/objectweb/asm/ClassVisitor +instanceKlass java/lang/invoke/LambdaFormBuffer +instanceKlass java/lang/invoke/LambdaFormEditor$TransformKey +instanceKlass java/lang/invoke/LambdaFormEditor +instanceKlass java/lang/invoke/Invokers$Holder +instanceKlass java/lang/invoke/DelegatingMethodHandle$Holder +instanceKlass java/lang/invoke/DirectMethodHandle$2 +instanceKlass java/lang/invoke/ClassSpecializer$Factory +instanceKlass java/lang/invoke/ClassSpecializer$SpeciesData +instanceKlass java/lang/invoke/ClassSpecializer$1 +instanceKlass java/lang/invoke/ClassSpecializer +instanceKlass java/lang/invoke/InvokerBytecodeGenerator$2 +instanceKlass java/lang/invoke/InvokerBytecodeGenerator +instanceKlass java/lang/invoke/LambdaForm$Holder +instanceKlass java/lang/invoke/LambdaForm$Name +instanceKlass java/lang/invoke/Invokers +instanceKlass sun/invoke/util/ValueConversions +instanceKlass java/lang/invoke/DirectMethodHandle$Holder +instanceKlass java/lang/Void +instanceKlass sun/invoke/util/Wrapper$Format +instanceKlass java/lang/invoke/MethodHandleImpl$1 +instanceKlass jdk/internal/access/JavaLangInvokeAccess +instanceKlass java/lang/invoke/LambdaForm$NamedFunction +instanceKlass java/lang/invoke/MethodHandleImpl +instanceKlass jdk/internal/reflect/MethodHandleAccessorFactory$LazyStaticHolder +instanceKlass java/lang/invoke/MethodTypeForm +instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet +instanceKlass sun/reflect/annotation/AnnotationParser +instanceKlass java/lang/Class$3 +instanceKlass java/lang/PublicMethods$Key +instanceKlass java/lang/PublicMethods$MethodList +instanceKlass java/util/EnumMap$1 +instanceKlass java/util/stream/StreamOpFlag$MaskBuilder +instanceKlass java/util/stream/Stream +instanceKlass java/util/stream/BaseStream +instanceKlass java/util/stream/PipelineHelper +instanceKlass java/util/stream/StreamSupport +instanceKlass java/util/Spliterators$IteratorSpliterator +instanceKlass java/util/Spliterator$OfDouble +instanceKlass java/util/Spliterator$OfLong +instanceKlass java/util/Spliterator$OfInt +instanceKlass java/util/Spliterator$OfPrimitive +instanceKlass java/util/Spliterator +instanceKlass java/util/Spliterators$EmptySpliterator +instanceKlass java/util/Spliterators +instanceKlass jdk/internal/module/DefaultRoots +instanceKlass java/lang/module/ModuleFinder$2 +instanceKlass jdk/internal/loader/BuiltinClassLoader$LoadedModule +instanceKlass jdk/internal/loader/AbstractClassLoaderValue +instanceKlass jdk/internal/module/ServicesCatalog +instanceKlass java/util/Deque +instanceKlass java/util/Queue +instanceKlass sun/net/util/IPAddressUtil +instanceKlass java/net/URLStreamHandler +instanceKlass java/util/HexFormat +instanceKlass sun/net/www/ParseUtil +instanceKlass java/net/URL$3 +instanceKlass jdk/internal/access/JavaNetURLAccess +instanceKlass java/net/URL$DefaultFactory +instanceKlass java/net/URLStreamHandlerFactory +instanceKlass jdk/internal/loader/URLClassPath +instanceKlass java/security/Principal +instanceKlass java/security/ProtectionDomain$Key +instanceKlass java/security/ProtectionDomain$JavaSecurityAccessImpl +instanceKlass jdk/internal/access/JavaSecurityAccess +instanceKlass java/lang/ClassLoader$ParallelLoaders +instanceKlass java/security/cert/Certificate +instanceKlass jdk/internal/loader/ArchivedClassLoaders +instanceKlass java/util/concurrent/ConcurrentHashMap$CollectionView +instanceKlass jdk/internal/loader/ClassLoaderHelper +instanceKlass jdk/internal/loader/NativeLibraries +instanceKlass jdk/internal/loader/BootLoader +instanceKlass jdk/internal/module/SystemModuleFinders$SystemModuleFinder +instanceKlass jdk/internal/module/SystemModuleFinders$3 +instanceKlass jdk/internal/module/ModuleHashes$HashSupplier +instanceKlass jdk/internal/module/SystemModuleFinders$2 +instanceKlass java/util/function/Supplier +instanceKlass java/lang/module/ModuleReference +instanceKlass jdk/internal/module/ModuleResolution +instanceKlass java/util/Collections$UnmodifiableMap +instanceKlass jdk/internal/module/ModuleHashes$Builder +instanceKlass jdk/internal/module/ModuleHashes +instanceKlass jdk/internal/module/ModuleTarget +instanceKlass java/util/ImmutableCollections$Set12$1 +instanceKlass java/lang/module/ModuleDescriptor$Version +instanceKlass java/lang/module/ModuleDescriptor$Provides +instanceKlass java/lang/module/ModuleDescriptor$Opens +instanceKlass java/util/ImmutableCollections$SetN$SetNIterator +instanceKlass java/lang/module/ModuleDescriptor$Exports +instanceKlass java/lang/module/ModuleDescriptor$Requires +instanceKlass jdk/internal/module/Builder +instanceKlass jdk/internal/module/SystemModules$all +instanceKlass jdk/internal/module/SystemModules +instanceKlass jdk/internal/module/SystemModulesMap +instanceKlass java/net/URI$1 +instanceKlass jdk/internal/access/JavaNetUriAccess +instanceKlass java/net/URI +instanceKlass jdk/internal/module/SystemModuleFinders +instanceKlass jdk/internal/module/ArchivedModuleGraph +instanceKlass java/util/Optional +instanceKlass java/lang/Runtime$Version +instanceKlass java/util/jar/JavaUtilJarAccessImpl +instanceKlass jdk/internal/access/JavaUtilJarAccess +instanceKlass java/util/zip/ZipFile$1 +instanceKlass jdk/internal/access/JavaUtilZipFileAccess +instanceKlass java/util/zip/ZipFile +instanceKlass java/util/zip/ZipConstants +instanceKlass java/nio/Bits$1 +instanceKlass jdk/internal/misc/VM$BufferPool +instanceKlass java/nio/Bits +instanceKlass sun/nio/ch/DirectBuffer +instanceKlass jdk/internal/perf/Perf +instanceKlass jdk/internal/perf/Perf$GetPerfAction +instanceKlass jdk/internal/perf/PerfCounter +instanceKlass java/lang/reflect/Array +instanceKlass java/util/jar/Attributes$Name +instanceKlass jdk/internal/module/ModulePath +instanceKlass java/lang/module/ModuleFinder +instanceKlass sun/nio/fs/WindowsPath +instanceKlass sun/nio/fs/WindowsPathParser$Result +instanceKlass sun/nio/fs/WindowsPathParser +instanceKlass java/util/Collections$UnmodifiableCollection +instanceKlass java/util/Arrays$ArrayItr +instanceKlass java/nio/file/FileSystem +instanceKlass java/nio/file/OpenOption +instanceKlass java/nio/file/spi/FileSystemProvider +instanceKlass sun/nio/fs/DefaultFileSystemProvider +instanceKlass java/nio/file/FileSystems +instanceKlass java/nio/file/Path +instanceKlass java/nio/file/Watchable +instanceKlass jdk/internal/module/ArchivedBootLayer +instanceKlass jdk/internal/module/ModuleBootstrap$Counters +instanceKlass jdk/internal/module/ModulePatcher +instanceKlass jdk/internal/util/ArraysSupport +instanceKlass java/io/FileSystem +instanceKlass java/io/DefaultFileSystem +instanceKlass java/io/File +instanceKlass java/lang/module/ModuleDescriptor$1 +instanceKlass jdk/internal/access/JavaLangModuleAccess +instanceKlass sun/invoke/util/VerifyAccess +instanceKlass java/util/KeyValueHolder +instanceKlass java/util/ImmutableCollections$MapN$MapNIterator +instanceKlass java/lang/StrictMath +instanceKlass java/lang/invoke/MethodHandles$Lookup +instanceKlass java/lang/invoke/MemberName$Factory +instanceKlass java/lang/invoke/MethodHandles +instanceKlass java/lang/module/ModuleDescriptor +instanceKlass jdk/internal/module/ModuleBootstrap +instanceKlass java/lang/invoke/MethodHandleStatics +instanceKlass jdk/internal/misc/Blocker +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +instanceKlass java/util/concurrent/locks/Condition +instanceKlass java/util/Collections +instanceKlass java/lang/Thread$ThreadIdentifiers +instanceKlass sun/io/Win32ErrorMode +instanceKlass jdk/internal/misc/OSEnvironment +instanceKlass java/lang/Integer$IntegerCache +instanceKlass jdk/internal/misc/Signal$NativeHandler +instanceKlass java/util/Hashtable$Entry +instanceKlass jdk/internal/misc/Signal +instanceKlass java/lang/Terminator$1 +instanceKlass jdk/internal/misc/Signal$Handler +instanceKlass java/lang/Terminator +instanceKlass java/nio/ByteOrder +instanceKlass java/nio/Buffer$1 +instanceKlass jdk/internal/access/JavaNioAccess +instanceKlass jdk/internal/misc/ScopedMemoryAccess +instanceKlass sun/nio/cs/ArrayEncoder +instanceKlass java/nio/charset/CharsetEncoder +instanceKlass java/io/Writer +instanceKlass java/io/PrintStream$1 +instanceKlass jdk/internal/access/JavaIOPrintStreamAccess +instanceKlass jdk/internal/misc/InternalLock +instanceKlass java/io/OutputStream +instanceKlass java/io/Flushable +instanceKlass java/io/FileDescriptor$1 +instanceKlass jdk/internal/access/JavaIOFileDescriptorAccess +instanceKlass java/io/FileDescriptor +instanceKlass sun/security/action/GetPropertyAction +instanceKlass jdk/internal/util/StaticProperty +instanceKlass java/util/HashMap$HashIterator +instanceKlass java/util/concurrent/locks/LockSupport +instanceKlass java/util/concurrent/ConcurrentHashMap$Node +instanceKlass java/util/concurrent/ConcurrentHashMap$CounterCell +instanceKlass java/util/concurrent/locks/ReentrantLock +instanceKlass java/util/concurrent/locks/Lock +instanceKlass java/lang/CharacterData +instanceKlass java/lang/Runtime +instanceKlass java/lang/VersionProps +instanceKlass java/lang/StringConcatHelper +instanceKlass java/util/HashMap$Node +instanceKlass java/util/Map$Entry +instanceKlass java/lang/StringCoding +instanceKlass java/nio/charset/CodingErrorAction +instanceKlass sun/nio/cs/SingleByte +instanceKlass java/lang/StringUTF16 +instanceKlass sun/nio/cs/MS874$Holder +instanceKlass sun/nio/cs/ArrayDecoder +instanceKlass java/nio/charset/CharsetDecoder +instanceKlass jdk/internal/reflect/MethodHandleAccessorFactory +instanceKlass java/lang/reflect/Modifier +instanceKlass java/lang/Class$1 +instanceKlass java/lang/Class$Atomic +instanceKlass java/lang/Class$ReflectionData +instanceKlass java/nio/charset/StandardCharsets +instanceKlass sun/nio/cs/HistoricallyNamedCharset +instanceKlass java/util/Arrays +instanceKlass jdk/internal/util/Preconditions$3 +instanceKlass jdk/internal/util/Preconditions$2 +instanceKlass jdk/internal/util/Preconditions$4 +instanceKlass java/util/function/BiFunction +instanceKlass jdk/internal/util/Preconditions$1 +instanceKlass java/util/function/Function +instanceKlass jdk/internal/util/Preconditions +instanceKlass java/nio/charset/spi/CharsetProvider +instanceKlass java/nio/charset/Charset +instanceKlass jdk/internal/util/SystemProps$Raw +instanceKlass jdk/internal/util/SystemProps +instanceKlass java/lang/System$2 +instanceKlass jdk/internal/access/JavaLangAccess +instanceKlass java/lang/ref/NativeReferenceQueue$Lock +instanceKlass java/lang/ref/ReferenceQueue +instanceKlass java/lang/ref/Reference$1 +instanceKlass jdk/internal/access/JavaLangRefAccess +instanceKlass jdk/internal/reflect/ReflectionFactory +instanceKlass java/lang/Math +instanceKlass java/lang/StringLatin1 +instanceKlass jdk/internal/reflect/Reflection +instanceKlass jdk/internal/reflect/ReflectionFactory$GetReflectionFactoryAction +instanceKlass java/security/PrivilegedAction +instanceKlass jdk/internal/access/SharedSecrets +instanceKlass java/lang/reflect/ReflectAccess +instanceKlass jdk/internal/access/JavaLangReflectAccess +instanceKlass java/util/ImmutableCollections +instanceKlass java/util/Objects +instanceKlass java/util/Set +instanceKlass jdk/internal/misc/CDS +instanceKlass java/lang/Module$ArchivedData +instanceKlass jdk/internal/misc/VM +instanceKlass java/lang/String$CaseInsensitiveComparator +instanceKlass java/util/Comparator +instanceKlass java/io/ObjectStreamField +instanceKlass jdk/internal/vm/FillerObject +instanceKlass jdk/internal/vm/vector/VectorSupport$VectorPayload +instanceKlass jdk/internal/vm/vector/VectorSupport +instanceKlass java/lang/reflect/RecordComponent +instanceKlass java/util/Iterator +instanceKlass java/lang/Number +instanceKlass java/lang/Character +instanceKlass java/lang/Boolean +instanceKlass java/util/concurrent/locks/AbstractOwnableSynchronizer +instanceKlass java/lang/LiveStackFrame +instanceKlass java/lang/StackFrameInfo +instanceKlass java/lang/StackWalker$StackFrame +instanceKlass java/lang/StackStreamFactory$AbstractStackWalker +instanceKlass java/lang/StackWalker +instanceKlass java/nio/Buffer +instanceKlass java/lang/StackTraceElement +instanceKlass java/util/RandomAccess +instanceKlass java/util/List +instanceKlass java/util/AbstractCollection +instanceKlass java/util/Collection +instanceKlass java/lang/Iterable +instanceKlass java/util/concurrent/ConcurrentMap +instanceKlass java/util/AbstractMap +instanceKlass java/security/CodeSource +instanceKlass jdk/internal/loader/ClassLoaders +instanceKlass java/util/jar/Manifest +instanceKlass java/lang/Enum +instanceKlass java/net/URL +instanceKlass java/io/InputStream +instanceKlass java/io/Closeable +instanceKlass java/lang/AutoCloseable +instanceKlass jdk/internal/module/Modules +instanceKlass jdk/internal/misc/Unsafe +instanceKlass jdk/internal/misc/UnsafeConstants +instanceKlass java/lang/AbstractStringBuilder +instanceKlass java/lang/Appendable +instanceKlass java/lang/AssertionStatusDirectives +instanceKlass java/lang/invoke/MethodHandleNatives$CallSiteContext +instanceKlass jdk/internal/foreign/abi/VMStorage +instanceKlass jdk/internal/foreign/abi/ABIDescriptor +instanceKlass jdk/internal/foreign/abi/NativeEntryPoint +instanceKlass java/lang/invoke/CallSite +instanceKlass java/lang/invoke/MethodType +instanceKlass java/lang/invoke/TypeDescriptor$OfMethod +instanceKlass java/lang/invoke/LambdaForm +instanceKlass java/lang/invoke/MethodHandleNatives +instanceKlass java/lang/invoke/ResolvedMethodName +instanceKlass java/lang/invoke/MemberName +instanceKlass java/lang/invoke/VarHandle +instanceKlass java/lang/invoke/MethodHandle +instanceKlass jdk/internal/reflect/CallerSensitive +instanceKlass java/lang/annotation/Annotation +instanceKlass jdk/internal/reflect/FieldAccessor +instanceKlass jdk/internal/reflect/ConstantPool +instanceKlass jdk/internal/reflect/ConstructorAccessor +instanceKlass jdk/internal/reflect/MethodAccessor +instanceKlass jdk/internal/reflect/MagicAccessorImpl +instanceKlass jdk/internal/vm/StackChunk +instanceKlass jdk/internal/vm/Continuation +instanceKlass jdk/internal/vm/ContinuationScope +instanceKlass java/lang/reflect/Parameter +instanceKlass java/lang/reflect/Member +instanceKlass java/lang/reflect/AccessibleObject +instanceKlass java/lang/Module +instanceKlass java/util/Map +instanceKlass java/util/Dictionary +instanceKlass java/lang/ThreadGroup +instanceKlass java/lang/Thread$UncaughtExceptionHandler +instanceKlass java/lang/Thread$Constants +instanceKlass java/lang/Thread$FieldHolder +instanceKlass java/lang/Thread +instanceKlass java/lang/Runnable +instanceKlass java/lang/ref/Reference +instanceKlass java/lang/Record +instanceKlass java/security/AccessController +instanceKlass java/security/AccessControlContext +instanceKlass java/security/ProtectionDomain +instanceKlass java/lang/SecurityManager +instanceKlass java/lang/Throwable +instanceKlass java/lang/System +instanceKlass java/lang/ClassLoader +instanceKlass java/lang/Cloneable +instanceKlass java/lang/Class +instanceKlass java/lang/invoke/TypeDescriptor$OfField +instanceKlass java/lang/invoke/TypeDescriptor +instanceKlass java/lang/reflect/Type +instanceKlass java/lang/reflect/GenericDeclaration +instanceKlass java/lang/reflect/AnnotatedElement +instanceKlass java/lang/String +instanceKlass java/lang/constant/ConstantDesc +instanceKlass java/lang/constant/Constable +instanceKlass java/lang/CharSequence +instanceKlass java/lang/Comparable +instanceKlass java/io/Serializable +ciInstanceKlass java/lang/Object 1 1 124 100 1 10 12 1 1 10 7 12 1 1 1 10 100 12 1 1 1 10 12 1 1 8 1 10 12 1 1 10 100 12 1 1 1 10 12 1 10 12 1 1 10 7 12 1 1 1 10 12 1 10 12 1 7 1 10 100 12 1 1 1 10 12 1 1 10 12 1 100 1 8 1 10 12 1 3 8 1 100 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 3 1 1 +ciInstanceKlass java/io/Serializable 1 0 7 100 1 100 1 1 1 +ciInstanceKlass java/lang/System 1 1 826 10 100 12 1 1 1 9 7 12 1 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 9 12 1 1 10 7 12 1 1 1 11 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 100 1 8 1 10 12 1 10 100 12 1 1 1 10 7 12 1 1 1 18 12 1 1 10 100 12 1 1 1 100 1 10 12 1 1 10 100 12 1 1 1 10 12 1 10 7 12 1 1 1 9 100 12 1 1 1 10 100 12 1 1 1 11 7 12 1 1 1 10 12 1 1 10 7 12 1 1 1 100 1 10 10 12 1 1 8 1 10 12 1 8 1 10 12 1 9 12 1 1 8 1 10 7 12 1 1 1 10 12 1 1 100 1 8 1 10 9 12 1 1 8 1 10 12 1 1 10 100 12 1 1 1 8 1 10 12 1 100 1 10 12 1 8 1 10 12 1 10 12 1 1 100 1 10 12 10 12 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 7 12 1 1 1 10 12 1 100 1 100 1 8 1 10 12 1 10 12 1 1 7 1 10 12 1 100 1 8 1 10 10 12 1 100 1 8 1 10 8 1 10 7 12 1 1 8 1 10 12 100 1 8 1 10 10 12 1 1 10 7 12 1 1 1 100 1 18 12 1 100 1 9 100 12 1 1 1 10 12 1 100 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 7 1 10 12 1 9 7 12 1 1 1 10 7 12 1 1 1 10 12 1 10 12 1 10 7 12 1 1 1 100 1 8 1 10 9 12 1 9 12 1 10 12 1 10 100 12 1 1 10 12 1 10 12 1 1 8 1 10 12 1 1 8 1 11 12 1 10 12 11 12 1 1 11 7 12 1 1 1 11 7 12 1 1 11 12 1 1 7 1 11 12 1 10 12 1 8 1 10 12 1 1 8 1 8 1 8 1 8 1 11 12 1 10 12 1 10 12 1 10 12 1 8 1 10 12 1 1 8 1 9 12 1 8 1 10 7 12 1 1 8 1 7 1 9 7 12 1 1 1 10 12 1 7 1 9 12 10 9 12 7 1 10 12 8 1 10 12 1 1 8 1 10 7 12 1 1 10 12 1 10 12 1 1 11 7 12 1 1 10 12 10 7 12 1 1 1 9 12 1 1 100 1 8 1 10 12 1 1 10 7 12 1 1 1 7 1 10 12 1 1 8 1 10 8 1 8 1 8 1 8 1 10 10 7 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 100 12 1 1 1 10 100 1 8 1 10 10 10 12 1 1 10 12 1 1 8 1 10 12 1 8 1 8 1 10 12 1 10 7 12 1 1 1 10 12 1 1 7 1 10 10 12 1 10 12 1 9 12 1 1 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 100 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 15 10 100 12 1 1 1 16 15 10 12 1 1 16 15 10 12 16 1 1 1 1 1 1 1 100 1 100 1 1 +staticfield java/lang/System in Ljava/io/InputStream; java/io/BufferedInputStream +staticfield java/lang/System out Ljava/io/PrintStream; java/io/PrintStream +staticfield java/lang/System err Ljava/io/PrintStream; java/io/PrintStream +instanceKlass java/security/Provider +ciInstanceKlass java/util/Properties 1 1 690 10 7 12 1 1 1 100 1 10 7 12 1 1 7 1 10 12 1 9 12 1 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 10 12 1 1 8 1 10 7 12 1 1 1 7 1 10 12 1 10 12 1 1 8 1 10 12 1 7 1 10 12 10 12 1 1 9 12 1 1 10 12 1 1 7 1 10 12 1 10 12 1 10 12 1 1 100 1 8 1 10 12 1 10 12 1 10 12 1 1 10 12 1 100 1 3 10 10 7 12 1 1 1 10 12 1 10 12 1 1 8 1 10 12 1 10 12 1 1 8 1 10 7 12 1 1 10 12 1 1 10 12 1 10 12 1 1 100 1 10 12 1 10 12 1 1 7 1 9 7 12 1 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 7 1 9 12 1 1 7 1 7 1 10 12 1 7 1 11 7 12 1 1 1 11 12 1 1 11 7 12 1 1 1 11 7 12 1 1 1 11 12 1 1 11 12 1 11 12 1 10 12 1 1 8 1 10 12 1 10 7 12 1 1 10 12 1 7 1 10 10 12 1 10 12 1 100 1 10 10 12 1 1 10 100 12 1 1 9 100 12 1 1 10 12 1 1 10 100 12 1 1 1 100 1 100 1 100 1 10 8 1 8 1 10 12 1 10 12 1 10 12 1 1 10 10 12 1 1 10 12 1 1 7 1 10 10 12 1 11 7 12 1 1 10 7 12 1 1 1 8 1 10 100 12 1 1 11 11 7 1 8 1 10 100 1 11 10 12 1 10 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 10 12 1 10 12 1 10 12 1 10 10 12 1 1 10 12 1 1 10 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 10 11 12 1 4 11 10 12 1 1 10 100 12 1 1 11 12 1 10 12 1 1 10 100 12 1 1 10 12 1 100 1 8 1 10 12 1 10 10 100 12 1 1 1 100 1 6 0 10 12 1 1 11 100 12 1 1 1 10 12 1 10 12 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 100 1 1 +staticfield java/util/Properties UNSAFE Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +instanceKlass java/util/Hashtable +ciInstanceKlass java/util/Dictionary 1 1 36 10 7 12 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/util/Properties +ciInstanceKlass java/util/Hashtable 1 1 514 100 1 10 7 12 1 1 1 9 7 12 1 1 1 100 1 100 1 10 8 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 7 12 1 1 1 8 1 10 12 1 9 12 1 1 7 1 9 12 1 1 4 10 7 12 1 1 1 9 12 1 4 10 12 1 11 100 12 1 1 1 10 12 1 1 10 12 1 1 9 12 1 10 12 1 1 100 1 10 9 12 1 1 10 7 12 1 1 1 9 12 1 1 10 12 1 10 12 1 3 9 12 1 9 12 1 3 10 12 1 10 12 1 10 12 1 1 11 12 1 1 11 100 12 1 1 1 11 100 12 1 1 1 11 12 1 100 1 11 12 1 11 12 1 10 12 1 1 10 12 1 1 10 12 1 9 12 1 1 9 12 9 12 1 1 10 100 1 100 1 10 12 1 10 8 1 10 10 12 1 8 1 10 8 1 10 100 12 1 1 1 7 1 10 12 1 10 12 1 100 1 10 12 1 10 12 1 1 100 1 10 100 1 10 10 12 1 1 11 12 1 1 11 12 1 100 1 10 10 10 100 12 1 1 11 100 12 1 1 1 100 1 10 11 100 12 1 1 11 100 12 1 10 12 1 10 12 1 1 10 100 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 8 10 100 12 1 1 100 1 8 1 10 4 10 12 4 10 12 1 8 1 4 10 12 10 100 12 1 1 1 100 1 11 100 12 1 1 1 10 100 12 1 1 1 10 12 1 10 12 1 1 10 100 1 100 1 1 1 1 1 1 5 0 1 1 1 1 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/String 1 1 1404 10 7 12 1 1 1 8 1 9 7 12 1 1 1 9 12 1 1 9 12 1 1 9 12 1 1 10 12 1 10 12 1 1 10 12 1 1 9 12 1 10 7 12 1 1 1 10 7 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 7 12 1 1 1 9 7 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 9 7 12 1 1 10 12 9 7 12 1 1 10 12 1 1 3 10 7 12 1 1 1 7 1 11 12 1 1 11 12 1 11 12 1 1 10 7 12 1 1 1 10 12 1 1 9 7 12 1 1 1 10 12 1 1 10 12 1 11 12 1 1 10 12 1 1 10 12 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 100 1 100 1 10 12 1 10 12 1 10 12 1 1 100 1 10 12 1 1 100 1 10 12 1 1 10 12 1 1 10 10 12 1 100 1 100 1 100 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 7 12 1 1 7 1 11 11 12 1 11 12 1 10 12 1 1 10 12 1 10 12 10 12 1 1 10 10 7 12 1 1 1 10 7 12 1 1 10 12 1 1 10 7 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 100 1 10 12 1 1 10 12 10 12 1 10 12 1 1 10 100 12 1 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 3 3 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 100 1 10 8 1 10 12 1 1 10 12 1 8 1 10 12 1 1 10 12 10 12 1 8 1 10 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 10 100 1 10 10 12 1 10 12 1 10 12 1 10 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 100 1 10 10 12 1 1 10 12 1 10 12 1 1 10 10 12 1 1 10 10 12 1 100 1 10 10 12 1 1 10 12 1 1 10 7 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 11 7 1 11 12 10 12 1 10 12 1 1 10 12 1 1 10 10 12 1 10 12 1 9 12 1 1 11 7 12 1 1 1 10 10 12 1 10 12 1 1 10 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 10 12 1 1 10 12 10 10 12 1 10 12 10 10 12 10 10 12 1 10 12 1 10 12 10 10 12 10 12 1 10 12 10 12 10 10 12 1 10 12 1 1 10 12 1 10 10 12 1 10 7 12 1 1 1 10 12 1 1 10 10 7 12 1 1 1 11 10 12 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 10 10 12 1 10 12 1 10 12 1 10 100 12 1 1 10 12 1 100 1 100 1 8 1 10 10 10 12 1 8 1 10 12 1 3 3 7 1 10 10 12 1 10 12 1 10 12 1 1 10 12 1 1 11 7 12 1 1 1 7 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 8 1 10 12 1 1 10 12 1 11 100 12 1 1 1 11 100 12 1 1 11 12 1 1 10 12 1 10 12 1 1 10 10 7 12 1 1 1 10 12 1 10 12 1 10 10 12 10 12 1 1 10 10 12 1 10 10 12 1 10 10 12 1 10 10 12 1 10 12 1 1 10 10 12 1 8 1 10 12 1 1 18 12 1 1 11 100 12 1 1 1 100 1 3 18 12 1 18 12 1 8 1 10 100 12 1 1 1 11 12 1 1 10 12 10 10 12 1 10 11 12 1 1 10 12 1 1 11 12 1 18 3 11 10 12 1 11 11 10 12 1 10 12 1 1 8 1 10 12 1 10 12 1 10 12 1 1 10 10 12 1 11 100 12 1 7 1 100 1 10 12 1 7 1 10 10 7 12 1 1 1 100 1 10 7 1 10 10 12 1 10 10 12 1 8 1 10 10 12 1 8 1 8 1 10 12 1 10 12 1 10 10 12 10 100 12 1 1 10 7 12 1 1 10 7 12 1 1 8 1 10 12 1 10 9 12 1 10 12 9 7 12 1 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 8 1 10 100 12 1 1 1 10 12 10 12 1 1 10 12 10 10 12 10 12 7 1 9 12 1 1 7 1 10 100 1 100 1 100 1 100 1 1 1 1 1 1 5 0 1 1 1 1 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 10 100 12 1 1 1 16 15 10 12 16 15 10 12 15 10 12 15 10 12 1 1 1 1 100 1 100 1 1 1 +staticfield java/lang/String COMPACT_STRINGS Z 1 +staticfield java/lang/String serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +staticfield java/lang/String CASE_INSENSITIVE_ORDER Ljava/util/Comparator; java/lang/String$CaseInsensitiveComparator +ciInstanceKlass java/util/Iterator 1 1 53 100 1 8 1 10 12 1 1 10 7 12 1 1 1 11 7 12 1 1 1 11 12 1 1 11 7 12 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/io/ObjectInputStream$PeekInputStream +instanceKlass java/io/ObjectInputStream$BlockDataInputStream +instanceKlass java/io/ObjectInputStream +instanceKlass com/sun/javafx/iio/png/PNGIDATChunkInputStream +instanceKlass java/io/SequenceInputStream +instanceKlass sun/nio/ch/NioSocketImpl$1 +instanceKlass java/net/Socket$SocketInputStream +instanceKlass java/util/zip/ZipFile$ZipFileInputStream +instanceKlass java/io/FilterInputStream +instanceKlass java/io/FileInputStream +instanceKlass java/io/ByteArrayInputStream +ciInstanceKlass java/io/InputStream 1 1 184 100 1 10 7 12 1 1 1 100 1 10 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 100 1 3 10 12 1 1 100 1 8 1 10 12 1 10 7 12 1 1 1 3 100 1 8 1 10 10 7 12 1 1 1 7 1 10 11 7 12 1 1 1 10 12 1 1 11 12 1 1 11 7 12 1 1 1 11 12 1 1 7 1 10 7 12 1 1 1 5 0 10 12 1 10 12 1 1 100 1 10 8 1 10 8 1 8 1 10 12 1 1 10 100 12 1 1 1 100 1 1 1 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/misc/Unsafe 1 1 1287 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 100 1 10 10 12 1 1 10 12 1 1 5 0 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 100 1 100 1 10 8 1 10 12 1 1 10 12 1 8 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 5 0 5 0 5 0 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 100 1 8 1 10 100 1 10 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 9 7 12 1 1 9 12 1 100 1 10 10 12 1 1 8 1 10 8 1 8 1 10 12 1 1 9 7 12 1 1 1 9 100 1 9 7 1 9 7 1 9 9 100 1 9 7 1 9 100 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 5 0 5 0 9 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 8 1 3 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 100 1 10 100 1 10 9 12 1 5 0 10 12 1 1 5 0 10 12 1 5 0 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 5 0 5 0 5 0 10 12 1 1 10 12 1 10 12 1 10 12 10 100 12 1 1 8 1 100 1 11 12 1 1 8 1 11 12 1 1 10 100 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 7 1 10 12 1 9 12 1 7 1 9 12 1 7 1 9 12 1 7 1 9 12 1 7 1 9 12 1 7 1 9 12 1 7 1 9 12 1 7 1 9 12 1 7 1 9 12 1 10 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield jdk/internal/misc/Unsafe theUnsafe Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield jdk/internal/misc/Unsafe ARRAY_BOOLEAN_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_BYTE_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_SHORT_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_CHAR_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_INT_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_LONG_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_FLOAT_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_DOUBLE_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_OBJECT_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_BOOLEAN_INDEX_SCALE I 1 +staticfield jdk/internal/misc/Unsafe ARRAY_BYTE_INDEX_SCALE I 1 +staticfield jdk/internal/misc/Unsafe ARRAY_SHORT_INDEX_SCALE I 2 +staticfield jdk/internal/misc/Unsafe ARRAY_CHAR_INDEX_SCALE I 2 +staticfield jdk/internal/misc/Unsafe ARRAY_INT_INDEX_SCALE I 4 +staticfield jdk/internal/misc/Unsafe ARRAY_LONG_INDEX_SCALE I 8 +staticfield jdk/internal/misc/Unsafe ARRAY_FLOAT_INDEX_SCALE I 4 +staticfield jdk/internal/misc/Unsafe ARRAY_DOUBLE_INDEX_SCALE I 8 +staticfield jdk/internal/misc/Unsafe ARRAY_OBJECT_INDEX_SCALE I 4 +staticfield jdk/internal/misc/Unsafe ADDRESS_SIZE I 8 +instanceKlass jdk/internal/reflect/DelegatingClassLoader +instanceKlass java/security/SecureClassLoader +ciInstanceKlass java/lang/ClassLoader 1 1 1108 9 7 12 1 1 1 10 7 12 1 1 1 9 12 1 1 10 7 12 1 1 1 7 1 10 12 1 1 10 12 1 1 9 12 1 1 10 12 1 1 100 1 10 12 1 10 12 1 1 10 7 12 1 1 1 100 1 8 1 10 12 1 10 7 12 1 1 1 10 100 12 1 10 7 1 10 7 1 7 1 7 1 10 12 1 10 12 1 9 12 1 1 10 10 7 12 1 1 1 9 12 1 1 9 12 1 9 12 1 1 9 12 1 9 12 1 1 9 12 1 1 7 1 10 12 1 9 12 1 1 10 12 1 1 10 7 12 1 1 1 9 12 1 9 12 1 1 9 12 1 10 12 1 1 9 12 10 12 1 1 7 1 10 8 1 10 12 1 1 10 12 1 10 7 1 7 1 10 12 1 1 10 7 12 1 1 1 8 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 100 1 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 10 12 1 10 12 1 10 100 12 1 1 10 12 1 1 10 12 1 1 10 12 1 100 1 10 12 1 100 1 10 12 1 10 100 12 1 1 1 10 10 12 1 1 10 12 1 1 100 1 8 1 10 8 1 10 12 1 10 12 1 100 1 8 1 10 12 1 1 10 12 1 1 10 10 12 1 1 10 12 1 1 10 12 1 1 10 7 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 8 1 9 12 1 10 12 1 1 8 1 8 1 10 7 12 1 1 100 1 10 10 12 10 12 1 10 12 1 10 12 1 10 12 1 1 10 7 12 1 1 10 12 1 10 7 1 7 1 10 12 1 1 10 12 1 10 7 1 10 12 1 100 1 18 12 1 10 100 12 1 1 1 10 100 12 1 1 1 10 7 12 1 1 10 12 1 10 12 1 100 1 10 12 1 8 1 10 10 12 1 1 10 12 1 10 12 1 1 100 1 10 12 1 10 12 1 1 10 7 12 1 1 10 12 1 8 1 100 1 10 10 12 1 9 12 1 10 7 12 1 1 10 12 1 100 1 8 1 10 12 1 10 8 1 8 1 10 12 1 1 10 12 1 1 10 12 1 1 10 100 12 1 1 100 1 100 1 10 12 1 1 100 1 100 1 10 100 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 9 100 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 8 1 7 1 18 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 8 1 10 12 1 10 12 1 18 12 1 11 100 12 1 1 1 100 1 10 12 1 1 10 12 1 10 11 12 1 1 10 18 10 12 1 1 11 100 12 1 18 12 1 11 12 1 1 10 12 10 12 1 1 10 12 1 1 100 1 8 1 10 10 12 1 8 1 8 1 10 100 12 1 1 10 12 1 100 1 10 10 12 1 8 1 8 1 8 1 10 12 1 10 12 1 1 10 12 1 10 100 12 1 1 1 11 100 12 1 1 100 1 10 11 10 12 1 10 12 1 10 12 1 1 9 100 12 1 1 9 12 1 1 9 12 9 12 1 9 12 1 9 12 1 8 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 10 10 12 1 11 12 1 1 10 100 12 1 1 1 100 1 10 12 1 10 12 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 10 7 12 1 1 1 16 1 15 10 12 16 1 16 15 10 12 16 1 16 1 15 10 12 16 15 10 12 16 15 10 12 16 1 1 100 1 100 1 1 +staticfield java/lang/ClassLoader nocerts [Ljava/security/cert/Certificate; 0 [Ljava/security/cert/Certificate; +staticfield java/lang/ClassLoader $assertionsDisabled Z 1 +instanceKlass com/sun/scenario/effect/ImageData$1 +instanceKlass com/sun/scenario/effect/impl/ImagePool$1 +instanceKlass com/sun/prism/impl/PrismTrace$1 +instanceKlass java/util/logging/LogManager$Cleaner +instanceKlass com/sun/glass/ui/InvokeLaterDispatcher +instanceKlass com/sun/javafx/tk/quantum/PerformanceTrackerHelper$1$1 +instanceKlass com/sun/javafx/tk/quantum/QuantumToolkit$1 +instanceKlass com/intellij/rt/execution/application/AppMainV2$1 +instanceKlass java/util/concurrent/ForkJoinWorkerThread +instanceKlass jdk/internal/misc/InnocuousThread +instanceKlass java/lang/ref/Finalizer$FinalizerThread +instanceKlass java/lang/ref/Reference$ReferenceHandler +instanceKlass java/lang/BaseVirtualThread +ciInstanceKlass java/lang/Thread 1 1 954 10 7 12 1 1 1 9 12 1 1 10 7 12 1 1 10 12 1 10 100 12 1 1 8 1 10 100 12 1 1 1 9 12 1 9 12 1 1 9 12 1 1 7 1 10 12 1 1 10 12 1 100 1 8 1 10 12 1 9 100 12 1 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 9 12 1 1 10 12 1 10 12 1 10 12 1 3 8 1 100 1 5 0 10 7 12 1 1 1 10 12 1 9 12 1 10 12 1 1 10 12 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 9 12 1 1 10 12 1 1 10 7 12 1 1 10 100 1 8 1 10 7 1 10 12 1 9 12 1 1 10 100 12 1 1 1 10 10 12 1 1 9 100 12 1 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 10 12 1 10 12 1 10 7 12 1 1 9 12 1 10 7 12 1 1 1 10 12 1 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 9 100 12 1 1 1 9 12 1 9 12 1 9 100 12 1 1 10 12 1 10 100 12 1 1 1 10 12 1 10 12 1 8 1 9 12 1 9 12 1 1 5 0 100 1 10 10 100 12 1 1 100 1 10 100 1 10 7 1 10 8 1 10 12 1 1 10 7 12 1 10 12 1 10 12 1 100 1 8 1 10 10 12 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 7 1 9 12 1 1 100 1 10 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 9 12 1 1 11 7 12 1 1 9 12 1 1 9 12 1 1 10 100 12 1 1 10 12 1 1 9 100 12 1 1 1 10 100 12 1 1 10 12 1 10 12 1 10 12 9 12 1 10 12 1 100 1 10 10 12 1 100 1 10 10 12 1 1 9 12 1 1 10 12 1 11 100 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 10 12 1 1 9 12 1 9 12 10 12 1 8 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 9 7 12 1 1 1 8 1 10 9 12 1 7 1 8 1 10 10 12 1 8 1 10 12 1 1 9 12 10 12 8 1 10 10 12 1 10 12 1 8 1 10 12 1 10 8 1 10 100 12 1 1 10 12 1 1 100 1 8 1 10 8 1 10 10 7 12 1 1 9 12 1 9 12 1 1 10 12 1 1 10 10 12 1 10 12 1 100 10 7 12 1 1 1 9 12 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 11 100 12 1 1 1 9 100 12 1 1 1 10 100 12 1 1 1 100 1 10 12 1 100 1 10 12 1 10 12 1 1 11 100 12 1 1 18 12 1 1 11 100 12 1 1 1 11 12 1 1 18 12 1 1 11 12 1 1 100 1 10 12 1 1 8 1 9 12 1 10 12 1 10 12 1 1 11 100 12 1 1 1 9 12 1 1 10 12 1 1 1 1 1 3 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 1 15 10 100 12 1 1 1 16 15 16 1 16 1 15 10 12 16 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 100 1 100 1 1 +staticfield java/lang/Thread EMPTY_STACK_TRACE [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement; +ciMethod java/lang/Thread interrupt ()V 0 0 2 0 -1 +ciInstanceKlass java/lang/Runnable 1 1 11 100 1 100 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/Class 1 1 1640 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 1 10 12 1 1 8 1 10 12 1 8 1 8 1 10 12 1 1 10 7 12 1 1 1 10 12 1 7 1 10 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 100 12 1 1 10 12 1 10 12 1 10 12 1 8 1 10 12 1 8 1 10 12 1 8 1 8 1 10 12 1 1 10 7 12 1 1 1 18 12 1 1 11 7 12 1 1 1 8 1 8 1 8 1 10 7 12 1 1 1 11 12 1 1 8 1 10 12 1 10 11 100 12 1 1 1 11 100 12 1 1 1 11 8 1 18 8 1 10 12 1 10 7 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 9 100 12 1 1 1 10 100 12 1 1 1 10 12 1 10 7 12 1 1 1 10 12 1 1 18 12 1 1 10 7 12 1 1 1 10 7 12 1 10 12 1 1 10 7 1 100 1 10 12 1 1 9 12 1 1 100 1 8 1 10 12 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 7 1 10 12 1 7 1 100 1 10 10 12 1 1 10 12 1 1 100 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 9 12 1 1 10 12 1 10 12 1 1 9 12 1 1 9 12 1 1 10 12 1 1 10 100 1 10 12 1 10 12 1 10 12 1 1 10 9 12 1 10 12 1 8 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 9 7 12 1 1 1 10 100 12 1 1 10 12 10 12 1 10 12 1 1 10 100 12 1 1 10 12 1 10 12 1 1 10 100 12 1 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 7 1 10 10 10 12 1 1 10 12 1 1 10 12 10 10 12 1 1 100 1 8 1 10 10 12 1 1 10 12 1 100 1 11 12 1 10 100 12 1 1 10 12 1 10 12 1 10 100 12 1 1 10 10 12 1 1 8 1 10 12 1 10 12 1 1 8 1 9 12 1 10 12 1 10 12 1 10 12 1 10 12 100 1 9 12 1 10 12 1 9 12 1 10 12 1 10 12 1 10 12 1 10 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 100 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 7 1 10 10 12 1 1 10 12 1 1 10 12 1 1 10 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 7 1 10 10 12 11 100 12 1 1 10 12 1 10 12 1 10 7 12 1 1 1 10 12 1 1 10 10 12 1 1 7 1 10 10 12 1 1 10 100 12 1 1 1 100 1 100 1 10 12 1 1 10 12 1 10 10 12 1 1 10 12 1 10 12 1 10 12 1 10 100 12 1 1 1 11 100 12 1 1 10 12 1 10 12 1 9 12 1 10 12 1 1 10 12 1 9 12 1 1 100 1 10 9 12 1 1 10 12 100 1 10 12 1 9 12 1 10 100 12 1 1 1 10 12 1 10 12 1 10 100 12 1 1 1 10 12 1 10 12 10 12 1 1 100 1 10 8 1 10 12 1 11 11 12 1 1 11 100 12 1 1 11 12 1 8 1 10 12 1 10 12 1 1 9 12 1 9 12 1 1 10 7 12 1 1 9 12 1 10 12 1 1 10 10 12 1 10 7 12 1 1 1 10 100 12 1 1 10 100 12 1 1 9 12 1 1 10 12 1 9 12 1 10 12 1 10 12 1 1 9 12 1 1 9 12 1 10 12 1 10 12 1 1 9 12 1 100 1 10 10 12 1 1 7 1 10 12 1 1 100 11 100 1 9 12 1 1 9 12 1 100 1 10 12 1 9 12 1 1 9 12 1 10 12 1 10 12 1 1 9 12 1 100 1 10 10 12 1 1 10 10 12 1 1 10 12 10 10 12 1 9 12 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 8 10 7 8 1 18 8 1 8 1 10 12 1 9 12 1 9 12 1 1 10 12 1 7 1 7 1 10 12 1 9 12 1 1 7 1 10 10 12 1 10 7 1 9 12 1 8 1 10 12 1 7 1 10 12 1 10 12 1 1 9 12 1 100 1 8 1 10 10 7 12 1 1 1 10 12 11 7 12 1 1 1 10 12 1 100 1 10 12 1 1 10 8 1 8 1 10 12 1 1 9 100 12 1 1 11 12 100 1 11 100 12 1 1 9 12 1 10 100 12 1 1 1 10 100 12 1 1 10 12 1 1 9 12 1 9 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 11 12 1 100 1 11 12 1 10 100 12 1 1 1 10 12 1 11 12 1 10 100 12 1 1 1 10 12 1 10 100 12 1 1 1 11 12 1 11 12 1 1 10 12 1 10 12 1 1 9 12 1 1 9 100 12 1 1 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 7 12 1 1 1 10 12 1 8 1 10 12 1 10 12 1 10 12 1 100 1 10 12 10 100 12 1 1 1 11 100 12 1 1 1 10 12 1 1 10 12 1 18 12 1 1 11 12 1 1 18 11 12 1 18 12 1 11 12 1 10 12 1 1 10 12 1 10 12 1 10 12 10 12 1 8 1 10 12 1 7 1 9 12 1 1 100 1 100 1 100 1 100 1 1 1 3 1 3 1 3 1 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 100 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 10 7 12 1 1 1 16 15 10 12 16 15 11 12 16 1 16 15 16 15 10 12 16 16 15 10 12 16 15 16 1 15 10 12 16 1 1 1 1 1 1 1 1 100 1 1 100 1 100 1 1 100 1 100 1 1 +staticfield java/lang/Class EMPTY_CLASS_ARRAY [Ljava/lang/Class; 0 [Ljava/lang/Class; +staticfield java/lang/Class serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +ciInstanceKlass java/lang/Module 1 1 961 10 7 12 1 1 1 9 7 12 1 1 1 10 7 12 1 1 1 9 12 1 9 12 1 1 9 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 7 12 1 1 1 7 1 10 7 12 1 1 1 10 12 1 1 11 7 12 1 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 7 12 1 1 1 9 100 12 1 1 1 10 100 12 1 1 1 10 12 1 8 1 10 7 12 1 1 1 10 7 12 1 1 1 9 12 1 1 9 12 1 1 10 12 1 9 12 1 1 11 12 1 9 7 12 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 100 1 100 1 10 10 12 1 1 8 1 10 12 1 10 12 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 9 100 12 1 1 1 10 12 1 1 10 12 1 1 9 12 1 10 12 1 10 12 1 9 12 1 1 11 7 12 1 1 10 12 1 1 9 12 1 9 12 1 10 12 1 10 12 1 100 1 8 1 10 10 12 1 1 10 12 1 8 1 10 12 1 1 8 1 8 1 10 12 1 1 10 12 1 10 12 1 1 18 12 1 1 10 12 1 1 11 12 1 9 12 1 11 12 10 100 12 1 1 100 1 8 1 10 11 12 1 1 10 7 12 1 1 1 10 12 1 10 12 1 1 11 12 1 1 11 7 12 1 1 11 12 1 1 9 12 1 11 12 1 10 12 1 1 10 12 1 1 9 12 1 10 12 10 7 12 1 1 10 7 12 1 1 10 7 1 18 12 1 1 11 100 12 1 1 1 18 12 1 11 12 1 1 10 100 12 1 1 1 11 12 1 1 10 7 12 1 1 7 1 11 12 1 7 1 7 1 10 12 1 10 7 12 1 1 1 10 11 7 12 1 8 1 10 10 12 1 1 10 7 12 1 1 10 12 1 10 12 1 7 1 10 12 1 10 11 12 1 1 10 12 10 12 1 1 9 12 1 100 1 10 10 12 1 1 11 100 1 10 12 1 1 11 12 1 10 10 12 1 11 10 12 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 10 12 1 10 12 1 1 10 10 12 1 1 10 12 1 18 12 1 11 12 1 18 12 1 10 12 1 10 12 1 10 12 7 1 10 12 1 10 12 1 10 12 1 9 12 1 7 1 10 10 10 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 9 12 1 18 12 1 1 10 100 12 1 1 1 100 1 8 1 10 12 1 1 10 12 1 1 10 100 12 1 1 100 1 10 12 1 1 100 1 8 1 100 1 10 100 1 100 1 3 10 12 1 100 1 10 12 1 10 12 1 1 10 12 1 1 100 1 10 12 1 10 12 1 1 100 1 100 1 10 12 8 1 10 12 1 1 10 12 1 1 10 7 12 1 1 10 12 1 1 10 12 1 10 12 10 12 1 1 7 1 10 10 12 1 1 10 100 12 1 1 1 100 1 8 1 10 12 1 1 10 100 12 1 1 8 1 10 12 1 8 1 10 12 1 10 12 10 12 1 8 1 10 10 100 12 1 1 100 1 10 10 12 1 10 7 12 1 1 9 12 1 9 12 1 9 12 1 9 12 1 10 12 11 12 1 10 12 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 10 100 12 1 1 1 16 15 10 12 16 16 15 10 12 16 16 15 10 16 1 15 10 12 16 1 15 10 12 16 1 16 15 10 12 16 1 1 1 1 1 1 1 100 1 100 1 1 +staticfield java/lang/Module ALL_UNNAMED_MODULE Ljava/lang/Module; java/lang/Module +staticfield java/lang/Module ALL_UNNAMED_MODULE_SET Ljava/util/Set; java/util/ImmutableCollections$Set12 +staticfield java/lang/Module EVERYONE_MODULE Ljava/lang/Module; java/lang/Module +staticfield java/lang/Module EVERYONE_SET Ljava/util/Set; java/util/ImmutableCollections$Set12 +staticfield java/lang/Module $assertionsDisabled Z 1 +ciInstanceKlass java/lang/Thread$FieldHolder 1 1 49 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 1 9 12 1 1 9 12 1 1 9 12 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 100 1 1 1 +ciInstanceKlass java/lang/Thread$Constants 0 0 71 100 1 10 100 12 1 1 1 100 1 10 10 100 12 1 1 1 100 1 8 1 10 12 1 9 100 12 1 1 1 100 1 100 1 10 12 1 10 12 1 9 12 1 1 100 1 10 100 1 9 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/ThreadGroup 1 1 410 10 7 12 1 1 1 9 7 12 1 1 1 8 1 9 12 1 1 100 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 100 12 1 1 1 10 12 1 1 18 12 1 1 11 100 12 1 1 1 10 7 12 1 1 1 10 100 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 11 12 1 1 11 100 12 1 1 11 12 1 1 10 12 1 1 10 12 1 10 12 1 11 12 1 11 12 1 1 100 1 10 10 12 1 100 1 10 18 12 1 1 11 100 12 1 1 1 11 12 1 1 9 12 1 1 10 12 1 1 8 1 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 11 12 10 12 1 1 10 12 1 1 11 100 1 100 1 9 12 1 100 1 10 8 1 10 12 1 1 10 12 1 1 8 1 10 12 1 10 100 12 1 1 1 10 12 1 1 10 7 1 8 1 10 8 1 10 12 1 10 12 1 8 1 9 12 1 1 9 12 1 10 100 12 1 1 1 100 9 12 1 1 100 1 9 12 1 10 12 10 12 1 1 100 10 12 9 12 1 10 12 1 100 1 10 100 1 10 10 12 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 10 100 12 1 1 1 16 15 10 12 16 16 15 10 12 16 1 1 100 1 100 1 1 +staticfield java/lang/ThreadGroup $assertionsDisabled Z 1 +instanceKlass java/lang/VirtualThread +ciInstanceKlass java/lang/BaseVirtualThread 0 0 36 10 100 12 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 100 1 1 +ciInstanceKlass java/lang/VirtualThread 0 0 858 100 1 9 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 1 9 12 1 1 9 12 1 1 100 1 10 12 1 9 12 1 1 18 12 1 1 9 12 1 1 10 12 1 1 100 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 9 12 1 1 10 12 1 10 100 12 1 10 12 1 10 12 1 10 12 1 100 1 10 100 12 1 1 1 10 12 1 1 11 100 12 1 1 1 100 1 100 1 10 10 12 1 10 12 1 1 9 12 1 1 10 12 1 1 9 12 1 1 10 12 1 10 12 1 9 12 1 9 12 1 100 1 10 10 12 1 10 12 1 10 100 12 1 1 10 9 10 11 100 1 10 100 12 1 1 10 100 1 10 9 10 10 12 1 10 12 1 10 12 1 1 100 1 10 12 1 1 10 12 1 10 12 1 1 9 12 1 10 12 1 10 12 1 9 12 1 1 10 12 1 10 12 1 9 12 1 1 10 12 1 1 10 12 1 9 12 1 10 12 1 9 12 1 1 10 100 12 1 1 10 12 1 10 12 1 1 10 100 12 1 1 10 12 1 100 1 8 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 10 100 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 100 12 1 1 10 12 1 1 10 12 1 1 100 1 5 0 100 1 10 10 12 1 9 12 1 1 10 100 12 1 1 10 9 12 1 1 18 9 100 12 1 1 1 11 100 12 1 1 1 11 100 1 11 12 10 12 1 1 10 12 1 1 10 100 1 10 9 12 1 10 10 12 1 1 10 10 12 1 100 1 10 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 9 12 1 1 11 100 12 1 1 10 12 9 100 12 1 1 1 9 12 1 10 12 1 1 9 12 1 9 12 1 100 1 10 10 12 1 1 10 12 1 10 12 10 12 1 100 1 100 1 8 1 10 10 12 1 1 10 12 1 10 100 12 1 1 8 1 10 12 1 8 1 10 12 1 9 100 12 1 1 1 10 12 1 1 10 12 1 10 10 10 10 12 9 12 1 10 12 1 1 9 12 1 10 12 1 1 9 12 1 10 12 1 1 18 12 1 1 18 12 1 10 100 12 1 1 1 8 1 10 100 12 1 1 1 10 100 12 1 1 1 18 12 1 10 100 12 1 1 1 100 1 10 12 1 8 1 10 12 1 8 1 10 12 1 1 8 1 8 1 10 100 12 1 1 8 1 10 12 1 8 1 8 1 10 100 12 1 1 1 10 12 1 10 12 1 1 10 12 1 18 12 1 1 18 12 1 1 5 0 9 12 1 10 12 1 18 12 1 100 1 100 1 10 12 1 10 100 12 1 1 10 12 1 1 100 1 8 1 10 10 12 1 1 10 12 1 1 10 12 1 9 12 1 8 10 12 1 1 8 8 9 12 1 8 10 12 1 1 3 1 3 3 1 3 1 3 1 3 1 3 1 3 3 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 10 100 12 1 1 1 16 15 10 12 15 10 12 16 15 10 12 16 15 10 12 16 16 15 10 12 16 15 10 12 16 15 10 12 16 15 10 12 16 1 1 1 1 1 100 1 1 100 1 100 1 1 +instanceKlass java/lang/Exception +instanceKlass java/lang/Error +ciInstanceKlass java/lang/Throwable 1 1 404 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 1 9 12 1 9 12 1 1 9 12 1 10 12 1 1 9 12 1 1 10 12 1 1 10 12 1 100 1 7 1 10 8 1 10 12 1 1 8 1 10 100 12 1 1 10 10 12 1 100 1 8 1 10 10 12 1 1 10 7 12 1 1 10 12 1 8 1 9 7 12 1 1 1 10 12 1 1 7 1 10 12 10 12 1 10 7 12 1 1 1 7 1 10 12 10 12 1 10 12 1 7 1 10 10 7 12 1 1 1 11 7 12 1 1 1 10 12 1 1 10 12 1 1 8 1 10 12 1 10 12 1 1 8 1 8 1 10 12 1 1 10 12 1 8 1 8 1 9 12 1 1 10 12 1 1 100 1 10 11 12 1 8 1 8 1 10 7 12 1 1 8 1 10 12 1 8 1 100 1 10 12 1 9 12 1 1 10 12 1 10 7 12 1 9 12 1 1 10 12 1 1 100 1 8 1 10 12 1 10 100 12 1 1 10 12 1 1 100 1 10 100 12 1 1 1 10 12 1 11 100 12 1 1 1 11 100 12 1 1 11 12 1 8 1 10 12 1 1 8 1 10 10 9 100 12 1 1 1 8 1 10 12 1 1 11 10 100 1 8 1 10 11 12 1 1 8 1 9 12 1 10 100 12 1 1 11 9 12 1 1 11 12 1 1 100 10 12 1 10 12 1 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Throwable UNASSIGNED_STACK [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement; +staticfield java/lang/Throwable SUPPRESSED_SENTINEL Ljava/util/List; java/util/Collections$EmptyList +staticfield java/lang/Throwable EMPTY_THROWABLE_ARRAY [Ljava/lang/Throwable; 0 [Ljava/lang/Throwable; +staticfield java/lang/Throwable $assertionsDisabled Z 1 +ciInstanceKlass java/lang/ThreadDeath 0 0 21 10 100 12 1 1 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 +instanceKlass java/lang/AssertionError +instanceKlass java/lang/VirtualMachineError +instanceKlass java/lang/LinkageError +instanceKlass java/lang/ThreadDeath +ciInstanceKlass java/lang/Error 1 1 40 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/vm/ContinuationScope 0 0 50 10 100 12 1 1 1 10 100 12 1 1 1 100 1 9 100 12 1 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/vm/StackChunk 0 0 34 10 100 12 1 1 1 9 100 12 1 1 1 9 12 1 1 9 12 1 9 12 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/Boolean 1 1 151 10 7 12 1 1 1 9 7 12 1 1 1 10 12 1 1 10 12 1 8 1 10 7 12 1 1 9 12 1 1 9 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 100 1 100 1 10 12 1 1 9 100 12 1 1 9 12 10 100 12 1 1 1 10 12 1 1 8 1 10 7 12 1 1 1 9 12 1 1 100 1 100 1 100 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 +staticfield java/lang/Boolean TRUE Ljava/lang/Boolean; java/lang/Boolean +staticfield java/lang/Boolean FALSE Ljava/lang/Boolean; java/lang/Boolean +staticfield java/lang/Boolean TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Character 1 1 585 7 1 100 1 100 1 9 12 1 1 8 1 9 12 1 1 100 1 9 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 1 9 100 12 1 1 1 10 12 1 10 12 1 1 10 12 1 1 10 7 12 1 1 10 12 1 1 3 3 3 3 3 10 12 1 1 10 12 1 3 11 7 12 1 1 1 11 12 1 1 10 12 1 1 10 12 1 1 100 1 10 10 12 1 3 10 12 1 1 10 12 1 10 12 1 1 100 1 8 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 100 12 1 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 7 12 1 1 10 10 12 1 10 10 12 1 10 12 1 1 10 12 1 10 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 10 10 12 10 10 12 1 10 10 12 1 10 10 12 1 10 10 12 1 10 10 12 1 10 10 12 1 10 10 12 1 1 10 10 12 1 10 5 0 10 12 1 10 12 1 10 10 12 1 10 10 12 1 1 10 10 12 1 10 10 12 1 9 12 1 1 100 1 10 10 12 1 10 12 1 1 3 10 100 12 1 1 1 10 12 1 10 100 12 1 1 100 1 10 10 12 1 1 10 12 1 1 10 12 1 1 8 1 10 12 1 9 100 12 1 1 1 10 12 1 10 10 12 1 10 12 1 1 10 12 1 10 10 12 1 1 10 10 12 1 1 100 1 8 1 10 12 1 1 10 7 12 1 1 1 8 1 10 12 1 1 9 12 1 1 100 1 100 1 100 1 1 1 1 3 1 3 1 3 1 3 1 1 1 1 1 3 1 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 3 1 1 3 1 1 1 1 1 3 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 +staticfield java/lang/Character TYPE Ljava/lang/Class; java/lang/Class +staticfield java/lang/Character $assertionsDisabled Z 1 +ciInstanceKlass java/lang/Float 1 1 225 7 1 100 1 10 7 12 1 1 1 10 100 12 1 1 1 4 100 1 10 12 1 1 10 12 1 1 8 1 8 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 10 7 1 4 4 4 10 7 12 1 1 9 12 1 1 10 12 1 1 10 12 1 10 10 12 1 1 10 12 1 10 12 1 3 10 12 1 1 10 12 1 1 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 8 1 10 7 12 1 1 1 9 12 1 1 100 1 100 1 100 1 1 1 1 1 4 1 1 1 4 1 1 3 1 3 1 3 1 3 1 3 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 100 1 100 1 1 +staticfield java/lang/Float TYPE Ljava/lang/Class; java/lang/Class +instanceKlass java/math/BigDecimal +instanceKlass java/math/BigInteger +instanceKlass java/util/concurrent/atomic/Striped64 +instanceKlass java/util/concurrent/atomic/AtomicInteger +instanceKlass java/util/concurrent/atomic/AtomicLong +instanceKlass java/lang/Long +instanceKlass java/lang/Integer +instanceKlass java/lang/Short +instanceKlass java/lang/Byte +instanceKlass java/lang/Double +instanceKlass java/lang/Float +ciInstanceKlass java/lang/Number 1 1 37 10 7 12 1 1 1 10 100 12 1 1 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/Double 1 1 289 7 1 100 1 10 7 12 1 1 1 10 12 1 1 10 100 1 10 12 1 1 10 7 12 1 1 1 6 0 8 1 10 12 1 1 8 1 10 12 1 1 8 1 6 0 10 12 1 1 100 1 5 0 5 0 8 1 8 1 10 7 12 1 1 1 10 100 12 1 1 1 8 1 10 12 1 1 8 1 8 1 8 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 7 1 6 0 6 0 6 0 10 7 12 1 1 9 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 5 0 10 12 1 1 10 12 1 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 8 1 10 7 12 1 1 1 9 12 1 1 100 1 100 1 100 1 1 1 1 1 6 0 1 1 1 6 0 1 1 3 1 3 1 3 1 3 1 3 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 100 1 100 1 1 +staticfield java/lang/Double TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Byte 1 1 212 7 1 100 1 10 100 12 1 1 1 9 12 1 1 8 1 9 12 1 1 100 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 9 100 12 1 1 1 10 12 1 1 100 1 100 1 10 12 1 1 8 1 10 12 1 1 8 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 8 1 8 1 10 7 1 9 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 5 0 10 12 1 1 8 1 10 7 12 1 1 1 9 12 1 1 100 1 100 1 1 1 3 1 3 1 1 1 1 3 1 3 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Byte TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Short 1 1 221 7 1 100 1 100 1 10 100 12 1 1 1 10 12 1 1 100 1 100 1 10 12 1 1 8 1 10 12 1 1 8 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 9 12 1 1 8 1 9 12 1 1 100 1 10 12 1 1 10 12 1 10 100 12 1 1 1 10 100 12 1 1 1 9 100 12 1 1 1 10 12 1 10 12 1 1 10 8 1 8 1 10 100 1 9 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 3 3 5 0 10 12 1 1 8 1 10 7 12 1 1 1 9 12 1 1 100 1 100 1 1 1 3 1 3 1 1 1 1 3 1 3 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Short TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Integer 1 1 461 7 1 100 1 7 1 7 1 10 12 1 1 9 12 1 1 9 12 1 1 10 100 12 1 1 1 10 12 1 1 10 100 12 1 1 1 10 10 12 1 1 10 100 12 1 1 1 10 12 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 10 12 1 9 12 1 1 9 12 1 7 1 8 1 10 12 1 100 1 10 12 1 8 1 10 12 1 1 10 12 1 8 1 10 12 1 8 1 10 12 1 1 3 10 12 1 1 3 10 12 1 1 10 12 1 1 10 7 12 1 1 1 11 7 1 10 12 1 1 11 10 12 1 1 8 1 10 12 1 1 8 1 100 1 10 12 1 1 10 12 1 1 5 0 8 1 10 12 1 10 12 1 10 12 1 10 12 1 1 7 1 9 12 1 1 9 12 1 1 10 12 1 10 7 1 9 12 1 10 12 1 10 12 1 10 12 1 1 10 7 12 1 1 1 100 1 100 1 10 12 1 1 10 12 1 1 8 1 8 1 10 12 1 1 8 1 8 1 8 1 8 1 8 1 8 1 10 12 1 10 12 1 5 0 3 3 3 3 10 12 1 10 12 1 3 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 8 1 10 7 12 1 1 1 9 12 1 1 3 3 3 3 3 3 9 12 1 1 100 1 100 1 100 1 1 1 1 1 1 1 3 1 3 1 1 5 0 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 100 1 100 1 1 +staticfield java/lang/Integer TYPE Ljava/lang/Class; java/lang/Class +staticfield java/lang/Integer digits [C 36 +staticfield java/lang/Integer DigitTens [B 100 +staticfield java/lang/Integer DigitOnes [B 100 +staticfield java/lang/Integer sizeTable [I 10 +ciInstanceKlass java/lang/Long 1 1 523 7 1 100 1 7 1 100 1 10 12 1 1 9 12 1 1 9 7 12 1 1 1 10 100 12 1 1 1 10 12 1 1 10 100 12 1 1 1 10 10 12 10 12 1 10 12 1 10 12 1 5 0 5 0 7 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 100 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 10 12 1 5 0 5 0 9 12 1 1 9 12 1 5 0 100 1 8 1 10 12 1 8 1 10 12 1 8 1 8 1 10 12 1 1 5 0 10 12 1 1 5 0 10 12 1 1 10 12 1 1 10 100 12 1 1 1 11 100 1 10 12 1 1 11 10 12 1 1 8 1 10 12 1 1 8 1 100 1 10 12 1 1 10 12 1 8 1 8 1 11 12 1 1 10 12 1 10 12 1 10 12 1 5 0 5 0 9 7 12 1 1 1 10 12 1 10 12 1 1 8 1 8 1 10 12 1 1 8 1 8 1 8 1 8 1 8 1 8 1 10 12 1 10 7 1 9 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 100 1 100 1 10 12 1 1 10 12 1 1 5 0 10 12 1 10 12 1 5 0 5 0 5 0 10 12 1 1 10 12 1 5 0 5 0 10 12 1 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 8 1 10 7 12 1 1 1 9 12 1 1 100 1 100 1 100 1 1 1 1 5 0 1 1 1 1 3 1 3 1 5 0 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 100 1 100 1 1 +staticfield java/lang/Long TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass jdk/internal/vm/vector/VectorSupport 0 0 561 100 1 10 100 12 1 1 1 9 12 1 1 10 12 1 1 100 1 10 12 1 11 100 12 1 1 1 11 100 12 1 1 1 11 100 12 1 1 11 100 12 1 1 1 11 100 12 1 1 11 100 12 1 1 11 100 12 1 1 11 100 12 1 1 11 100 12 1 1 11 100 12 1 1 11 100 12 1 1 1 11 100 12 1 1 11 100 12 1 1 1 11 100 12 1 1 1 11 100 12 1 1 11 100 12 1 1 1 11 100 12 1 1 100 1 10 12 1 1 11 100 12 1 1 11 100 12 1 1 11 100 12 1 1 11 100 12 1 1 11 100 12 1 1 11 100 12 1 1 9 12 1 1 10 100 12 1 1 11 100 12 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 10 12 1 1 10 12 1 1 1 1 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass jdk/internal/vm/vector/VectorSupport$VectorShuffle +instanceKlass jdk/internal/vm/vector/VectorSupport$VectorMask +instanceKlass jdk/internal/vm/vector/VectorSupport$Vector +ciInstanceKlass jdk/internal/vm/vector/VectorSupport$VectorPayload 0 0 32 10 100 12 1 1 1 9 100 12 1 1 1 10 100 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/vm/vector/VectorSupport$Vector 0 0 28 10 100 12 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 +ciInstanceKlass jdk/internal/vm/vector/VectorSupport$VectorMask 0 0 28 10 100 12 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 +ciInstanceKlass jdk/internal/vm/vector/VectorSupport$VectorShuffle 0 0 28 10 100 12 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 +ciInstanceKlass jdk/internal/vm/FillerObject 0 0 16 10 100 12 1 1 1 100 1 1 1 1 1 1 1 1 +instanceKlass java/lang/ref/PhantomReference +instanceKlass java/lang/ref/FinalReference +instanceKlass java/lang/ref/WeakReference +instanceKlass java/lang/ref/SoftReference +ciInstanceKlass java/lang/ref/Reference 1 1 190 9 7 12 1 1 1 9 7 12 1 1 10 12 1 1 10 12 1 1 9 12 1 1 10 12 1 1 9 12 1 1 9 12 1 1 7 1 10 12 1 10 7 12 1 1 10 12 1 10 12 1 1 10 12 1 7 1 8 1 10 12 1 1 7 1 10 12 1 1 10 12 1 1 10 12 1 9 12 1 10 12 1 1 10 12 1 10 12 1 9 12 1 100 1 100 1 10 12 9 12 1 9 12 1 100 1 10 10 12 1 10 10 7 12 1 1 7 1 10 10 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 1 1 +staticfield java/lang/ref/Reference processPendingLock Ljava/lang/Object; java/lang/Object +staticfield java/lang/ref/Reference $assertionsDisabled Z 1 +instanceKlass java/io/ClassCache$CacheRef +instanceKlass java/util/ResourceBundle$BundleReference +instanceKlass sun/util/locale/provider/LocaleResources$ResourceReference +instanceKlass sun/util/resources/Bundles$BundleReference +instanceKlass sun/util/locale/LocaleObjectCache$CacheEntry +instanceKlass java/lang/invoke/LambdaFormEditor$Transform +ciInstanceKlass java/lang/ref/SoftReference 1 1 47 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 10 12 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 +instanceKlass com/sun/util/reentrant/ReentrantContextProvider$HardReference +instanceKlass com/sun/javafx/util/WeakReferenceQueue$ListEntry +instanceKlass java/util/logging/LogManager$LoggerWeakRef +instanceKlass java/util/logging/Level$KnownLevel +instanceKlass java/util/ResourceBundle$KeyElementReference +instanceKlass java/lang/ClassValue$Entry +instanceKlass java/lang/ThreadLocal$ThreadLocalMap$Entry +instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +instanceKlass java/util/WeakHashMap$Entry +ciInstanceKlass java/lang/ref/WeakReference 1 1 31 10 7 12 1 1 1 10 12 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/lang/ref/Finalizer +ciInstanceKlass java/lang/ref/FinalReference 1 1 50 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 100 1 8 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 +instanceKlass jdk/internal/ref/PhantomCleanable +instanceKlass jdk/internal/ref/Cleaner +ciInstanceKlass java/lang/ref/PhantomReference 1 1 39 10 100 12 1 1 1 10 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/ref/Finalizer 1 1 155 9 7 12 1 1 1 10 100 12 1 1 1 9 12 1 1 9 12 1 1 9 12 1 9 12 1 9 12 1 1 10 12 1 100 1 8 1 10 12 1 10 12 1 1 9 12 1 100 1 10 12 1 100 1 11 100 12 1 1 10 12 1 100 1 10 12 1 100 1 10 12 1 10 100 12 1 1 1 10 100 12 1 1 1 100 1 10 10 12 1 7 1 10 12 1 7 1 10 12 1 1 10 12 1 1 10 12 1 10 7 12 1 1 1 7 1 10 7 1 10 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/ref/Finalizer lock Ljava/lang/Object; java/lang/Object +staticfield java/lang/ref/Finalizer ENABLED Z 1 +staticfield java/lang/ref/Finalizer $assertionsDisabled Z 1 +instanceKlass java/lang/reflect/Executable +instanceKlass java/lang/reflect/Field +ciInstanceKlass java/lang/reflect/AccessibleObject 1 1 400 10 7 12 1 1 1 9 100 12 1 1 1 10 100 12 1 1 1 10 7 12 1 1 10 7 12 1 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 9 12 1 1 7 1 10 7 12 1 1 1 11 12 1 100 1 10 12 1 7 1 100 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 7 1 10 7 12 1 1 1 10 12 1 1 11 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 8 1 100 1 100 1 10 10 12 1 1 8 1 10 12 1 10 12 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 100 1 10 12 1 10 12 1 9 12 1 1 10 12 1 1 10 12 1 10 100 1 100 1 8 1 10 8 1 10 12 1 8 1 10 12 1 10 12 1 1 10 100 1 8 1 10 11 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 1 9 12 1 1 100 1 10 12 1 7 1 10 12 1 10 12 1 1 10 100 1 10 12 1 10 12 10 12 1 10 12 1 10 12 1 1 10 12 1 9 12 1 10 100 12 1 1 8 1 10 100 12 1 1 1 8 1 10 100 12 1 1 1 9 12 1 100 1 10 7 1 10 10 7 12 1 1 1 7 1 10 10 7 12 1 1 1 7 1 9 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/reflect/AccessibleObject reflectionFactory Ljdk/internal/reflect/ReflectionFactory; jdk/internal/reflect/ReflectionFactory +ciInstanceKlass java/lang/reflect/Method 1 1 481 9 7 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 9 12 1 1 10 12 1 1 10 12 1 1 10 100 12 1 1 10 7 12 1 1 1 9 12 1 1 9 12 1 9 12 1 1 9 12 1 9 12 1 9 12 1 1 9 12 1 9 12 1 1 9 12 1 9 12 1 9 12 1 1 100 1 8 1 10 12 1 10 12 1 9 12 1 1 8 1 10 7 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 9 100 12 1 1 1 10 12 1 1 10 12 10 7 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 7 12 1 1 1 10 12 1 1 10 100 1 10 100 12 1 1 1 10 7 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 100 12 1 1 1 10 12 1 10 8 1 10 12 1 10 12 1 100 1 8 1 8 1 8 1 10 12 1 10 12 1 1 10 12 1 1 10 10 12 1 1 10 12 1 11 100 1 10 12 1 9 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 11 7 12 1 1 1 11 12 1 9 12 1 1 10 12 1 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 9 12 1 1 10 7 12 1 1 1 10 7 12 1 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 1 11 100 12 1 1 1 10 100 12 1 1 1 100 1 100 1 100 1 10 12 1 10 12 1 1 10 12 1 100 1 8 1 10 12 1 10 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 8 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/lang/reflect/Constructor +instanceKlass java/lang/reflect/Method +ciInstanceKlass java/lang/reflect/Executable 1 1 548 10 7 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 1 11 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 8 1 10 10 12 1 1 10 12 1 1 10 100 12 1 1 1 18 12 1 1 11 100 12 1 1 1 8 1 8 1 8 1 10 100 12 1 1 1 11 12 1 1 100 1 8 1 8 1 10 12 1 100 1 8 1 10 12 1 8 1 11 100 12 1 1 1 100 1 11 100 12 1 1 1 11 12 1 8 1 18 8 1 10 12 1 10 12 1 1 18 8 1 10 12 1 100 1 10 12 1 10 12 1 11 12 1 10 12 1 1 8 1 8 1 10 12 1 1 10 12 1 1 10 10 12 1 100 1 10 10 12 1 10 12 1 1 10 100 12 1 1 10 12 1 10 12 1 10 12 1 1 10 100 12 1 1 10 12 1 10 12 1 10 100 12 1 1 1 10 12 1 8 1 10 12 1 10 12 1 3 100 1 8 1 10 12 1 10 12 1 10 10 12 1 10 12 1 1 8 1 8 1 8 1 9 12 1 10 12 1 100 1 8 1 9 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 10 12 1 100 1 10 12 1 10 12 1 1 100 1 10 100 12 1 1 1 100 1 10 7 12 1 1 1 10 12 1 1 11 7 12 1 1 10 7 12 1 1 10 100 12 1 1 1 10 12 1 1 9 12 1 10 12 1 1 10 12 1 10 12 1 1 9 100 12 1 1 1 10 100 12 1 1 1 10 12 1 10 12 1 1 9 12 1 10 10 10 10 100 12 1 1 1 10 12 1 9 12 1 10 12 1 1 9 12 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 15 10 100 12 1 1 1 16 15 16 1 16 1 15 10 12 16 1 100 1 1 100 1 100 1 1 +ciInstanceKlass java/lang/reflect/Constructor 1 1 439 10 100 12 1 1 1 10 100 12 1 1 9 7 12 1 1 1 10 12 1 1 10 12 1 1 10 100 12 1 1 9 12 1 1 10 7 12 1 1 1 9 12 1 1 9 12 1 1 9 12 1 9 12 1 1 9 12 1 9 12 1 1 9 12 1 1 9 12 1 100 1 8 1 10 12 1 10 12 1 9 12 1 1 10 7 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 7 1 100 1 8 1 10 10 12 1 10 12 1 10 12 1 1 10 12 1 1 9 100 12 1 1 1 10 7 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 10 12 1 1 10 12 1 10 100 12 1 1 1 8 1 10 10 12 1 100 1 8 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 9 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 11 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 8 1 9 12 1 1 10 7 12 1 1 1 10 7 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 9 100 12 1 1 10 12 1 10 12 1 10 12 1 100 1 8 1 10 10 12 1 1 10 12 1 10 10 12 1 1 10 12 1 1 10 100 12 1 1 1 11 100 12 1 1 1 10 12 1 1 9 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 +ciInstanceKlass java/lang/reflect/Field 1 1 442 9 7 12 1 1 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 9 12 1 1 10 12 1 1 10 12 1 1 10 100 12 1 1 10 7 12 1 1 1 9 12 1 1 9 12 1 9 12 1 9 12 1 1 9 12 1 1 9 12 1 9 12 1 1 9 12 1 1 100 1 8 1 10 12 1 10 12 1 9 12 1 1 9 12 1 10 12 1 10 7 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 100 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 100 1 10 100 12 1 1 100 1 10 8 1 10 12 1 1 10 12 1 1 8 1 10 12 10 12 1 8 1 8 1 10 11 100 1 9 12 1 10 12 1 1 10 12 1 1 11 7 12 1 1 1 10 12 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 1 10 12 1 10 100 12 1 1 10 12 1 10 12 1 10 12 1 9 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 100 12 1 1 10 12 1 1 11 100 1 10 12 1 100 1 10 100 12 1 1 1 10 100 12 1 1 1 9 12 1 10 100 12 1 1 1 11 100 12 1 1 1 10 12 1 1 10 12 1 1 9 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 100 1 1 +ciInstanceKlass java/lang/reflect/Parameter 0 0 226 10 100 12 1 1 1 9 100 12 1 1 1 9 12 1 1 9 12 1 1 9 12 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 100 1 10 10 12 1 1 11 100 12 1 1 1 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 10 12 1 8 1 8 1 10 100 12 1 1 1 10 12 1 10 12 10 12 1 8 1 10 12 1 9 12 1 1 10 12 1 1 9 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 10 12 1 10 100 12 1 1 1 10 12 1 1 11 100 12 1 1 10 100 12 1 1 100 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 9 12 1 100 1 10 11 12 1 1 11 12 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 +ciInstanceKlass java/lang/reflect/RecordComponent 0 0 196 10 100 12 1 1 1 9 100 12 1 1 1 9 12 1 1 9 12 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 1 9 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 100 12 1 1 10 100 12 1 1 9 12 1 1 10 100 12 1 1 1 11 100 12 1 1 1 10 9 100 12 1 1 1 10 100 12 1 1 1 9 12 1 1 10 100 12 1 1 1 10 12 1 1 11 100 12 1 1 10 100 12 1 1 100 1 9 12 1 9 12 1 1 9 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 100 1 10 10 12 1 10 12 1 1 8 1 10 12 1 10 12 1 9 12 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 100 1 1 +ciInstanceKlass java/lang/StringBuffer 1 1 468 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 1 9 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 1 9 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 10 12 1 1 10 12 1 10 10 100 12 1 1 1 10 10 12 1 1 9 12 1 1 10 100 12 1 1 10 100 1 8 10 100 12 1 1 1 8 10 12 1 8 1 10 12 1 10 12 1 10 100 12 1 1 1 10 100 12 1 1 1 7 1 10 12 100 1 8 1 10 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 10 12 10 12 1 10 12 1 10 12 1 10 12 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 7 1 10 12 1 9 7 12 1 1 1 9 7 1 9 12 1 1 100 1 100 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/StringBuffer serialPersistentFields [Ljava/io/ObjectStreamField; 3 [Ljava/io/ObjectStreamField; +instanceKlass java/lang/StringBuilder +instanceKlass java/lang/StringBuffer +ciInstanceKlass java/lang/AbstractStringBuilder 1 1 566 7 1 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 10 12 1 1 7 1 3 3 10 12 1 10 12 1 1 11 7 1 100 1 100 1 10 8 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 9 12 1 10 12 1 9 12 1 1 10 12 1 1 10 7 12 1 1 1 10 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 7 12 1 1 1 100 1 8 1 10 10 12 1 1 100 1 10 12 10 12 1 1 10 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 10 7 12 1 1 1 10 12 1 100 1 10 10 100 12 1 1 1 9 12 1 1 9 12 1 10 12 1 1 10 10 12 1 1 10 12 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 8 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 7 12 1 1 10 12 1 10 12 1 10 100 12 1 1 1 100 1 100 1 10 12 1 10 100 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 10 12 1 1 18 12 1 1 100 1 10 100 12 1 1 1 18 10 12 1 1 10 12 1 10 12 1 1 11 12 1 1 10 12 1 10 12 10 12 1 10 10 10 12 1 10 100 1 10 12 1 100 1 10 100 1 10 100 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 100 1 1 1 1 1 1 100 1 1 15 10 100 12 1 1 1 16 1 15 10 12 16 15 10 12 1 1 1 1 100 1 100 1 1 +staticfield java/lang/AbstractStringBuilder EMPTYVALUE [B 0 +ciInstanceKlass java/lang/StringBuilder 1 1 407 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 10 12 1 1 10 12 1 10 100 12 1 1 1 9 12 1 1 10 12 1 10 12 1 1 10 12 1 1 9 12 1 1 10 100 12 1 1 1 10 100 1 10 12 1 1 10 100 12 1 1 10 12 1 10 12 1 1 100 1 100 1 8 1 10 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 10 12 10 12 1 10 12 1 10 12 1 10 12 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 10 12 1 10 12 1 100 1 100 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/SecurityManager 0 0 576 10 100 12 1 1 1 9 100 12 1 1 1 10 100 12 1 1 1 100 1 8 1 10 12 1 10 12 1 1 10 100 12 1 1 1 10 100 1 10 100 1 10 9 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 10 100 12 1 1 100 1 8 1 10 9 12 1 1 9 12 1 8 1 9 12 1 100 1 10 8 1 10 12 1 1 10 12 1 10 12 1 1 100 1 10 10 12 1 1 100 1 8 1 10 12 1 8 1 8 1 8 1 8 1 8 1 8 1 10 12 1 8 1 8 1 8 1 8 1 8 1 10 100 12 1 1 1 10 12 1 1 8 1 100 1 8 1 10 8 1 8 1 8 1 8 1 8 1 10 100 12 1 1 8 1 100 1 8 1 8 1 10 8 1 10 12 1 100 1 8 1 10 10 12 1 1 10 12 1 10 12 1 10 12 1 10 100 12 1 1 1 10 12 1 10 100 12 1 1 11 100 12 1 1 1 18 12 1 1 11 100 12 1 1 1 18 12 1 1 11 12 1 1 18 18 11 12 1 18 12 1 11 12 1 1 9 12 1 1 9 12 1 9 12 1 9 12 1 100 1 10 100 12 1 1 10 12 1 10 12 1 18 12 1 18 10 100 12 1 1 1 18 12 1 10 12 1 18 18 8 1 10 12 1 9 12 1 1 11 100 12 1 1 1 8 1 100 1 10 12 1 10 12 1 1 10 12 1 1 9 12 1 1 10 12 1 10 12 1 1 8 1 100 1 10 9 12 1 8 1 10 12 1 8 1 100 1 10 10 100 12 1 1 10 100 1 9 100 12 1 1 1 11 12 1 1 10 12 1 11 12 1 10 12 1 100 1 10 10 12 1 1 10 12 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 10 100 12 1 1 1 16 15 10 100 12 1 1 1 16 1 16 15 10 12 16 1 15 10 12 16 15 11 100 1 16 1 16 1 15 10 12 16 15 10 12 16 15 10 12 1 16 1 15 11 12 1 15 10 12 16 15 10 16 1 1 1 1 100 1 100 1 1 +ciInstanceKlass java/security/AccessControlContext 1 1 374 9 7 12 1 1 1 9 12 1 1 10 100 12 1 1 1 8 1 10 100 12 1 1 1 10 7 12 1 1 1 9 12 1 9 12 1 1 9 12 1 1 10 7 12 1 1 100 1 10 12 1 11 100 12 1 1 1 11 12 1 11 12 1 11 12 1 1 7 1 11 12 1 1 10 12 1 10 7 12 1 1 1 9 100 12 1 1 1 10 100 12 1 1 1 11 100 12 1 1 1 10 7 1 100 1 8 1 10 12 1 10 12 1 1 7 1 10 7 12 1 1 1 9 12 1 9 12 1 9 12 1 9 12 1 1 9 12 1 1 9 12 1 9 12 1 10 7 12 1 1 1 9 12 1 10 12 1 1 10 12 1 1 8 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 100 1 10 10 12 1 1 10 100 12 1 1 1 10 8 1 10 100 12 1 1 8 1 10 100 12 1 1 8 1 8 1 10 12 1 8 1 10 12 1 8 1 10 12 1 10 12 1 10 12 1 1 8 1 8 1 100 1 10 12 1 10 12 1 1 100 1 10 12 1 8 1 10 12 1 10 12 1 10 8 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 11 10 12 1 10 12 1 1 10 10 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 +ciInstanceKlass java/security/AccessController 1 1 295 10 100 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 100 1 8 1 10 12 1 10 12 1 10 12 1 1 10 12 1 100 1 100 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 9 100 12 1 1 1 10 100 12 1 1 1 10 12 1 10 12 1 9 100 12 1 1 1 10 12 1 10 12 1 1 9 12 1 1 10 100 1 10 11 7 12 1 1 1 10 7 12 1 1 11 7 1 100 1 10 12 1 10 12 1 10 12 1 8 1 10 12 1 1 8 1 10 100 12 1 1 1 8 1 100 1 10 10 12 1 1 10 12 1 10 7 12 1 1 1 10 12 1 8 1 10 100 12 1 1 8 1 8 1 10 12 1 8 1 10 12 1 10 12 1 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 3 1 1 1 +staticfield java/security/AccessController $assertionsDisabled Z 1 +ciInstanceKlass java/security/CodeSource 1 1 395 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 9 12 1 1 10 100 12 1 1 10 100 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 100 1 10 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 100 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 10 10 12 1 1 10 100 12 1 1 1 10 12 1 10 12 1 10 12 1 8 1 10 12 1 10 12 1 10 12 1 1 10 12 1 8 1 10 12 1 1 10 100 1 10 10 12 1 1 8 1 10 12 1 10 12 1 10 12 1 8 1 8 1 9 12 1 1 100 1 8 1 10 12 1 10 12 1 1 8 1 10 12 1 8 1 8 1 8 1 10 100 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 100 1 100 1 10 12 1 10 12 10 12 1 1 10 100 12 1 1 10 12 1 100 1 10 12 10 8 1 10 12 1 10 12 1 10 12 1 1 100 1 10 12 1 1 100 1 100 1 8 1 8 1 10 10 12 1 1 10 100 12 1 1 1 100 1 10 12 10 12 1 1 11 100 12 1 1 10 10 12 1 11 10 12 1 8 1 100 1 10 12 1 10 12 1 1 10 12 1 11 12 1 1 11 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 +ciInstanceKlass java/security/ProtectionDomain 1 1 325 10 7 12 1 1 1 9 7 12 1 1 1 7 1 10 9 12 1 1 9 12 1 1 9 12 1 1 10 7 12 1 1 7 1 9 12 1 9 12 1 1 7 1 9 12 1 1 9 12 1 10 100 12 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 9 12 1 9 100 12 1 1 10 12 1 1 10 100 1 10 12 1 1 8 1 100 1 8 1 10 12 1 10 11 10 100 12 1 1 1 10 12 1 1 8 1 11 8 1 10 12 1 8 1 8 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 8 1 10 12 1 8 1 8 1 10 100 12 1 1 1 9 100 12 1 1 1 10 12 1 1 9 100 12 1 1 1 10 100 12 1 1 1 100 1 100 1 10 12 1 10 100 12 1 1 1 10 100 1 10 12 1 10 12 1 1 11 100 12 1 1 11 12 1 100 1 11 100 12 1 1 1 10 12 1 10 11 12 1 1 11 12 1 1 10 12 1 10 7 12 1 1 10 100 12 1 1 11 12 1 10 12 8 1 8 1 10 7 12 1 1 1 7 1 10 10 7 12 1 1 1 1 1 1 1 1 1 1 100 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 100 1 1 1 1 1 +staticfield java/security/ProtectionDomain filePermCompatInPD Z 0 +instanceKlass jdk/internal/loader/BuiltinClassLoader +instanceKlass java/net/URLClassLoader +ciInstanceKlass java/security/SecureClassLoader 1 1 102 10 7 12 1 1 1 7 1 10 12 1 9 7 12 1 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 7 1 10 7 1 10 12 1 7 1 10 12 1 11 7 12 1 1 1 7 1 11 12 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 +ciInstanceKlass java/net/URL 1 1 753 10 7 12 1 1 1 10 12 1 10 7 12 1 1 9 12 1 1 9 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 9 12 1 1 10 7 12 1 1 1 8 1 10 12 1 1 7 1 10 10 12 1 1 8 1 10 12 1 1 9 12 1 7 1 8 1 10 12 1 10 12 1 8 1 9 12 1 10 12 1 1 9 12 1 10 12 1 10 12 1 9 12 1 9 12 1 8 1 9 12 1 10 12 1 1 8 1 9 12 1 1 10 12 1 1 10 7 12 1 1 1 8 1 10 12 1 7 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 8 1 10 12 1 1 10 12 1 8 1 9 12 1 8 1 10 12 1 10 7 12 1 1 1 100 1 10 12 1 10 12 1 1 10 7 12 1 1 1 100 1 8 1 10 10 12 1 8 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 8 1 10 12 1 10 10 7 12 1 1 1 10 12 1 9 100 12 1 1 1 10 100 12 1 1 1 9 12 1 1 10 12 1 10 100 12 1 1 1 100 1 100 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 10 10 10 12 1 100 1 10 12 1 10 12 1 1 8 1 9 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 9 100 12 1 1 1 10 12 1 1 100 1 10 12 1 10 12 1 10 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 7 12 1 1 1 10 12 1 1 10 12 1 9 12 1 1 9 12 1 1 100 1 8 1 10 10 12 1 9 12 1 1 10 7 12 1 1 8 1 10 7 12 1 1 8 1 10 12 1 1 10 12 1 8 1 8 1 10 7 12 1 1 1 100 1 10 100 12 1 1 1 10 12 1 10 12 1 100 1 10 9 100 12 1 1 1 10 100 12 1 1 10 12 1 1 10 12 1 8 1 100 1 10 10 100 12 1 1 1 10 12 1 8 9 100 12 1 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 7 12 1 1 11 7 12 1 1 10 12 1 10 12 1 9 12 1 10 12 1 1 10 100 12 1 1 10 100 12 1 1 1 8 10 100 12 1 1 100 1 10 8 8 10 12 1 8 8 8 100 1 10 12 1 9 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 10 12 1 1 10 12 1 1 10 10 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 10 12 1 100 1 8 1 10 10 10 12 1 1 10 12 1 10 12 1 1 8 1 7 1 10 10 7 1 10 12 1 9 7 12 1 1 1 9 12 1 1 7 1 10 10 7 12 1 1 1 100 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/net/URL defaultFactory Ljava/net/URLStreamHandlerFactory; java/net/URL$DefaultFactory +staticfield java/net/URL streamHandlerLock Ljava/lang/Object; java/lang/Object +staticfield java/net/URL serialPersistentFields [Ljava/io/ObjectStreamField; 7 [Ljava/io/ObjectStreamField; +ciInstanceKlass java/net/URLClassLoader 0 0 600 10 100 12 1 1 1 100 1 10 12 1 9 100 12 1 1 1 10 100 12 1 1 1 9 12 1 1 100 1 10 12 1 9 12 1 1 10 12 1 10 10 12 1 10 100 12 1 1 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 100 1 10 12 1 1 10 12 1 1 10 12 1 1 100 1 100 1 10 100 12 1 1 1 100 1 8 1 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 11 100 12 1 1 1 11 100 12 1 1 1 11 12 1 1 100 1 11 12 1 11 100 12 1 1 10 12 1 11 12 1 11 12 1 1 11 10 12 1 1 10 12 1 1 10 12 1 1 100 1 10 12 1 10 12 1 1 100 1 100 1 10 12 1 1 100 1 10 10 12 1 1 10 100 12 1 1 10 12 1 100 1 100 1 10 8 1 10 12 1 1 8 1 10 12 1 1 10 10 12 1 8 1 8 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 100 1 100 1 8 1 10 12 1 10 12 1 1 10 12 1 1 100 1 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 100 12 1 1 1 10 12 1 1 8 1 10 12 1 1 11 100 12 1 1 1 9 100 12 1 1 1 10 100 12 1 1 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 10 100 12 1 1 1 8 1 10 12 1 1 100 1 10 10 12 1 10 12 1 1 10 12 1 1 100 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 100 1 10 100 12 1 1 9 100 12 1 1 1 10 12 1 8 1 100 1 8 1 10 12 1 10 12 1 8 1 10 12 1 10 12 1 9 12 1 1 10 100 12 1 1 10 12 1 10 12 1 10 100 1 8 1 10 100 1 10 12 1 10 100 12 1 100 1 10 12 1 10 12 1 100 1 10 10 100 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 +ciInstanceKlass java/util/jar/Manifest 1 1 336 10 7 12 1 1 1 7 1 10 9 7 12 1 1 1 7 1 10 9 12 1 1 9 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 11 7 1 11 12 1 1 10 12 1 1 10 100 12 1 1 1 100 1 100 1 10 8 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 11 100 1 10 12 1 10 12 1 1 11 12 1 1 10 12 1 11 12 1 1 11 100 12 1 1 1 11 100 12 1 1 11 12 1 1 100 1 10 12 1 8 1 11 12 1 100 1 10 12 1 1 11 12 1 10 12 1 10 12 1 10 100 12 1 1 1 8 1 10 12 1 1 10 9 100 12 1 1 1 10 12 1 1 10 100 12 1 10 12 1 10 12 1 9 100 12 1 1 1 8 1 10 12 1 8 1 8 1 7 1 10 12 1 10 12 1 10 12 1 1 100 1 8 1 10 12 1 1 8 1 10 10 12 1 1 8 1 10 12 1 1 10 100 12 1 1 1 10 12 1 10 11 12 1 1 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 11 10 12 1 11 10 12 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/io/ByteArrayInputStream 1 1 96 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 1 9 12 1 9 12 1 10 100 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 100 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/nio/DoubleBuffer +instanceKlass java/nio/ShortBuffer +instanceKlass java/nio/FloatBuffer +instanceKlass java/nio/IntBuffer +instanceKlass java/nio/CharBuffer +instanceKlass java/nio/LongBuffer +instanceKlass java/nio/ByteBuffer +ciInstanceKlass java/nio/Buffer 1 1 245 100 1 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 9 12 1 1 9 12 1 9 12 1 1 10 12 1 1 10 12 1 1 10 12 100 1 100 1 10 8 1 10 12 1 1 10 12 1 8 1 8 1 10 12 1 1 10 12 1 8 1 9 12 1 1 100 1 8 1 10 12 1 8 1 8 1 9 12 10 12 1 8 1 8 1 8 1 10 12 1 8 1 8 1 8 1 100 1 10 100 1 10 100 1 10 10 7 12 1 1 1 100 1 10 100 1 10 12 1 1 10 12 1 10 100 12 1 1 10 7 12 1 1 1 10 7 12 1 1 1 9 12 1 1 10 7 12 1 1 1 9 12 1 1 7 1 10 10 7 12 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 1 +staticfield java/nio/Buffer UNSAFE Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield java/nio/Buffer SCOPED_MEMORY_ACCESS Ljdk/internal/misc/ScopedMemoryAccess; jdk/internal/misc/ScopedMemoryAccess +staticfield java/nio/Buffer $assertionsDisabled Z 1 +instanceKlass javafx/scene/control/skin/VirtualFlow$ArrayLinkedList +instanceKlass com/sun/javafx/UnmodifiableArrayList +instanceKlass sun/security/jca/ProviderList$3 +instanceKlass java/util/AbstractList$SubList +instanceKlass java/util/Collections$SingletonList +instanceKlass java/util/Vector +instanceKlass javafx/collections/ObservableListBase +instanceKlass javafx/collections/FXCollections$EmptyObservableList +instanceKlass java/util/AbstractSequentialList +instanceKlass java/util/ArrayList$SubList +instanceKlass java/util/Arrays$ArrayList +instanceKlass java/util/Collections$EmptyList +instanceKlass java/util/ArrayList +ciInstanceKlass java/util/AbstractList 1 1 218 10 7 12 1 1 1 9 7 12 1 1 1 10 12 1 1 10 12 1 1 100 1 10 10 12 1 1 11 7 12 1 1 1 11 12 1 1 11 12 1 10 7 12 1 1 1 10 12 1 11 12 1 11 12 1 11 12 1 10 12 1 1 10 12 1 1 11 7 12 1 1 1 11 7 1 11 7 1 10 12 1 7 1 10 12 1 10 12 1 1 7 1 7 1 10 12 1 100 1 10 100 1 100 1 10 8 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 8 1 100 1 8 1 8 1 8 1 10 7 1 11 10 10 12 1 11 12 1 10 12 1 1 8 1 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 +instanceKlass java/util/EnumMap$Values +instanceKlass java/util/IdentityHashMap$Values +instanceKlass java/util/WeakHashMap$Values +instanceKlass java/util/AbstractQueue +instanceKlass java/util/HashMap$Values +instanceKlass java/util/ArrayDeque +instanceKlass java/util/AbstractSet +instanceKlass java/util/ImmutableCollections$AbstractImmutableCollection +instanceKlass java/util/AbstractList +ciInstanceKlass java/util/AbstractCollection 1 1 160 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 11 7 12 1 1 1 11 12 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 10 7 12 1 1 1 7 1 10 100 12 1 1 1 10 100 12 1 1 1 100 1 10 11 12 1 11 7 1 10 12 1 10 12 1 10 100 12 1 1 1 11 8 1 100 1 10 10 12 1 1 8 1 10 12 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/AssertionStatusDirectives 0 0 24 10 100 12 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass smeen/component/code/CodeArea$FindCodeBlockListToDragResult +instanceKlass smeen/logic/Executable$Result +instanceKlass smeen/logic/CodeBlockListSnapHandler$FindSnapResult +instanceKlass jdk/net/UnixDomainPrincipal +instanceKlass jdk/internal/reflect/ReflectionFactory$Config +instanceKlass jdk/internal/foreign/abi/UpcallLinker$CallRegs +ciInstanceKlass java/lang/Record 1 1 22 10 7 12 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/util/concurrent/ConcurrentHashMap 1 1 1210 7 1 7 1 3 10 12 1 1 3 100 1 10 7 12 1 1 1 100 1 10 100 12 1 1 1 100 1 11 12 1 1 11 12 1 11 12 1 1 9 12 1 1 9 12 1 1 9 12 1 10 7 12 1 1 1 7 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 4 10 12 1 9 12 1 10 12 1 1 100 1 10 5 0 10 12 1 10 12 1 1 5 0 10 12 1 1 10 12 1 9 12 1 1 10 12 1 1 9 12 1 9 12 1 1 10 12 1 1 9 12 1 10 12 1 1 9 12 1 1 10 12 1 1 100 1 10 100 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 100 1 10 12 1 1 7 1 100 1 8 1 10 12 1 10 12 1 1 10 12 1 1 11 100 12 1 1 10 12 1 1 11 12 1 1 11 100 12 1 1 1 11 100 12 1 1 1 11 12 1 100 1 11 12 1 11 12 1 10 12 1 1 10 12 1 1 9 12 1 1 10 100 12 1 1 1 9 10 12 1 1 9 12 1 10 12 1 1 5 0 9 12 1 1 7 1 10 12 1 9 12 1 1 7 1 10 12 1 9 12 1 7 1 10 100 1 10 10 12 1 1 8 1 10 12 1 10 12 1 1 11 100 1 10 12 1 10 100 12 1 1 1 8 1 10 100 12 1 1 1 8 1 10 12 1 8 1 10 12 1 10 12 1 1 10 100 12 1 1 10 12 1 10 12 1 10 12 1 9 12 1 9 10 12 1 9 12 1 1 11 100 12 1 1 1 11 7 12 1 1 1 100 1 10 12 11 100 12 1 1 10 11 7 12 1 10 12 1 100 1 10 12 1 100 1 10 10 9 7 12 1 1 1 10 12 3 10 100 12 1 1 9 12 1 10 12 1 1 9 12 1 1 9 12 1 10 12 1 1 10 100 12 1 1 9 12 1 9 7 12 1 1 10 12 1 1 10 12 1 3 9 12 1 9 12 1 10 12 1 1 7 1 9 3 9 12 1 100 1 10 12 1 9 12 1 10 12 1 9 12 1 10 12 1 9 12 1 10 100 12 1 1 1 100 10 12 1 100 1 5 0 10 100 12 1 1 100 1 10 12 1 1 10 12 1 10 12 1 100 1 10 12 1 10 100 1 100 1 10 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 1 100 1 10 12 1 10 10 12 1 100 1 10 12 1 10 10 12 1 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 10 100 1 10 10 100 1 10 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 10 100 1 10 10 100 1 10 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 100 1 10 12 1 10 10 12 1 10 7 12 1 1 1 10 12 1 7 1 7 1 10 12 1 9 12 1 1 9 12 1 1 10 12 1 1 8 10 12 1 1 8 8 8 8 7 10 12 1 1 10 12 1 100 1 8 1 10 7 1 100 1 100 1 1 1 5 0 1 1 3 1 3 1 1 1 1 3 1 3 1 3 1 1 1 1 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/util/concurrent/ConcurrentHashMap NCPU I 4 +staticfield java/util/concurrent/ConcurrentHashMap serialPersistentFields [Ljava/io/ObjectStreamField; 3 [Ljava/io/ObjectStreamField; +staticfield java/util/concurrent/ConcurrentHashMap U Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield java/util/concurrent/ConcurrentHashMap SIZECTL J 20 +staticfield java/util/concurrent/ConcurrentHashMap TRANSFERINDEX J 32 +staticfield java/util/concurrent/ConcurrentHashMap BASECOUNT J 24 +staticfield java/util/concurrent/ConcurrentHashMap CELLSBUSY J 36 +staticfield java/util/concurrent/ConcurrentHashMap CELLVALUE J 144 +staticfield java/util/concurrent/ConcurrentHashMap ABASE I 16 +staticfield java/util/concurrent/ConcurrentHashMap ASHIFT I 2 +instanceKlass com/sun/javafx/scene/KeyboardShortcutsHandler$CopyOnWriteMap +instanceKlass javafx/collections/FXCollections$EmptyObservableMap +instanceKlass java/util/TreeMap +instanceKlass java/util/concurrent/ConcurrentSkipListMap +instanceKlass java/util/stream/Collectors$Partition +instanceKlass java/util/IdentityHashMap +instanceKlass java/util/EnumMap +instanceKlass java/util/WeakHashMap +instanceKlass java/util/Collections$EmptyMap +instanceKlass java/util/HashMap +instanceKlass sun/util/PreHashedMap +instanceKlass java/util/ImmutableCollections$AbstractImmutableMap +instanceKlass java/util/concurrent/ConcurrentHashMap +ciInstanceKlass java/util/AbstractMap 1 1 193 10 7 12 1 1 1 10 7 12 1 1 1 11 7 12 1 1 1 10 11 12 1 1 11 7 12 1 1 1 11 12 1 1 7 1 11 12 1 10 12 1 1 11 12 1 100 1 10 11 12 1 11 7 1 10 12 1 1 11 12 1 9 12 1 1 100 1 10 12 1 9 12 1 1 100 1 10 11 11 12 1 1 11 12 1 100 1 100 1 11 12 1 8 1 100 1 10 10 12 1 1 8 1 10 12 1 10 12 1 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 100 1 1 1 1 1 +instanceKlass jdk/internal/loader/ClassLoaders$BootClassLoader +instanceKlass jdk/internal/loader/ClassLoaders$PlatformClassLoader +instanceKlass jdk/internal/loader/ClassLoaders$AppClassLoader +ciInstanceKlass jdk/internal/loader/BuiltinClassLoader 1 1 737 9 7 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 1 9 12 1 1 9 12 1 1 7 1 10 12 1 9 12 1 10 12 1 9 12 1 10 7 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 1 11 7 12 1 1 1 100 1 100 1 10 10 12 1 1 8 1 10 12 1 10 12 7 1 10 12 1 10 12 1 1 11 7 12 1 1 1 11 7 12 1 1 1 11 12 1 1 7 1 8 1 8 1 10 9 12 1 1 10 7 12 1 1 11 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 10 100 12 1 1 1 10 12 1 1 11 7 12 1 1 1 10 7 12 1 1 7 1 10 7 12 1 1 1 10 12 1 100 1 8 1 10 12 1 1 10 8 1 10 12 1 1 10 12 1 1 10 12 1 1 11 7 12 1 1 11 12 1 7 1 10 11 12 1 1 11 10 12 1 1 7 1 10 12 1 10 7 12 1 10 12 1 7 1 10 12 1 10 7 12 1 1 1 100 1 10 12 1 1 11 12 1 7 1 100 1 10 12 1 10 12 1 1 100 1 100 1 10 12 1 10 12 1 18 12 1 1 10 12 1 10 12 1 1 18 100 1 10 7 12 1 1 1 7 1 10 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 9 12 1 1 100 1 10 10 12 1 1 10 12 1 1 10 12 1 10 12 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 18 12 1 7 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 100 1 10 12 1 7 1 10 12 1 10 7 12 1 1 1 10 12 1 11 12 1 7 1 10 12 1 7 1 100 1 10 12 1 10 12 1 11 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 8 1 10 12 1 1 10 7 12 1 1 10 12 1 100 1 8 1 8 1 10 10 12 1 8 1 8 1 10 7 12 1 1 1 11 7 12 1 1 1 9 7 12 1 1 1 10 7 12 1 1 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 10 7 12 1 1 1 8 1 10 12 1 7 1 10 12 1 1 10 12 1 7 1 10 11 12 1 1 10 12 10 12 1 10 12 1 100 1 10 12 1 10 12 1 10 10 12 1 10 7 12 1 1 8 1 10 7 12 1 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 15 10 100 12 1 1 1 16 15 10 12 16 15 10 12 16 15 10 12 16 1 1 1 100 1 1 1 1 1 100 1 100 1 1 +staticfield jdk/internal/loader/BuiltinClassLoader packageToModule Ljava/util/Map; java/util/concurrent/ConcurrentHashMap +staticfield jdk/internal/loader/BuiltinClassLoader $assertionsDisabled Z 1 +ciInstanceKlass jdk/internal/loader/ClassLoaders$AppClassLoader 1 1 119 8 1 10 7 12 1 1 1 10 7 12 1 1 1 10 100 12 1 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 7 1 8 1 10 12 10 7 12 1 1 1 10 7 12 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 100 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 +ciInstanceKlass jdk/internal/loader/ClassLoaders$PlatformClassLoader 1 1 42 8 1 10 7 12 1 1 1 10 7 12 1 1 1 100 1 10 12 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 +ciInstanceKlass java/lang/ArithmeticException 1 1 26 10 100 12 1 1 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 +instanceKlass java/text/ParseException +instanceKlass javafx/scene/transform/NonInvertibleTransformException +instanceKlass javafx/css/CssParser$ParseException +instanceKlass java/lang/CloneNotSupportedException +instanceKlass java/security/PrivilegedActionException +instanceKlass java/net/URISyntaxException +instanceKlass com/sun/javafx/geom/transform/NoninvertibleTransformException +instanceKlass java/util/concurrent/ExecutionException +instanceKlass java/security/GeneralSecurityException +instanceKlass java/lang/InterruptedException +instanceKlass java/io/IOException +instanceKlass sun/nio/fs/WindowsException +instanceKlass java/lang/ReflectiveOperationException +instanceKlass java/lang/RuntimeException +ciInstanceKlass java/lang/Exception 1 1 40 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/util/concurrent/CompletionException +instanceKlass com/sun/javafx/geom/IllegalPathStateException +instanceKlass java/util/ConcurrentModificationException +instanceKlass java/util/NoSuchElementException +instanceKlass java/lang/IndexOutOfBoundsException +instanceKlass com/sun/javafx/geom/transform/SingularMatrixException +instanceKlass java/lang/UnsupportedOperationException +instanceKlass java/lang/SecurityException +instanceKlass java/lang/IllegalStateException +instanceKlass java/lang/IllegalArgumentException +instanceKlass java/lang/ArithmeticException +instanceKlass java/lang/NullPointerException +instanceKlass java/lang/IllegalMonitorStateException +instanceKlass java/lang/ArrayStoreException +instanceKlass java/lang/ClassCastException +ciInstanceKlass java/lang/RuntimeException 1 1 40 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/ArrayStoreException 1 1 26 10 100 12 1 1 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/ClassCastException 1 1 26 10 100 12 1 1 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/ClassNotFoundException 1 1 96 7 1 10 7 12 1 1 1 10 12 1 10 12 1 1 10 100 12 1 1 1 8 1 10 100 12 1 1 1 10 7 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 7 1 10 12 1 9 12 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/ClassNotFoundException serialPersistentFields [Ljava/io/ObjectStreamField; 1 [Ljava/io/ObjectStreamField; +instanceKlass java/lang/IllegalAccessException +instanceKlass java/lang/reflect/InvocationTargetException +instanceKlass java/lang/NoSuchFieldException +instanceKlass java/lang/NoSuchMethodException +instanceKlass java/lang/ClassNotFoundException +ciInstanceKlass java/lang/ReflectiveOperationException 1 1 34 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/IllegalMonitorStateException 1 1 26 10 100 12 1 1 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/BootstrapMethodError 0 0 45 10 100 12 1 1 1 10 12 1 10 12 1 10 100 12 1 1 1 10 100 12 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 +instanceKlass java/lang/UnsatisfiedLinkError +instanceKlass java/lang/IncompatibleClassChangeError +instanceKlass java/lang/BootstrapMethodError +instanceKlass java/lang/NoClassDefFoundError +ciInstanceKlass java/lang/LinkageError 1 1 31 10 7 12 1 1 1 10 12 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/NullPointerException 1 1 52 10 7 12 1 1 1 10 12 1 9 7 12 1 1 1 10 12 1 1 9 12 1 1 10 12 1 1 10 12 1 1 1 1 5 0 1 1 1 1 1 1 1 1 100 1 100 1 100 1 1 1 +ciInstanceKlass java/lang/InternalError 1 1 34 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/lang/StackOverflowError +instanceKlass java/lang/OutOfMemoryError +instanceKlass java/lang/InternalError +ciInstanceKlass java/lang/VirtualMachineError 1 1 34 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/NoClassDefFoundError 0 0 26 10 100 12 1 1 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/OutOfMemoryError 1 1 26 10 100 12 1 1 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/StackOverflowError 1 1 26 10 100 12 1 1 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/StackTraceElement 1 1 226 10 7 12 1 1 1 10 7 12 1 1 9 12 1 1 9 12 1 1 9 12 1 9 12 1 8 1 10 100 12 1 1 1 7 1 9 12 1 8 1 9 12 1 9 12 1 9 12 1 1 8 1 10 12 1 1 10 12 1 7 1 10 10 12 1 1 8 1 10 12 1 1 10 12 1 8 1 8 1 8 1 10 12 1 8 1 8 1 10 12 1 8 1 8 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 9 12 1 1 10 7 12 1 1 1 10 12 1 1 7 1 10 12 1 1 10 7 12 1 1 10 7 12 1 1 1 10 7 12 1 1 10 7 12 1 1 10 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 100 1 1 1 1 1 3 1 3 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer +ciInstanceKlass java/util/concurrent/locks/AbstractOwnableSynchronizer 1 1 32 10 7 12 1 1 1 9 7 12 1 1 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 +ciMethod java/util/concurrent/locks/AbstractOwnableSynchronizer setExclusiveOwnerThread (Ljava/lang/Thread;)V 256 0 128 0 0 +ciMethod java/util/concurrent/locks/AbstractOwnableSynchronizer getExclusiveOwnerThread ()Ljava/lang/Thread; 500 0 250 0 0 +ciInstanceKlass jdk/internal/vm/Continuation 0 0 570 9 100 12 1 1 1 9 12 1 9 12 1 100 1 100 1 10 12 1 1 8 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 9 100 12 1 1 1 11 100 12 1 1 1 10 100 1 9 12 1 1 9 12 1 1 9 12 1 1 10 8 1 10 12 1 9 12 1 1 10 11 12 1 1 100 1 10 100 12 1 1 1 10 12 1 1 10 12 1 10 12 1 1 11 12 1 1 9 12 1 1 10 12 1 1 18 12 1 1 10 100 12 1 1 1 100 1 10 12 1 11 100 12 1 1 1 10 12 1 9 12 1 10 12 1 1 100 1 8 1 10 12 1 10 12 1 1 9 12 1 1 11 12 1 1 9 12 1 8 1 10 11 12 1 1 11 12 1 1 10 12 1 1 10 12 1 1 9 12 1 10 12 1 10 10 12 1 8 1 10 12 1 8 1 8 1 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 9 12 1 11 12 1 100 1 10 12 1 10 12 1 1 9 12 1 1 100 1 10 12 1 1 9 12 1 1 100 1 8 1 10 10 12 1 10 12 1 11 100 12 1 1 10 100 1 10 12 1 8 1 9 12 1 10 12 1 1 9 12 1 1 10 100 12 1 1 8 1 8 1 8 1 8 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 8 1 10 12 1 1 9 12 1 1 10 100 12 1 1 1 8 1 10 100 12 1 1 1 10 12 1 8 1 100 1 8 1 10 9 12 1 1 8 1 10 100 12 1 1 10 100 12 1 1 8 1 8 1 10 12 10 100 12 1 1 1 10 100 1 10 100 12 1 1 1 18 11 100 12 1 1 1 18 12 1 11 12 1 1 100 1 10 100 12 1 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 10 100 12 1 1 10 12 1 8 1 10 12 1 10 100 12 1 1 1 8 9 12 1 1 10 100 12 1 1 1 100 1 100 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 15 10 100 12 1 1 1 16 1 15 10 12 16 15 11 100 12 1 1 1 16 1 16 1 15 10 12 16 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/misc/UnsafeConstants 1 1 34 10 100 12 1 1 1 9 7 12 1 1 1 9 12 1 9 12 1 1 9 12 1 9 12 1 1 1 1 1 1 1 1 1 +staticfield jdk/internal/misc/UnsafeConstants ADDRESS_SIZE0 I 8 +staticfield jdk/internal/misc/UnsafeConstants PAGE_SIZE I 4096 +staticfield jdk/internal/misc/UnsafeConstants BIG_ENDIAN Z 0 +staticfield jdk/internal/misc/UnsafeConstants UNALIGNED_ACCESS Z 1 +staticfield jdk/internal/misc/UnsafeConstants DATA_CACHE_LINE_FLUSH_SIZE I 0 +instanceKlass java/util/Locale$Category +instanceKlass com/sun/prism/shape/ShapeRep$InvalidationType +instanceKlass javafx/scene/input/ScrollEvent$VerticalTextScrollUnits +instanceKlass javafx/scene/input/ScrollEvent$HorizontalTextScrollUnits +instanceKlass com/sun/javafx/tk/FileChooserType +instanceKlass com/sun/scenario/effect/impl/state/LinearConvolveRenderState$PassType +instanceKlass java/math/RoundingMode +instanceKlass javafx/scene/Scene$DragDetectedState +instanceKlass com/sun/javafx/sg/prism/NGNode$RenderRootResult +instanceKlass com/sun/scenario/effect/impl/state/RenderState$EffectCoordinateSpace +instanceKlass com/sun/javafx/geom/Path2D$CornerPrefix +instanceKlass com/sun/scenario/effect/impl/Renderer$RendererState +instanceKlass com/sun/scenario/effect/Effect$AccelType +instanceKlass com/sun/javafx/geom/transform/BaseTransform$Degree +instanceKlass com/sun/prism/CompositeMode +instanceKlass com/sun/prism/Texture$Usage +instanceKlass com/sun/prism/Texture$WrapMode +instanceKlass com/sun/javafx/sg/prism/NodeEffectInput$RenderType +instanceKlass com/sun/scenario/effect/AbstractShadow$ShadowMode +instanceKlass com/sun/javafx/sg/prism/CacheFilter$ScrollCacheState +instanceKlass com/sun/javafx/scene/traversal/TraversalMethod +instanceKlass javafx/scene/input/TransferMode +instanceKlass com/sun/javafx/effect/EffectDirtyBits +instanceKlass javafx/scene/control/SelectionMode +instanceKlass javafx/scene/control/skin/ComboBoxMode +instanceKlass javafx/scene/shape/FillRule +instanceKlass javafx/scene/control/skin/TextInputControlSkin$Direction +instanceKlass javafx/scene/control/skin/TextInputControlSkin$TextUnit +instanceKlass javafx/animation/Animation$Status +instanceKlass com/sun/javafx/scene/control/inputmap/KeyBinding$OptionalBoolean +instanceKlass javafx/scene/AccessibleAction +instanceKlass com/sun/prism/paint/Paint$Type +instanceKlass com/sun/scenario/effect/Blend$Mode +instanceKlass com/sun/javafx/sg/prism/NGNode$DirtyFlag +instanceKlass com/sun/javafx/tk/quantum/SwipeGestureRecognizer$SwipeRecognitionState +instanceKlass com/sun/glass/ui/GestureSupport$GestureState$StateId +instanceKlass com/sun/javafx/tk/FocusCause +instanceKlass javafx/scene/text/FontSmoothingType +instanceKlass com/sun/javafx/cursor/CursorType +instanceKlass javafx/scene/control/ScrollPane$ScrollBarPolicy +instanceKlass javafx/scene/control/ContentDisplay +instanceKlass com/sun/javafx/geom/BaseBounds$BoundsType +instanceKlass java/lang/System$Logger$Level +instanceKlass com/sun/javafx/logging/PlatformLogger$Level +instanceKlass javafx/scene/text/FontWeight +instanceKlass javafx/scene/text/FontPosture +instanceKlass jdk/internal/logger/BootstrapLogger$LoggingBackend +instanceKlass javafx/scene/input/MouseButton +instanceKlass javafx/scene/Scene$DirtyBits +instanceKlass javafx/stage/PopupWindow$AnchorLocation +instanceKlass javafx/scene/input/KeyCombination$ModifierValue +instanceKlass smeen/global/SmeenConstants$MathFunction +instanceKlass java/util/stream/MatchOps$MatchKind +instanceKlass smeen/global/SmeenConstants$KeyPress +instanceKlass smeen/global/SmeenConstants$Type +instanceKlass javafx/geometry/Orientation +instanceKlass javafx/scene/AccessibleAttribute +instanceKlass javafx/geometry/Pos +instanceKlass java/lang/constant/DirectMethodHandleDesc$Kind +instanceKlass java/lang/invoke/VarHandle$VarHandleDesc$Kind +instanceKlass java/security/DrbgParameters$Capability +instanceKlass sun/security/util/KnownOIDs +instanceKlass javafx/scene/layout/Priority +instanceKlass javafx/scene/effect/BlurType +instanceKlass javafx/scene/paint/CycleMethod +instanceKlass javafx/css/SizeUnits +instanceKlass com/sun/javafx/css/Combinator +instanceKlass javafx/scene/control/OverrunStyle +instanceKlass javafx/geometry/HPos +instanceKlass com/sun/javafx/sg/prism/NGShape$Mode +instanceKlass javafx/scene/text/TextAlignment +instanceKlass javafx/scene/text/TextBoundsType +instanceKlass javafx/geometry/VPos +instanceKlass javafx/scene/shape/StrokeLineCap +instanceKlass javafx/scene/shape/StrokeLineJoin +instanceKlass javafx/scene/shape/StrokeType +instanceKlass javafx/scene/input/KeyCode +instanceKlass com/sun/javafx/application/PlatformImpl$HighContrastScheme +instanceKlass javafx/application/ConditionalFeature +instanceKlass javafx/css/StyleOrigin +instanceKlass javafx/scene/effect/BlendMode +instanceKlass javafx/geometry/Side +instanceKlass javafx/scene/layout/BackgroundRepeat +instanceKlass javafx/scene/AccessibleRole +instanceKlass com/sun/javafx/scene/LayoutFlags +instanceKlass com/sun/javafx/scene/DirtyBits +instanceKlass javafx/scene/DepthTest +instanceKlass javafx/scene/CacheHint +instanceKlass com/sun/javafx/scene/CssFlags +instanceKlass javafx/geometry/NodeOrientation +instanceKlass com/sun/prism/PixelFormat$DataType +instanceKlass com/sun/prism/PixelFormat +instanceKlass javafx/scene/image/PixelFormat$Type +instanceKlass com/sun/javafx/iio/ImageStorage$ImageType +instanceKlass javafx/stage/Modality +instanceKlass javafx/stage/StageStyle +instanceKlass com/sun/prism/impl/ps/BaseShaderContext$SpecialShaderType +instanceKlass com/sun/prism/impl/ps/BaseShaderContext$MaskType +instanceKlass java/time/temporal/ChronoUnit +instanceKlass java/time/temporal/ChronoField +instanceKlass sun/util/locale/provider/LocaleProviderAdapter$Type +instanceKlass com/sun/prism/GraphicsPipeline$ShaderModel +instanceKlass com/sun/prism/GraphicsPipeline$ShaderType +instanceKlass com/sun/prism/impl/PrismSettings$RasterizerType +instanceKlass java/lang/StackStreamFactory$WalkerState +instanceKlass java/lang/StackWalker$ExtendedOption +instanceKlass java/lang/StackWalker$Option +instanceKlass java/net/Proxy$Type +instanceKlass java/net/StandardProtocolFamily +instanceKlass java/util/regex/Pattern$Qtype +instanceKlass java/nio/file/AccessMode +instanceKlass java/nio/file/LinkOption +instanceKlass java/util/stream/Collector$Characteristics +instanceKlass java/util/concurrent/TimeUnit +instanceKlass java/util/stream/StreamShape +instanceKlass java/lang/invoke/MethodHandles$Lookup$ClassOption +instanceKlass java/lang/invoke/VarHandle$AccessType +instanceKlass java/lang/invoke/VarHandle$AccessMode +instanceKlass java/lang/invoke/MethodHandleImpl$Intrinsic +instanceKlass java/lang/invoke/LambdaForm$BasicType +instanceKlass java/lang/invoke/LambdaForm$Kind +instanceKlass sun/invoke/util/Wrapper +instanceKlass java/util/stream/StreamOpFlag$Type +instanceKlass java/util/stream/StreamOpFlag +instanceKlass java/io/File$PathStatus +instanceKlass java/lang/module/ModuleDescriptor$Requires$Modifier +instanceKlass java/lang/module/ModuleDescriptor$Modifier +instanceKlass sun/nio/fs/WindowsPathType +instanceKlass java/nio/file/StandardOpenOption +instanceKlass java/lang/Thread$State +ciInstanceKlass java/lang/Enum 1 1 195 9 7 12 1 1 1 9 12 1 1 10 7 12 1 1 1 10 12 1 1 100 1 10 10 12 1 1 10 12 1 100 1 10 10 7 12 1 1 10 12 1 1 18 12 1 1 10 100 12 1 1 1 10 12 1 1 11 7 12 1 1 1 100 1 8 1 10 12 1 100 1 100 1 10 8 1 10 12 1 1 10 12 1 1 8 1 10 12 1 10 100 1 8 1 10 10 12 1 1 10 100 12 1 1 1 100 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 100 1 100 1 1 100 1 1 1 1 1 1 1 1 1 1 1 15 10 100 12 1 1 1 16 15 10 12 16 1 1 100 1 100 1 1 +instanceKlass java/lang/invoke/DelegatingMethodHandle +instanceKlass java/lang/invoke/BoundMethodHandle +instanceKlass java/lang/invoke/DirectMethodHandle +ciInstanceKlass java/lang/invoke/MethodHandle 1 1 725 100 1 9 7 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 1 7 1 7 1 10 12 1 1 9 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 11 100 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 9 12 1 1 9 12 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 10 12 1 100 1 100 1 10 8 1 10 12 1 1 10 12 1 8 1 10 12 1 1 10 12 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 100 12 1 1 10 7 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 1 8 1 10 7 12 1 1 1 8 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 8 1 10 12 1 1 8 1 10 12 1 8 1 10 100 12 1 1 1 9 12 1 1 100 1 10 9 100 12 1 1 1 9 100 1 8 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 8 1 10 12 1 1 8 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 9 100 12 1 1 1 10 12 1 1 11 12 1 10 12 1 10 12 1 1 10 100 12 1 1 100 1 11 12 1 10 100 1 11 12 1 100 1 10 12 1 11 12 1 9 100 12 1 1 1 11 12 1 1 11 100 12 1 1 1 10 12 1 1 9 12 1 11 12 1 9 12 1 9 12 1 9 12 1 11 12 1 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 8 1 10 12 1 10 12 1 8 1 10 12 1 10 12 1 10 10 7 12 1 1 10 12 1 1 100 1 8 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 100 1 10 100 12 1 1 1 10 9 7 12 1 1 1 10 12 1 1 10 12 1 1 8 1 9 12 1 9 12 1 1 9 12 1 1 10 12 1 7 1 10 12 1 10 12 1 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 11 7 12 1 1 9 12 1 10 12 1 1 10 12 1 9 12 1 10 12 1 8 10 12 1 1 8 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 100 1 100 1 100 1 1 100 1 1 100 1 1 1 1 +staticfield java/lang/invoke/MethodHandle FORM_OFFSET J 20 +staticfield java/lang/invoke/MethodHandle UPDATE_OFFSET J 13 +staticfield java/lang/invoke/MethodHandle $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MethodType 1 1 779 7 1 10 7 12 1 1 1 9 12 1 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 9 7 12 1 1 8 1 10 100 12 1 1 1 9 7 1 9 7 1 10 12 1 1 100 1 10 8 1 10 12 1 1 10 12 1 10 12 1 1 100 1 8 1 10 12 1 100 1 10 10 12 1 10 12 1 1 10 12 1 1 11 7 12 1 1 1 9 12 1 11 12 1 1 7 10 12 1 1 10 12 1 1 7 1 7 1 10 7 12 1 1 1 10 12 1 10 12 1 9 12 1 1 10 7 12 1 1 10 12 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 9 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 8 1 8 1 10 12 1 1 9 12 1 1 100 1 10 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 8 1 10 12 1 1 10 100 12 1 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 9 12 1 10 12 1 10 10 12 1 1 10 12 1 9 12 1 1 10 12 1 1 11 12 1 1 10 12 1 1 7 1 10 12 10 12 1 10 12 1 100 1 8 1 8 1 8 1 10 12 1 10 12 1 10 12 1 10 10 12 1 11 12 1 1 11 12 1 10 100 12 1 1 1 9 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 9 12 1 1 7 1 10 12 1 10 12 1 1 9 100 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 1 8 1 10 7 12 1 1 1 11 12 1 1 9 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 100 12 1 1 100 1 10 12 1 1 11 100 12 1 1 18 12 1 1 11 12 1 1 18 12 1 11 12 1 100 1 11 100 12 1 1 10 12 1 100 1 10 12 1 10 100 12 1 1 10 12 1 1 9 12 1 1 9 100 12 1 1 1 10 100 12 1 1 1 9 12 1 10 100 12 1 1 10 12 1 100 10 12 1 1 10 12 1 10 7 1 7 1 9 12 1 1 100 1 100 1 100 1 1 1 5 0 1 1 1 1 1 1 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 10 100 12 1 1 1 16 15 10 12 16 16 15 10 12 16 1 1 1 1 100 1 1 100 1 1 100 1 100 1 1 +staticfield java/lang/invoke/MethodType internTable Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet; java/lang/invoke/MethodType$ConcurrentWeakInternSet +staticfield java/lang/invoke/MethodType NO_PTYPES [Ljava/lang/Class; 0 [Ljava/lang/Class; +staticfield java/lang/invoke/MethodType objectOnlyTypes [Ljava/lang/invoke/MethodType; 20 [Ljava/lang/invoke/MethodType; +staticfield java/lang/invoke/MethodType METHOD_HANDLE_ARRAY [Ljava/lang/Class; 1 [Ljava/lang/Class; +staticfield java/lang/invoke/MethodType serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +staticfield java/lang/invoke/MethodType $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/LambdaForm 1 1 1051 100 1 9 7 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 9 12 1 1 9 12 1 1 10 12 1 1 100 1 10 9 12 1 10 12 1 1 9 12 1 10 7 12 1 1 1 9 12 1 9 12 1 9 12 1 1 9 12 1 10 12 1 1 7 1 10 12 1 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 10 12 1 1 9 100 12 1 1 1 10 12 1 1 9 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 7 1 10 10 12 1 1 8 1 10 12 1 10 12 1 10 12 1 1 7 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 1 9 12 1 1 9 12 1 9 12 1 1 10 12 1 9 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 9 12 1 1 10 100 12 1 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 8 1 10 12 1 10 12 1 8 1 8 1 9 12 1 9 12 1 9 12 1 1 10 12 1 1 10 12 1 9 12 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 9 12 1 10 12 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 10 12 1 9 12 1 7 1 10 12 1 1 9 12 1 10 12 1 10 12 1 1 10 12 10 12 1 10 12 1 1 10 12 1 1 10 10 12 1 1 10 12 1 1 7 1 8 1 10 12 1 1 10 12 1 10 12 1 1 10 8 1 10 12 1 1 8 1 8 1 8 1 10 12 1 9 12 1 1 10 12 1 10 12 1 1 100 1 10 12 1 1 10 12 1 10 7 12 1 1 1 10 12 1 1 9 12 1 1 8 1 10 100 12 1 1 1 10 7 12 1 1 10 12 10 10 12 1 1 9 12 1 8 10 12 1 1 100 1 10 12 1 1 10 12 1 9 7 12 1 1 9 12 1 1 8 1 10 100 12 1 1 10 12 1 1 100 1 100 1 10 10 12 1 1 10 12 1 1 8 1 8 1 100 1 8 1 10 12 10 12 1 10 12 1 10 12 1 1 8 1 8 1 9 100 12 1 1 1 10 12 1 10 12 1 1 8 1 8 1 8 1 100 1 8 1 100 1 8 1 100 1 8 1 10 12 1 8 1 9 10 7 12 1 1 1 10 12 1 9 12 1 1 10 12 1 10 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 8 1 100 10 12 1 10 12 1 9 12 1 1 10 7 12 1 1 8 1 8 1 100 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 8 1 8 1 8 1 10 12 1 8 1 10 12 1 8 1 8 1 8 1 8 1 8 1 10 12 1 10 12 1 10 12 1 1 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 9 12 1 1 8 1 10 12 1 1 9 12 1 1 10 12 1 1 9 12 1 9 12 1 1 9 12 1 9 12 1 1 7 1 10 7 12 1 1 1 9 12 1 10 12 1 10 12 1 8 1 10 12 1 9 12 1 1 7 1 10 7 12 1 1 1 8 1 100 1 10 12 1 9 12 1 9 12 1 10 12 1 10 12 1 10 7 12 1 1 1 10 12 1 9 7 12 1 1 10 12 1 1 10 12 1 10 12 1 9 12 10 12 1 10 10 12 1 9 9 12 1 7 9 12 1 1 10 12 1 1 9 12 1 10 12 1 10 7 1 9 1 1 1 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 100 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/LambdaForm COMPILE_THRESHOLD I 0 +staticfield java/lang/invoke/LambdaForm INTERNED_ARGUMENTS [[Ljava/lang/invoke/LambdaForm$Name; 5 [[Ljava/lang/invoke/LambdaForm$Name; +staticfield java/lang/invoke/LambdaForm IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory +staticfield java/lang/invoke/LambdaForm LF_identity [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/LambdaForm LF_zero [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/LambdaForm NF_identity [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction; +staticfield java/lang/invoke/LambdaForm NF_zero [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction; +staticfield java/lang/invoke/LambdaForm createFormsLock Ljava/lang/Object; java/lang/Object +staticfield java/lang/invoke/LambdaForm DEBUG_NAME_COUNTERS Ljava/util/HashMap; null +staticfield java/lang/invoke/LambdaForm DEBUG_NAMES Ljava/util/HashMap; null +staticfield java/lang/invoke/LambdaForm TRACE_INTERPRETER Z 0 +staticfield java/lang/invoke/LambdaForm $assertionsDisabled Z 1 +instanceKlass jdk/internal/reflect/FieldAccessorImpl +instanceKlass jdk/internal/reflect/ConstructorAccessorImpl +instanceKlass jdk/internal/reflect/MethodAccessorImpl +ciInstanceKlass jdk/internal/reflect/MagicAccessorImpl 1 1 16 10 7 12 1 1 1 100 1 1 1 1 1 1 1 1 +instanceKlass jdk/internal/reflect/DirectMethodHandleAccessor +ciInstanceKlass jdk/internal/reflect/MethodAccessorImpl 1 1 38 10 7 12 1 1 1 10 100 12 1 1 1 100 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass jdk/internal/reflect/SerializationConstructorAccessorImpl +instanceKlass jdk/internal/reflect/DirectConstructorHandleAccessor$NativeAccessor +instanceKlass jdk/internal/reflect/DirectConstructorHandleAccessor +instanceKlass jdk/internal/reflect/NativeConstructorAccessorImpl +ciInstanceKlass jdk/internal/reflect/ConstructorAccessorImpl 1 1 27 10 7 12 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 1 1 +ciInstanceKlass jdk/internal/reflect/DelegatingClassLoader 1 1 18 10 7 12 1 1 1 100 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/reflect/CallerSensitive 0 0 17 100 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/reflect/NativeConstructorAccessorImpl 0 0 128 10 100 12 1 1 1 9 100 12 1 1 1 100 1 10 12 1 9 12 1 1 9 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 1 9 12 1 9 12 1 1 9 12 1 1 10 100 12 1 1 1 100 1 10 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 100 1 10 12 1 1 10 12 1 1 8 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/reflect/ConstantPool 1 1 142 10 100 12 1 1 1 9 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 100 12 1 1 1 8 11 7 12 1 1 1 10 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/reflect/UnsafeStaticFieldAccessorImpl 0 0 47 10 100 12 1 1 1 9 100 12 1 1 1 10 100 12 1 1 1 9 12 1 1 8 11 100 12 1 1 1 10 100 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass jdk/internal/reflect/MethodHandleFieldAccessorImpl +instanceKlass jdk/internal/reflect/UnsafeFieldAccessorImpl +ciInstanceKlass jdk/internal/reflect/FieldAccessorImpl 1 1 269 10 7 12 1 1 1 9 7 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 10 100 12 1 1 1 10 12 1 1 100 1 10 10 12 1 1 10 12 1 1 8 1 10 10 12 1 100 1 8 1 10 12 1 8 1 10 12 1 8 1 10 12 1 100 1 10 12 1 1 10 8 1 10 12 1 1 8 1 10 100 12 1 1 8 1 10 100 12 1 1 8 1 10 100 12 1 1 8 1 10 100 12 1 1 8 1 10 100 12 1 1 8 1 10 100 12 1 1 8 1 10 100 12 1 1 8 1 10 100 12 1 1 10 12 1 1 8 1 10 12 1 1 10 100 12 1 1 1 8 1 10 12 1 8 1 8 1 8 1 8 1 10 100 12 1 1 1 8 1 8 1 8 1 10 12 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass jdk/internal/reflect/UnsafeStaticFieldAccessorImpl +ciInstanceKlass jdk/internal/reflect/UnsafeFieldAccessorImpl 0 0 62 10 100 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 1 9 100 12 1 1 10 12 1 9 12 1 1 10 100 12 1 1 1 9 12 1 1 10 12 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/lang/invoke/VolatileCallSite +instanceKlass java/lang/invoke/MutableCallSite +instanceKlass java/lang/invoke/ConstantCallSite +ciInstanceKlass java/lang/invoke/CallSite 1 1 307 10 7 12 1 1 1 10 7 12 1 1 1 9 7 12 1 1 1 10 12 1 1 9 12 1 1 10 7 12 1 1 1 10 12 1 100 1 10 12 1 1 10 12 1 1 9 100 12 1 1 1 10 100 12 1 1 10 12 1 1 100 1 100 1 10 10 100 12 1 1 1 10 12 1 1 8 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 10 10 100 12 1 1 10 12 1 1 9 12 1 9 100 12 1 1 1 8 1 10 7 12 1 1 1 10 12 1 1 100 1 10 12 1 1 9 12 1 8 1 100 1 10 12 1 10 12 1 100 1 8 1 10 10 12 1 10 12 1 1 100 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 9 12 1 1 8 10 12 1 1 9 12 1 1 100 1 10 10 12 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 10 7 12 1 1 1 100 1 8 1 10 10 12 10 12 1 1 100 1 100 1 100 1 8 1 10 12 1 10 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 +staticfield java/lang/invoke/CallSite $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/ConstantCallSite 1 1 65 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 1 10 7 12 1 1 1 10 12 1 100 1 10 12 9 12 1 1 100 1 10 10 12 1 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/ConstantCallSite UNSAFE Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +instanceKlass java/lang/invoke/DirectMethodHandle$StaticAccessor +instanceKlass java/lang/invoke/DirectMethodHandle$Special +instanceKlass java/lang/invoke/DirectMethodHandle$Interface +instanceKlass java/lang/invoke/DirectMethodHandle$Constructor +instanceKlass java/lang/invoke/DirectMethodHandle$Accessor +ciInstanceKlass java/lang/invoke/DirectMethodHandle 1 1 911 7 1 7 1 100 1 7 1 7 1 10 7 12 1 1 1 10 7 12 1 1 1 100 1 10 12 1 10 12 1 1 10 7 12 1 1 10 12 1 1 10 12 1 10 12 1 7 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 7 12 1 1 1 10 12 1 9 12 1 1 100 1 10 9 12 1 1 9 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 7 12 1 1 1 10 12 1 10 12 1 1 8 1 10 12 1 1 7 1 10 12 1 7 1 10 10 12 1 10 12 1 10 12 1 10 7 12 1 1 1 10 12 1 1 7 1 10 12 1 10 12 1 7 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 8 10 100 12 1 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 9 7 12 1 1 1 7 1 10 12 1 10 7 12 1 1 1 10 12 1 10 12 1 1 9 12 1 1 100 1 10 8 1 10 12 1 1 10 12 1 10 12 1 10 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 10 7 12 1 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 8 1 9 7 12 1 1 1 8 1 9 12 1 9 12 1 8 1 9 12 1 9 12 1 8 1 9 12 1 9 12 1 8 1 10 12 1 10 12 1 1 9 12 1 1 7 1 10 12 1 1 100 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 1 7 1 10 12 1 1 10 12 1 10 12 1 1 7 1 10 12 1 1 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 9 12 1 1 10 7 1 9 12 9 12 1 10 7 12 1 1 1 10 12 1 7 1 7 1 7 1 9 12 1 1 10 7 12 1 1 1 10 12 10 12 1 100 1 10 12 1 10 12 1 1 8 1 9 12 1 9 12 1 10 12 1 1 9 12 1 1 10 100 12 1 1 1 9 12 1 1 9 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 9 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 9 12 1 1 10 12 1 1 9 7 12 1 1 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 9 12 1 8 1 9 12 1 1 9 12 1 1 10 12 1 10 12 1 1 9 7 1 10 12 1 9 12 1 1 10 12 10 12 1 10 12 1 10 12 1 10 8 1 8 1 8 1 8 1 10 12 1 1 9 12 1 1 10 12 1 10 100 12 1 1 1 8 9 12 1 1 10 12 1 1 8 1 8 8 9 12 1 8 1 8 8 8 8 8 1 8 10 12 1 7 1 10 12 1 8 1 8 1 10 12 1 10 12 1 10 12 1 10 12 1 1 7 1 1 1 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 3 1 3 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/DirectMethodHandle IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory +staticfield java/lang/invoke/DirectMethodHandle FT_UNCHECKED_REF I 8 +staticfield java/lang/invoke/DirectMethodHandle ACCESSOR_FORMS [Ljava/lang/invoke/LambdaForm; 132 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/DirectMethodHandle ALL_WRAPPERS [Lsun/invoke/util/Wrapper; 10 [Lsun/invoke/util/Wrapper; +staticfield java/lang/invoke/DirectMethodHandle NFS [Ljava/lang/invoke/LambdaForm$NamedFunction; 12 [Ljava/lang/invoke/LambdaForm$NamedFunction; +staticfield java/lang/invoke/DirectMethodHandle OBJ_OBJ_TYPE Ljava/lang/invoke/MethodType; java/lang/invoke/MethodType +staticfield java/lang/invoke/DirectMethodHandle LONG_OBJ_TYPE Ljava/lang/invoke/MethodType; java/lang/invoke/MethodType +staticfield java/lang/invoke/DirectMethodHandle $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MutableCallSite 0 0 63 10 100 12 1 1 1 10 12 1 9 100 12 1 1 1 10 12 1 10 12 1 1 9 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 +ciInstanceKlass java/lang/invoke/VolatileCallSite 0 0 37 10 100 12 1 1 1 10 12 1 10 100 12 1 1 1 10 12 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/lang/invoke/VarHandleByteArrayAsLongs$ByteArrayViewVarHandle +instanceKlass java/lang/invoke/VarHandleByteArrayAsInts$ByteArrayViewVarHandle +instanceKlass java/lang/invoke/VarHandleLongs$FieldInstanceReadOnly +instanceKlass java/lang/invoke/VarHandleBooleans$FieldInstanceReadOnly +instanceKlass java/lang/invoke/VarHandleInts$FieldInstanceReadOnly +instanceKlass java/lang/invoke/VarHandleReferences$FieldInstanceReadOnly +ciInstanceKlass java/lang/invoke/VarHandle 1 1 476 10 7 12 1 1 1 10 7 12 1 1 9 12 1 1 9 12 1 1 100 1 10 8 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 100 12 1 1 1 9 100 12 1 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 9 12 1 10 12 1 9 12 1 1 10 7 12 1 1 10 12 1 9 7 12 1 1 1 9 12 1 1 10 12 1 1 100 1 100 1 10 8 1 10 12 1 1 10 12 1 8 1 10 12 1 10 12 1 9 12 1 1 9 12 1 10 12 1 10 12 1 1 10 12 1 10 10 100 12 1 1 1 10 12 1 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 1 9 12 1 1 9 10 12 1 10 12 1 10 12 1 1 10 12 1 10 100 12 1 1 1 9 12 1 1 10 12 1 1 9 12 1 10 12 1 10 12 1 10 100 12 1 1 100 1 10 9 7 12 1 1 1 9 12 1 1 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 8 10 12 1 1 7 1 10 12 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 100 1 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 1 1 1 1 1 100 1 1 1 100 1 1 100 1 100 1 100 1 100 1 100 1 100 1 1 1 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 +staticfield java/lang/invoke/VarHandle VFORM_OFFSET J 16 +staticfield java/lang/invoke/VarHandle $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MemberName 1 1 756 7 1 7 1 100 1 9 12 1 1 10 7 12 1 1 1 9 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 7 12 1 1 1 10 12 1 9 7 12 1 1 10 12 1 100 1 100 1 10 12 1 8 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 9 12 1 1 8 1 10 100 12 1 1 1 7 1 10 10 12 1 1 100 1 100 1 10 12 1 9 12 1 1 100 1 8 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 8 1 8 1 8 1 10 100 12 1 1 1 10 12 1 9 12 1 1 3 10 12 1 10 12 1 10 12 1 10 10 7 12 1 1 1 10 12 1 10 12 1 10 12 1 10 12 1 7 1 8 10 12 1 1 10 12 1 1 8 1 9 100 1 8 9 100 1 10 12 1 1 10 12 1 10 12 1 8 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 1 100 1 10 12 1 1 10 12 1 8 1 10 12 1 10 12 1 8 1 10 12 1 1 10 12 1 1 100 1 10 12 1 1 10 12 8 1 8 1 100 1 10 12 1 10 100 12 1 1 1 100 1 10 12 10 12 1 10 12 1 10 12 1 10 12 1 10 10 12 1 10 12 1 10 12 1 3 10 12 1 3 10 12 1 3 3 3 3 3 3 3 100 1 10 12 1 10 7 12 1 1 1 10 12 1 3 9 12 1 10 12 1 1 3 10 12 1 10 10 7 12 1 1 1 10 12 1 1 10 100 1 10 10 12 1 10 12 1 10 12 1 10 10 12 1 1 10 12 1 10 12 1 10 12 1 100 1 10 10 10 12 100 1 10 10 10 12 1 1 10 12 1 1 10 10 12 1 8 10 7 1 10 12 1 10 7 1 10 12 1 10 12 1 10 12 1 10 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 100 1 10 12 1 1 100 1 8 1 10 7 1 10 12 1 10 12 10 12 1 1 10 12 1 10 12 1 8 1 8 1 8 1 8 1 10 12 1 10 12 1 10 12 1 1 8 1 8 1 10 12 1 8 1 10 10 12 1 10 12 1 8 1 8 1 10 10 12 1 8 1 10 100 12 1 1 1 8 1 10 12 1 10 12 1 1 10 12 1 8 1 8 1 8 1 8 1 100 1 10 8 1 8 1 8 1 8 1 10 12 1 100 1 100 1 100 1 10 100 1 10 100 1 10 100 12 1 1 1 9 7 12 1 1 1 100 1 100 1 1 1 1 1 1 1 3 1 3 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 1 3 1 3 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/MemberName $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/ResolvedMethodName 1 1 16 10 100 12 1 1 1 100 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/invoke/MethodHandleNatives 1 1 660 100 1 10 7 12 1 1 1 9 7 12 1 1 1 10 12 1 1 100 1 10 10 12 1 1 10 12 1 10 12 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 10 12 1 1 7 1 10 7 12 1 1 1 10 100 12 1 1 1 7 1 10 10 12 1 1 8 1 10 12 1 8 1 10 12 1 1 8 1 10 12 1 1 9 100 12 1 1 1 8 1 10 100 12 1 1 1 100 1 10 12 100 1 100 1 8 1 7 1 10 10 12 1 7 1 9 7 12 1 1 10 12 1 1 10 12 1 10 7 12 1 1 1 7 1 10 12 1 1 10 7 12 1 1 1 10 12 1 10 12 1 1 10 12 1 1 9 12 1 8 1 10 12 1 8 1 10 12 1 8 1 8 1 8 1 100 1 10 12 1 8 1 10 12 1 1 10 12 1 10 100 12 1 1 1 100 1 8 1 10 100 12 1 1 1 7 1 8 1 10 12 1 8 1 8 1 8 1 8 1 8 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 1 7 1 10 12 1 100 1 100 1 10 12 1 10 12 1 8 1 8 1 10 10 12 1 1 10 12 1 1 8 1 10 100 12 1 1 1 8 1 8 1 10 12 1 1 10 7 12 1 1 1 100 1 10 12 1 1 7 1 9 12 1 1 10 7 12 1 1 1 10 10 12 1 9 12 1 10 12 1 1 9 12 1 9 12 1 10 12 1 1 10 12 1 10 12 1 1 7 1 7 1 10 12 1 1 10 12 1 10 12 1 1 10 7 12 1 1 1 10 12 1 8 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 7 12 1 1 1 10 12 1 1 100 1 8 1 10 9 7 12 1 1 1 10 12 1 1 10 12 1 1 100 1 10 12 1 1 10 12 1 1 100 1 100 1 10 10 100 1 100 1 10 100 1 10 10 12 1 1 10 100 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 10 8 1 100 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 10 7 12 1 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 100 1 1 1 +staticfield java/lang/invoke/MethodHandleNatives $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MethodHandleNatives$CallSiteContext 1 1 49 10 7 12 1 1 1 7 1 10 10 7 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 +ciInstanceKlass jdk/internal/foreign/abi/NativeEntryPoint 0 0 183 10 100 12 1 1 1 9 100 12 1 1 1 9 12 1 1 100 1 8 1 10 12 1 9 12 1 1 10 100 12 1 1 1 9 100 12 1 1 1 100 1 8 1 10 12 1 8 1 100 1 10 100 12 1 1 1 10 12 1 9 12 1 1 18 12 1 1 10 100 12 1 1 1 10 12 1 1 100 1 8 1 10 10 12 1 1 10 12 1 9 12 1 1 18 12 1 1 10 100 12 1 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 10 100 12 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 10 100 12 1 1 1 16 1 15 10 12 16 1 16 15 10 12 1 1 100 1 1 100 1 100 1 1 +ciInstanceKlass jdk/internal/foreign/abi/ABIDescriptor 0 0 46 10 100 12 1 1 1 9 100 12 1 1 1 9 12 1 1 9 12 1 9 12 1 9 12 1 1 9 12 1 9 12 1 1 9 12 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/foreign/abi/VMStorage 0 0 76 10 100 12 1 1 1 9 100 12 1 1 1 9 12 1 9 12 1 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 100 1 10 8 1 10 12 1 1 10 12 1 8 1 8 1 10 12 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/foreign/abi/UpcallLinker$CallRegs 0 0 66 10 100 12 1 1 1 9 100 12 1 1 1 9 12 1 18 12 1 1 18 12 1 1 18 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 15 10 100 12 1 1 1 8 1 15 15 1 1 100 1 100 1 1 +ciInstanceKlass java/lang/StackWalker 1 1 271 9 7 12 1 1 1 7 1 10 7 12 1 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 11 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 1 100 1 8 1 10 12 1 10 12 1 10 12 1 10 7 12 1 1 9 12 1 1 9 12 1 1 9 12 1 1 9 12 1 1 10 12 1 1 9 12 1 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 11 12 1 1 100 1 8 1 10 10 100 12 1 1 9 12 1 1 10 12 1 1 10 7 12 1 1 1 10 100 12 1 1 1 18 12 1 1 100 1 8 1 10 8 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 9 7 12 1 1 11 100 12 1 1 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 15 10 100 12 1 1 1 16 15 10 12 16 1 1 1 1 1 1 1 100 1 100 1 1 +staticfield java/lang/StackWalker DEFAULT_EMPTY_OPTION Ljava/util/EnumSet; java/util/RegularEnumSet +staticfield java/lang/StackWalker DEFAULT_WALKER Ljava/lang/StackWalker; java/lang/StackWalker +instanceKlass java/lang/LiveStackFrameInfo +ciInstanceKlass java/lang/StackFrameInfo 0 0 142 10 100 12 1 1 1 9 100 12 1 1 1 9 100 1 9 12 1 1 11 100 12 1 1 1 9 12 1 1 11 12 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 11 12 1 11 12 1 1 11 12 1 10 12 1 1 9 12 1 1 10 12 1 1 10 100 12 1 1 10 12 1 1 11 12 1 1 9 12 1 1 10 100 1 10 12 1 9 12 1 1 10 12 1 1 100 1 8 1 10 12 1 10 100 12 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 100 1 1 1 1 1 1 +ciInstanceKlass java/lang/LiveStackFrameInfo 0 0 97 10 100 12 1 1 1 9 100 12 1 1 1 9 12 1 9 12 1 9 12 1 9 12 1 1 100 1 10 12 1 1 10 12 1 8 1 10 12 1 1 8 1 8 1 8 1 10 100 1 10 12 1 100 1 10 12 1 100 1 100 1 1 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 +instanceKlass java/lang/StackStreamFactory$CallerClassFinder +ciInstanceKlass java/lang/StackStreamFactory$AbstractStackWalker 1 1 381 7 1 100 1 3 10 7 12 1 1 1 10 7 12 1 1 10 7 12 1 1 1 9 12 1 1 10 12 1 1 9 12 1 1 9 12 1 1 9 12 1 1 9 12 1 10 7 12 1 1 1 10 12 1 1 10 100 12 1 1 9 12 1 1 9 12 1 1 10 12 1 1 9 7 12 1 1 1 10 12 1 1 10 12 1 9 12 1 1 10 7 12 1 1 1 10 12 1 1 9 12 1 1 9 100 12 1 1 1 100 1 10 8 1 10 12 1 1 10 12 1 8 1 10 12 1 1 10 100 12 1 1 1 100 1 8 1 10 12 1 8 1 10 12 9 7 12 1 1 1 10 7 12 1 1 9 12 1 8 1 5 0 8 1 8 1 9 12 1 1 10 12 1 1 18 12 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 10 12 1 9 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 8 1 10 12 1 10 12 1 10 12 1 10 12 1 1 8 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 100 12 1 1 1 10 12 1 10 12 1 9 12 1 8 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 8 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 100 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 10 100 12 1 1 1 16 15 1 1 1 1 1 100 1 100 1 1 +ciInstanceKlass jdk/internal/module/Modules 1 1 504 10 100 12 1 1 1 9 7 12 1 1 1 11 7 12 1 1 1 11 12 1 1 11 12 1 1 11 12 1 1 11 12 1 11 12 1 11 12 1 11 12 1 11 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 18 12 1 1 10 100 12 1 1 1 100 1 10 100 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 10 12 1 1 11 12 1 9 12 1 1 11 7 12 1 1 1 10 12 1 1 10 10 12 1 10 9 12 1 1 10 100 12 1 1 10 12 1 1 10 100 12 1 1 100 1 11 100 12 1 1 1 10 100 12 1 1 1 11 100 12 1 1 10 12 1 1 10 100 12 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 11 12 1 1 18 12 1 1 11 100 12 1 1 10 100 12 1 1 1 11 100 12 1 1 1 100 1 11 12 1 1 11 100 12 1 1 1 11 12 1 1 10 12 1 1 10 100 12 1 1 18 12 1 1 11 12 1 1 18 12 1 1 11 12 1 1 10 12 1 18 18 10 12 1 1 9 12 1 1 11 100 12 1 1 1 100 1 10 11 12 1 11 12 1 1 11 12 1 1 10 100 1 10 12 1 1 10 100 12 1 1 10 12 1 1 11 12 10 12 1 1 100 1 10 18 12 1 10 12 1 1 100 1 8 1 10 12 1 10 100 12 1 1 18 12 1 11 11 12 10 12 1 10 10 100 1 18 12 1 10 10 10 7 12 1 1 10 7 12 1 1 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 10 100 12 1 1 1 16 15 10 12 1 16 16 15 10 12 1 16 1 16 1 15 10 12 1 16 1 16 1 15 10 12 16 1 15 10 16 1 15 10 12 16 1 15 10 12 16 15 10 12 16 15 10 12 1 1 1 100 1 100 1 1 +staticfield jdk/internal/module/Modules JLA Ljdk/internal/access/JavaLangAccess; java/lang/System$2 +staticfield jdk/internal/module/Modules JLMA Ljdk/internal/access/JavaLangModuleAccess; java/lang/module/ModuleDescriptor$1 +staticfield jdk/internal/module/Modules $assertionsDisabled Z 1 +ciInstanceKlass jdk/internal/loader/ClassLoaders 1 1 183 10 100 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 100 12 1 1 1 9 7 12 1 1 1 9 12 1 1 9 12 1 1 7 1 11 100 12 1 1 1 100 1 11 12 1 1 11 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 100 1 100 1 10 7 12 1 1 1 9 12 1 1 10 12 1 1 7 1 10 12 1 1 10 12 1 7 1 8 1 10 7 12 1 1 1 10 12 1 1 7 1 10 12 1 10 12 1 10 12 1 8 1 10 7 12 1 1 8 1 8 1 10 12 1 7 1 10 12 1 10 12 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield jdk/internal/loader/ClassLoaders JLA Ljdk/internal/access/JavaLangAccess; java/lang/System$2 +staticfield jdk/internal/loader/ClassLoaders BOOT_LOADER Ljdk/internal/loader/ClassLoaders$BootClassLoader; jdk/internal/loader/ClassLoaders$BootClassLoader +staticfield jdk/internal/loader/ClassLoaders PLATFORM_LOADER Ljdk/internal/loader/ClassLoaders$PlatformClassLoader; jdk/internal/loader/ClassLoaders$PlatformClassLoader +staticfield jdk/internal/loader/ClassLoaders APP_LOADER Ljdk/internal/loader/ClassLoaders$AppClassLoader; jdk/internal/loader/ClassLoaders$AppClassLoader +ciInstanceKlass java/util/ArrayList 1 1 493 10 7 12 1 1 1 7 1 9 7 12 1 1 1 9 12 1 100 1 100 1 10 8 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 9 12 1 11 7 12 1 1 1 9 12 1 1 11 12 1 1 7 10 7 12 1 1 1 9 12 1 10 12 1 10 12 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 1 100 1 100 1 10 12 1 10 10 7 12 1 1 1 10 7 12 1 1 10 12 1 10 12 10 12 1 1 10 12 1 1 10 12 1 1 7 1 10 12 1 1 10 12 1 1 10 12 1 100 1 10 11 12 1 1 11 7 12 1 1 1 11 12 1 10 12 1 10 12 1 10 12 1 1 100 1 10 12 1 1 10 10 12 1 1 10 12 1 8 1 8 1 8 1 8 1 10 12 1 1 10 12 1 1 11 12 1 100 1 10 100 12 1 1 10 12 1 10 12 1 1 10 100 12 1 1 10 12 1 10 100 12 1 1 1 11 100 12 1 1 1 10 12 1 100 1 8 1 10 100 1 10 12 1 7 1 10 12 1 10 12 1 1 7 1 10 12 1 10 12 1 1 11 100 12 1 1 7 1 10 12 1 10 12 1 1 11 100 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 11 100 12 1 1 10 12 1 1 100 1 100 1 100 1 1 1 1 5 0 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 +staticfield java/util/ArrayList EMPTY_ELEMENTDATA [Ljava/lang/Object; 0 [Ljava/lang/Object; +staticfield java/util/ArrayList DEFAULTCAPACITY_EMPTY_ELEMENTDATA [Ljava/lang/Object; 0 [Ljava/lang/Object; +ciInstanceKlass java/util/concurrent/ForkJoinPool 1 1 1190 7 1 10 7 12 1 1 1 9 12 1 1 100 1 8 1 10 12 1 1 10 100 12 1 1 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 9 12 1 10 12 1 1 9 12 1 9 12 1 10 12 1 9 12 1 10 12 1 10 12 1 1 9 12 1 1 9 12 1 1 11 100 12 1 1 1 9 12 1 1 10 7 12 1 1 1 100 1 10 12 1 1 9 12 1 1 10 12 1 1 8 1 10 100 12 1 1 1 10 100 12 1 1 1 10 100 12 1 1 1 10 12 1 1 9 12 1 1 9 12 1 3 100 1 9 7 12 1 1 1 9 3 9 12 1 10 7 12 1 1 9 12 1 1 9 12 1 10 12 1 10 12 1 9 7 12 1 1 1 9 12 1 3 5 0 5 0 5 0 5 0 5 0 10 12 1 1 3 10 12 1 1 9 12 1 9 12 1 10 12 1 3 9 12 1 10 12 1 1 10 12 1 1 10 12 1 1 9 12 1 3 10 12 1 1 9 12 1 1 10 7 12 1 1 5 0 3 10 12 1 1 10 12 1 9 12 1 9 12 1 10 12 1 1 10 12 1 1 10 12 1 1 9 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 9 12 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 5 0 10 12 1 1 10 12 1 10 12 1 1 9 12 1 5 0 5 0 5 0 9 12 1 1 11 100 12 1 1 1 100 1 8 1 10 10 12 1 1 9 12 1 10 12 1 1 10 12 1 10 12 1 1 100 1 9 12 1 1 10 12 1 10 12 1 5 0 10 12 1 10 12 1 1 5 0 10 12 1 1 10 12 1 10 12 1 1 9 12 1 1 10 12 1 1 9 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 10 12 1 100 1 10 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 10 12 1 1 3 10 12 1 3 10 12 1 10 12 1 10 12 1 9 12 1 1 11 100 12 1 1 10 12 1 10 7 12 1 1 1 10 12 1 10 7 12 1 1 1 9 12 1 5 0 9 100 12 1 1 1 10 12 1 10 7 1 10 12 100 1 10 9 12 1 1 10 12 1 10 12 1 10 12 10 7 12 1 1 10 10 12 1 10 12 1 100 1 10 8 1 10 12 1 1 10 12 1 8 1 10 12 1 1 8 1 10 12 1 10 12 1 1 3 8 1 8 1 8 1 10 100 12 1 1 1 10 12 1 1 7 1 10 12 1 1 100 1 10 100 12 1 1 1 100 1 100 1 8 1 10 12 1 1 10 12 1 1 100 1 10 12 1 100 1 10 12 1 100 1 10 12 1 100 1 10 100 1 8 1 10 10 12 1 100 1 11 100 12 1 1 10 12 1 11 12 1 1 11 100 12 1 1 11 12 1 100 1 100 1 10 10 12 1 10 10 12 1 1 10 12 1 10 100 1 10 12 1 10 12 1 9 12 1 10 12 1 100 1 10 12 1 100 1 10 12 1 10 10 12 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 11 8 1 8 1 8 1 8 1 10 8 1 8 1 10 12 1 8 1 8 1 8 1 8 1 10 12 1 8 1 8 1 8 1 10 100 12 1 1 1 3 10 12 1 1 100 1 10 10 12 1 1 11 12 1 10 12 1 9 12 1 10 12 1 10 12 1 10 12 1 10 12 1 11 7 12 1 1 11 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 8 1 10 12 1 1 10 12 1 1 100 1 100 1 10 12 8 10 12 1 1 8 8 8 1 7 1 10 10 12 1 100 1 10 10 100 12 1 1 1 7 1 10 10 7 12 1 1 1 1 1 1 1 3 1 3 1 3 1 1 3 1 1 3 1 3 1 3 1 1 1 3 1 1 1 1 1 1 1 3 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/util/concurrent/ForkJoinPool defaultForkJoinWorkerThreadFactory Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory; java/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory +staticfield java/util/concurrent/ForkJoinPool common Ljava/util/concurrent/ForkJoinPool; java/util/concurrent/ForkJoinPool +staticfield java/util/concurrent/ForkJoinPool U Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield java/util/concurrent/ForkJoinPool CTL J 216 +staticfield java/util/concurrent/ForkJoinPool RUNSTATE J 48 +staticfield java/util/concurrent/ForkJoinPool PARALLELISM J 224 +staticfield java/util/concurrent/ForkJoinPool THREADIDS J 24 +staticfield java/util/concurrent/ForkJoinPool POOLIDS J 312 +ciMethod java/util/concurrent/ForkJoinPool managedBlock (Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V 766 0 5377 0 -1 +ciInstanceKlass jdk/internal/misc/InnocuousThread 1 1 250 100 1 10 12 1 1 8 1 10 12 1 1 9 7 12 1 1 1 10 7 12 1 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 100 1 10 12 1 10 100 12 1 1 1 7 1 10 12 1 10 12 100 1 10 100 1 10 9 12 1 1 10 12 1 10 12 1 1 10 12 1 9 12 1 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 9 12 1 10 12 1 1 100 1 8 10 12 1 9 12 1 10 12 1 9 12 1 10 12 1 1 9 12 1 1 10 12 1 10 12 7 1 7 1 10 12 1 10 12 1 10 12 1 1 7 1 8 1 10 12 1 1 8 1 8 1 8 1 8 1 10 12 1 1 10 12 1 1 8 1 10 12 1 100 1 10 12 1 100 1 100 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 100 1 1 +staticfield jdk/internal/misc/InnocuousThread UNSAFE Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield jdk/internal/misc/InnocuousThread THREAD_LOCALS J 72 +staticfield jdk/internal/misc/InnocuousThread INHERITABLE_THREAD_LOCALS J 76 +staticfield jdk/internal/misc/InnocuousThread INNOCUOUSTHREADGROUP Ljava/lang/ThreadGroup; java/lang/ThreadGroup +staticfield jdk/internal/misc/InnocuousThread ACC Ljava/security/AccessControlContext; java/security/AccessControlContext +staticfield jdk/internal/misc/InnocuousThread INHERITEDACCESSCONTROLCONTEXT J 64 +staticfield jdk/internal/misc/InnocuousThread CONTEXTCLASSLOADER J 60 +staticfield jdk/internal/misc/InnocuousThread threadNumber Ljava/util/concurrent/atomic/AtomicInteger; java/util/concurrent/atomic/AtomicInteger +instanceKlass jdk/internal/loader/NativeLibraries$CountedLock +instanceKlass java/util/concurrent/ConcurrentHashMap$Segment +ciInstanceKlass java/util/concurrent/locks/ReentrantLock 1 1 177 10 7 12 1 1 1 7 1 10 9 7 12 1 1 1 100 1 10 10 7 12 1 1 10 12 1 10 12 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 100 1 10 100 1 100 1 8 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 1 100 1 10 10 12 1 1 10 12 1 1 8 1 8 1 10 100 12 1 1 8 1 10 100 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 100 1 1 +ciMethod java/util/concurrent/locks/ReentrantLock lock ()V 30 0 32237 0 0 +ciMethod java/util/concurrent/locks/ReentrantLock unlock ()V 22 0 31030 0 352 +ciInstanceKlass java/util/concurrent/locks/LockSupport 1 1 105 10 100 12 1 1 1 9 7 12 1 1 1 9 12 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 100 12 1 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 100 1 10 10 12 1 1 10 12 1 1 10 12 1 1 8 1 10 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/util/concurrent/locks/LockSupport U Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield java/util/concurrent/locks/LockSupport PARKBLOCKER J 88 +ciMethod java/util/concurrent/locks/LockSupport unpark (Ljava/lang/Thread;)V 4 0 5122 0 160 +ciMethod java/util/concurrent/locks/LockSupport setCurrentBlocker (Ljava/lang/Object;)V 512 0 5376 0 -1 +ciInstanceKlass java/util/concurrent/locks/Condition 1 0 20 100 1 100 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 +ciMethod java/util/concurrent/locks/Condition await ()V 0 0 1 0 -1 +ciMethod java/util/concurrent/locks/Condition signal ()V 0 0 1 0 -1 +ciInstanceKlass java/util/concurrent/locks/ReentrantLock$NonfairSync 1 1 69 10 7 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 1 100 1 8 1 10 12 1 10 12 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 +instanceKlass java/util/concurrent/ThreadPoolExecutor$Worker +instanceKlass java/util/concurrent/CountDownLatch$Sync +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$Sync +instanceKlass java/util/concurrent/locks/ReentrantLock$Sync +ciInstanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer 1 1 349 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 1 9 12 1 1 10 7 12 1 1 1 9 12 1 10 12 1 1 7 1 10 9 12 1 9 12 1 1 10 7 12 1 1 1 10 12 1 10 12 1 1 9 12 1 9 12 1 9 12 1 1 10 7 12 1 1 1 9 12 1 10 12 1 1 7 1 10 7 12 1 1 1 9 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 100 1 10 12 1 1 10 12 1 10 12 1 10 10 12 1 1 10 100 12 1 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 10 12 1 3 100 1 10 10 12 1 1 100 1 10 10 12 1 10 12 1 100 1 10 10 12 1 100 1 10 10 12 1 1 100 1 10 10 100 12 1 1 1 10 12 1 1 8 1 10 12 1 1 10 12 1 8 1 10 12 1 8 1 8 1 8 1 10 10 100 12 1 1 1 10 12 1 1 100 1 8 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 12 1 1 8 10 12 1 1 8 8 100 1 1 1 5 0 1 3 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 +staticfield java/util/concurrent/locks/AbstractQueuedSynchronizer U Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield java/util/concurrent/locks/AbstractQueuedSynchronizer STATE J 16 +staticfield java/util/concurrent/locks/AbstractQueuedSynchronizer HEAD J 20 +staticfield java/util/concurrent/locks/AbstractQueuedSynchronizer TAIL J 24 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer isHeldExclusively ()Z 0 0 1 0 -1 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer tryAcquire (I)Z 0 0 1 0 -1 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer tryRelease (I)Z 0 0 1 0 -1 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer enqueue (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V 512 6 3520 0 0 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer getState ()I 256 0 128 0 0 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer compareAndSetState (II)Z 512 0 1620 0 96 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer setState (I)V 510 0 255 0 0 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer release (I)Z 24 0 38020 0 0 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer acquire (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;IZZZJ)I 28 70 5268 0 -1 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer acquire (I)V 0 0 1633 0 0 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer tryInitializeHead ()V 26 0 677 0 -1 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer casTail (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z 512 0 1280 0 320 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer signalNext (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V 92 0 7697 0 160 +instanceKlass java/util/concurrent/locks/ReentrantLock$NonfairSync +ciInstanceKlass java/util/concurrent/locks/ReentrantLock$Sync 1 1 127 10 7 12 1 1 1 10 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 1 10 12 1 100 1 8 1 10 12 1 10 12 1 1 10 12 1 1 10 12 1 10 12 1 100 1 10 10 12 1 10 12 1 1 100 1 10 7 1 10 12 1 10 12 1 10 100 12 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 100 1 1 1 1 +ciMethod java/util/concurrent/locks/ReentrantLock$Sync isHeldExclusively ()Z 4100 0 9507 0 96 +ciMethod java/util/concurrent/locks/ReentrantLock$Sync tryRelease (I)Z 24 0 17421 0 256 +ciMethod java/util/concurrent/locks/ReentrantLock$Sync initialTryLock ()Z 0 0 1 0 -1 +ciMethod java/util/concurrent/locks/ReentrantLock$Sync lock ()V 30 0 32237 0 0 +ciMethod java/util/concurrent/locks/ReentrantLock$NonfairSync initialTryLock ()Z 1024 0 16897 0 384 +ciInstanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject 1 1 247 7 1 9 7 12 1 1 1 10 7 12 1 1 1 9 7 12 1 1 1 9 12 1 9 12 1 10 12 1 1 10 12 1 1 10 12 1 1 100 1 10 10 12 1 1 10 7 12 1 1 1 9 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 3 9 12 1 1 9 12 1 1 9 7 12 1 1 10 12 1 1 10 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 10 7 12 1 1 1 100 1 100 1 10 12 1 10 12 1 10 12 1 1 10 12 1 10 10 12 1 1 10 7 12 1 1 1 10 12 1 1 100 1 5 0 10 100 12 1 1 10 12 1 10 12 1 10 7 12 1 1 1 100 1 10 10 12 1 1 100 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject await ()V 510 504 5381 0 2944 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject signal ()V 512 0 10591 0 1568 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject doSignal (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;Z)V 14 6 3520 0 0 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject enableWait (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;)I 512 0 5377 0 -1 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject canReacquire (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;)Z 512 0 5377 0 -1 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject unlinkCancelledWaiters (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;)V 0 0 3 0 -1 +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$ExclusiveNode +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$SharedNode +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode +ciInstanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$Node 1 1 84 10 7 12 1 1 1 9 7 12 1 1 1 9 7 12 1 1 1 10 7 12 1 1 1 9 12 1 9 12 1 10 12 1 1 10 12 1 1 10 12 1 1 10 12 1 8 1 10 12 1 1 8 1 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/util/concurrent/locks/AbstractQueuedSynchronizer$Node STATUS J 12 +staticfield java/util/concurrent/locks/AbstractQueuedSynchronizer$Node NEXT J 20 +staticfield java/util/concurrent/locks/AbstractQueuedSynchronizer$Node PREV J 16 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer$Node setPrevRelaxed (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V 512 0 1280 0 288 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer$Node getAndUnsetStatus (I)I 6 0 6147 0 128 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer$Node clearStatus ()V 512 0 5376 0 -1 +ciInstanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode 1 1 52 10 7 12 1 1 1 9 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 7 12 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 100 1 1 +ciInstanceKlass java/util/concurrent/ForkJoinPool$ManagedBlocker 1 0 18 100 1 100 1 1 1 1 100 1 1 1 1 1 100 1 1 1 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode ()V 512 0 5392 0 -1 +ciMethod java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode block ()Z 766 760 5373 0 -1 +ciMethod java/lang/Thread interrupted ()Z 514 0 15078 0 -1 +ciMethod java/lang/Thread isVirtual ()Z 228 0 11402 0 128 +ciMethod java/lang/Thread onSpinWait ()V 18 0 9 0 -1 +ciMethod java/lang/Thread currentThread ()Ljava/lang/Thread; 0 0 1 0 -1 +ciMethod jdk/internal/misc/Unsafe getAndBitwiseAndInt (Ljava/lang/Object;JI)I 512 0 6147 0 -1 +ciMethod jdk/internal/misc/Unsafe unpark (Ljava/lang/Object;)V 514 0 257 0 -1 +ciMethod jdk/internal/misc/Unsafe weakCompareAndSetInt (Ljava/lang/Object;JII)Z 4098 0 2049 0 -1 +ciMethod jdk/internal/misc/Unsafe compareAndSetInt (Ljava/lang/Object;JII)Z 512 0 256 0 -1 +ciMethod jdk/internal/misc/Unsafe compareAndSetReference (Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z 768 0 384 0 -1 +ciMethod jdk/internal/misc/Unsafe getIntVolatile (Ljava/lang/Object;J)I 768 0 384 0 -1 +ciMethod jdk/internal/misc/Unsafe putReference (Ljava/lang/Object;JLjava/lang/Object;)V 512 0 256 0 -1 +ciInstanceKlass com/sun/glass/ui/InvokeLaterDispatcher 1 1 104 8 1 10 7 12 1 1 1 7 1 10 12 1 9 7 12 1 1 1 7 1 8 1 10 9 12 1 1 9 12 1 1 9 12 1 10 12 1 1 9 12 1 1 11 7 12 1 1 1 7 1 11 12 1 1 10 7 12 1 1 7 1 10 12 1 11 7 12 1 1 1 10 12 1 1 100 1 11 12 1 10 12 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/InterruptedException 1 1 26 10 7 12 1 1 1 10 12 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 +instanceKlass java/util/concurrent/ConcurrentLinkedQueue +instanceKlass java/util/concurrent/SynchronousQueue +instanceKlass java/util/concurrent/LinkedBlockingDeque +instanceKlass java/util/concurrent/LinkedBlockingQueue +ciInstanceKlass java/util/AbstractQueue 1 1 104 10 7 12 1 1 1 10 100 12 1 1 1 100 1 8 1 10 12 1 10 12 1 1 100 1 10 10 12 1 100 1 10 100 1 10 11 100 12 1 1 1 11 100 12 1 1 1 11 12 1 10 12 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 8 1 1 12 10 1 1 1 8 1 1 8 1 1 +ciInstanceKlass java/util/concurrent/ThreadPoolExecutor$Worker 1 1 111 9 7 12 1 1 1 10 7 12 1 1 1 10 12 1 1 9 12 1 1 10 7 12 1 1 1 11 7 12 1 1 1 9 12 1 1 10 12 1 1 10 12 1 1 10 12 1 1 10 7 12 1 1 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 1 10 12 1 10 12 1 100 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/util/concurrent/LinkedBlockingDeque 1 1 457 100 1 3 10 7 12 1 1 1 10 7 12 1 1 7 1 10 9 12 1 1 10 12 1 1 9 12 1 1 9 12 1 100 1 10 9 12 1 1 10 12 1 1 9 12 1 9 12 1 1 9 7 12 1 1 9 12 1 9 12 1 11 7 12 1 1 9 12 1 1 10 12 1 1 10 12 1 10 12 1 1 100 1 8 1 10 12 1 10 12 1 100 1 10 10 12 1 10 12 10 12 1 1 10 12 1 10 12 1 11 12 1 10 100 12 1 1 1 10 12 1 11 12 1 10 12 1 100 1 10 10 12 1 10 12 1 10 12 1 10 100 12 1 1 10 12 1 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 10 12 1 1 10 100 12 1 1 1 10 100 12 1 1 1 11 100 12 1 1 10 12 1 10 12 1 11 12 1 1 11 100 12 1 1 1 11 12 11 12 1 10 10 12 1 1 10 100 12 1 1 10 100 12 1 1 1 100 1 10 100 12 1 1 1 100 1 10 12 1 100 1 10 100 1 10 10 12 1 1 10 12 1 1 11 100 12 1 1 10 12 1 1 18 12 1 1 18 11 100 12 1 10 100 12 1 1 10 12 1 10 100 12 1 1 10 12 1 10 11 12 1 100 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 100 1 1 15 10 100 12 1 1 1 16 15 10 12 15 10 12 1 1 1 1 1 1 100 1 100 1 1 +ciInstanceKlass java/util/concurrent/LinkedBlockingDeque$Node 1 1 35 10 7 12 1 1 1 9 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 +ciMethodData java/util/concurrent/locks/ReentrantLock lock ()V 2 32222 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 16 0x40005 0x7dde 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/util/concurrent/locks/ReentrantLock$Sync lock ()V 2 32222 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 27 0x10005 0x0 0x0 0x1f63fb944c8 0x7dde 0x0 0x0 0x40007 0x7dc8 0x58 0x13 0x90005 0x13 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 1 3 java/util/concurrent/locks/ReentrantLock$NonfairSync methods 0 +ciMethodData java/util/concurrent/locks/ReentrantLock unlock ()V 2 31019 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 16 0x50005 0x792b 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/util/concurrent/locks/AbstractQueuedSynchronizer release (I)Z 2 38008 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 23 0x20005 0x54f 0x0 0x1f63fb944c8 0x8e2b 0x1f6401af320 0x100 0x50007 0x10 0x30 0x946a 0xc0002 0x9469 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 2 3 java/util/concurrent/locks/ReentrantLock$NonfairSync 5 java/util/concurrent/ThreadPoolExecutor$Worker methods 0 +ciMethodData java/util/concurrent/locks/ReentrantLock$Sync tryRelease (I)Z 2 17409 orig 80 1 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 57 0x10005 0x4401 0x0 0x0 0x0 0x0 0x0 0x80005 0x4401 0x0 0x0 0x0 0x0 0x0 0xb0002 0x4401 0xe0007 0x4401 0x30 0x0 0x150002 0x0 0x80000006001a0007 0x2 0x38 0x4400 0x1e0003 0x4400 0x18 0x240007 0x2 0x58 0x4400 0x290005 0x4400 0x0 0x0 0x0 0x0 0x0 0x2e0005 0x4402 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/util/concurrent/locks/AbstractQueuedSynchronizer signalNext (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V 2 7651 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 30 0x10007 0x1bc8 0xa8 0x21b 0xa0007 0x174 0x88 0xa7 0x110007 0x3b 0x68 0x6c 0x160005 0x6c 0x0 0x0 0x0 0x0 0x0 0x1e0002 0x6c 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/util/concurrent/locks/AbstractQueuedSynchronizer compareAndSetState (II)Z 2 1364 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 18 0x90005 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethod java/util/concurrent/LinkedBlockingDeque unlinkFirst ()Ljava/lang/Object; 512 0 6404 0 2304 +ciMethod java/util/concurrent/LinkedBlockingDeque takeFirst ()Ljava/lang/Object; 512 482 6400 0 -1 +ciMethodData java/util/concurrent/locks/AbstractQueuedSynchronizer$Node getAndUnsetStatus (I)I 2 6144 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 20 0xa000b 0x1800 0x0 0x0 0x0 0x0 0x0 0x2 0x1 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0xffffffffffffffff 0x0 oops 0 methods 0 +ciMethodData java/util/concurrent/locks/LockSupport unpark (Ljava/lang/Thread;)V 2 5120 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 36 0x10007 0x2 0xd8 0x13fe 0x50005 0x13fe 0x0 0x0 0x0 0x0 0x0 0x80007 0x13fe 0x48 0x0 0xc0002 0x0 0xf0003 0x0 0x50 0x160005 0x13fe 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0xffffffffffffffff oops 0 methods 0 +ciMethodData java/lang/Thread isVirtual ()Z 2 11288 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 16 0x10004 0xffffffffffffd3e8 0x0 0x1f63fa80f18 0x11 0x1f63fa80fc0 0x3b 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 2 3 jdk/internal/misc/InnocuousThread 5 com/sun/glass/ui/InvokeLaterDispatcher methods 0 +ciMethodData java/util/concurrent/locks/ReentrantLock$NonfairSync initialTryLock ()Z 2 16385 orig 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 60 0x2 0x4002 0x70005 0x4002 0x0 0x0 0x0 0x0 0x0 0x80000006000a0007 0x18 0x58 0x3feb 0xf0005 0x3feb 0x0 0x0 0x0 0x0 0x0 0x150005 0x18 0x0 0x0 0x0 0x0 0x0 0x190007 0x7 0xc0 0x11 0x1d0005 0x11 0x0 0x0 0x0 0x0 0x0 0x240007 0x11 0x30 0x0 0x2d0002 0x0 0x330005 0x11 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/util/concurrent/locks/ReentrantLock$Sync isHeldExclusively ()Z 2 7457 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 25 0x10005 0x1d22 0x0 0x0 0x0 0x0 0x0 0x40002 0x1d22 0x70007 0xcf0 0x38 0x1032 0xb0003 0x1032 0x18 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject doSignal (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;Z)V 2 3513 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 47 0x10007 0x3 0x120 0xdb9 0xf0007 0x0 0x20 0xdb9 0x190005 0xdb9 0x0 0x0 0x0 0x0 0x0 0x1e0007 0x0 0x90 0xdb9 0x260005 0xdb9 0x0 0x0 0x0 0x0 0x0 0x2a0007 0x3 0x38 0xdb6 0x2d0003 0xdb6 0x30 0x320003 0x3 0xfffffffffffffef8 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData jdk/internal/misc/Unsafe getAndBitwiseAndInt (Ljava/lang/Object;JI)I 2 5891 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 34 0x3000b 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 0x0 0x120005 0x1703 0x0 0x0 0x0 0x0 0x0 0x150007 0x0 0xffffffffffffff78 0x1703 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x5 0x0 0x0 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject signal ()V 2 10335 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 33 0x90005 0x0 0x0 0x1f63fb944c8 0x285f 0x0 0x0 0xc0007 0x285f 0x30 0x0 0x130002 0x0 0x180007 0x1b1b 0x58 0xd44 0x1e0005 0xd44 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 1 3 java/util/concurrent/locks/ReentrantLock$NonfairSync methods 0 +ciMethodData java/util/concurrent/LinkedBlockingDeque unlinkFirst ()Ljava/lang/Object; 2 6148 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 27 0x60007 0xda1 0x20 0xa63 0x250007 0xa0 0x38 0xd01 0x2d0003 0xd01 0x18 0x430005 0x0 0x0 0x1f63fb8dec8 0xda1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 1 14 java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject methods 0 +ciMethodData java/util/concurrent/locks/AbstractQueuedSynchronizer$Node setPrevRelaxed (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V 2 1024 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 22 0x8000b 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x1 0x0 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/util/concurrent/locks/AbstractQueuedSynchronizer casTail (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z 2 1024 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 18 0x90005 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/util/concurrent/LinkedBlockingDeque takeFirst ()Ljava/lang/Object; 2 6144 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 51 0x60005 0x0 0x0 0x1f63fb8de20 0x17ff 0x0 0x0 0xa0005 0x288a 0x0 0x0 0x0 0x0 0x0 0xf0007 0x17ff 0x70 0x108b 0x160005 0x0 0x0 0x1f63fb8dec8 0x108b 0x0 0x0 0x1b0003 0x108b 0xffffffffffffff70 0x210005 0x0 0x0 0x1f63fb8de20 0x17ff 0x0 0x0 0x290005 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 3 3 java/util/concurrent/locks/ReentrantLock 21 java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject 31 java/util/concurrent/locks/ReentrantLock methods 0 +ciMethodData java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject await ()V 2 5126 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 142 0x2 0x1406 0x30007 0x1406 0x30 0x0 0xa0002 0x0 0x120002 0x1406 0x180005 0x1406 0x0 0x0 0x0 0x0 0x0 0x1d0002 0x1406 0x2a0005 0x2808 0x0 0x0 0x0 0x0 0x0 0x2d0007 0x1406 0x208 0x1402 0x310002 0x1402 0x370007 0x1402 0xc8 0x0 0x3c0005 0x0 0x0 0x0 0x0 0x0 0x0 0x410007 0x0 0x38 0x0 0x450003 0x0 0x18 0x4c0007 0x0 0xffffffffffffff08 0x0 0x4f0003 0x0 0x128 0x580007 0x0 0xe8 0x1402 0x5d0007 0x1402 0x70 0x0 0x610005 0x0 0x0 0x0 0x0 0x0 0x0 0x650003 0x0 0x28 0x690002 0x1402 0x6c0003 0x1402 0xfffffffffffffe30 0x740003 0x0 0xfffffffffffffe18 0x7b0003 0x0 0xfffffffffffffe00 0x7e0002 0x0 0x810003 0x0 0xfffffffffffffdd8 0x850002 0x1406 0x890005 0x1406 0x0 0x0 0x0 0x0 0x0 0x960005 0x1406 0x0 0x0 0x0 0x0 0x0 0x9b0007 0x1406 0xd0 0x0 0xa00007 0x0 0x68 0x0 0xa50005 0x0 0x0 0x0 0x0 0x0 0x0 0xac0002 0x0 0xb00002 0x0 0xb30005 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/util/concurrent/locks/AbstractQueuedSynchronizer enqueue (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V 2 3264 orig 80 0 0 0 0 0 0 0 0 0 0 0 0 246 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 data 58 0x10007 0x0 0x180 0xcc0 0xb0005 0xcc0 0x0 0x0 0x0 0x0 0x0 0xf0007 0xcc0 0x70 0x0 0x130005 0x0 0x0 0x0 0x0 0x0 0x0 0x160003 0x0 0xb8 0x1c0005 0xcc0 0x0 0x0 0x0 0x0 0x0 0x1f0007 0x0 0x68 0xcc0 0x2b0007 0xcc0 0x60 0x0 0x320002 0x0 0x350003 0x0 0x30 0x380003 0x0 0xfffffffffffffeb8 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +compile java/util/concurrent/LinkedBlockingDeque takeFirst ()Ljava/lang/Object; -1 4 inline 31 0 -1 0 java/util/concurrent/LinkedBlockingDeque takeFirst ()Ljava/lang/Object; 1 6 0 java/util/concurrent/locks/ReentrantLock lock ()V 2 4 0 java/util/concurrent/locks/ReentrantLock$Sync lock ()V 3 1 0 java/util/concurrent/locks/ReentrantLock$NonfairSync initialTryLock ()Z 4 7 0 java/util/concurrent/locks/AbstractQueuedSynchronizer compareAndSetState (II)Z 4 15 0 java/util/concurrent/locks/AbstractOwnableSynchronizer setExclusiveOwnerThread (Ljava/lang/Thread;)V 4 21 0 java/util/concurrent/locks/AbstractOwnableSynchronizer getExclusiveOwnerThread ()Ljava/lang/Thread; 4 29 0 java/util/concurrent/locks/AbstractQueuedSynchronizer getState ()I 4 51 0 java/util/concurrent/locks/AbstractQueuedSynchronizer setState (I)V 1 10 0 java/util/concurrent/LinkedBlockingDeque unlinkFirst ()Ljava/lang/Object; 2 67 0 java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject signal ()V 3 9 0 java/util/concurrent/locks/ReentrantLock$Sync isHeldExclusively ()Z 4 1 0 java/util/concurrent/locks/AbstractOwnableSynchronizer getExclusiveOwnerThread ()Ljava/lang/Thread; 3 30 0 java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject doSignal (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;Z)V 4 25 0 java/util/concurrent/locks/AbstractQueuedSynchronizer$Node getAndUnsetStatus (I)I 5 10 0 jdk/internal/misc/Unsafe getAndBitwiseAndInt (Ljava/lang/Object;JI)I 4 38 0 java/util/concurrent/locks/AbstractQueuedSynchronizer enqueue (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V 5 11 0 java/util/concurrent/locks/AbstractQueuedSynchronizer$Node setPrevRelaxed (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V 5 28 0 java/util/concurrent/locks/AbstractQueuedSynchronizer casTail (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z 1 33 0 java/util/concurrent/locks/ReentrantLock unlock ()V 2 5 0 java/util/concurrent/locks/AbstractQueuedSynchronizer release (I)Z 3 2 0 java/util/concurrent/locks/ReentrantLock$Sync tryRelease (I)Z 4 1 0 java/util/concurrent/locks/AbstractQueuedSynchronizer getState ()I 4 8 0 java/util/concurrent/locks/AbstractOwnableSynchronizer getExclusiveOwnerThread ()Ljava/lang/Thread; 4 41 0 java/util/concurrent/locks/AbstractOwnableSynchronizer setExclusiveOwnerThread (Ljava/lang/Thread;)V 4 46 0 java/util/concurrent/locks/AbstractQueuedSynchronizer setState (I)V 3 12 0 java/util/concurrent/locks/AbstractQueuedSynchronizer signalNext (Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V 4 22 0 java/util/concurrent/locks/AbstractQueuedSynchronizer$Node getAndUnsetStatus (I)I 5 10 0 jdk/internal/misc/Unsafe getAndBitwiseAndInt (Ljava/lang/Object;JI)I 4 30 0 java/util/concurrent/locks/LockSupport unpark (Ljava/lang/Thread;)V 5 5 0 java/lang/Thread isVirtual ()Z diff --git a/resources/META-INF/MANIFEST.MF b/resources/META-INF/MANIFEST.MF new file mode 100644 index 0000000..935f2ed --- /dev/null +++ b/resources/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: smeen.application.Main2 + diff --git a/resources/fonts/IBMPlexSansThai-Bold.ttf b/resources/fonts/IBMPlexSansThai-Bold.ttf new file mode 100644 index 0000000..3a8583f Binary files /dev/null and b/resources/fonts/IBMPlexSansThai-Bold.ttf differ diff --git a/resources/fonts/IBMPlexSansThai-ExtraLight.ttf b/resources/fonts/IBMPlexSansThai-ExtraLight.ttf new file mode 100644 index 0000000..c4161bd Binary files /dev/null and b/resources/fonts/IBMPlexSansThai-ExtraLight.ttf differ diff --git a/resources/fonts/IBMPlexSansThai-Light.ttf b/resources/fonts/IBMPlexSansThai-Light.ttf new file mode 100644 index 0000000..a676550 Binary files /dev/null and b/resources/fonts/IBMPlexSansThai-Light.ttf differ diff --git a/resources/fonts/IBMPlexSansThai-Medium.ttf b/resources/fonts/IBMPlexSansThai-Medium.ttf new file mode 100644 index 0000000..75e62df Binary files /dev/null and b/resources/fonts/IBMPlexSansThai-Medium.ttf differ diff --git a/resources/fonts/IBMPlexSansThai-Regular.ttf b/resources/fonts/IBMPlexSansThai-Regular.ttf new file mode 100644 index 0000000..c31b8c2 Binary files /dev/null and b/resources/fonts/IBMPlexSansThai-Regular.ttf differ diff --git a/resources/fonts/IBMPlexSansThai-SemiBold.ttf b/resources/fonts/IBMPlexSansThai-SemiBold.ttf new file mode 100644 index 0000000..9812b5a Binary files /dev/null and b/resources/fonts/IBMPlexSansThai-SemiBold.ttf differ diff --git a/resources/fonts/IBMPlexSansThai-Thin.ttf b/resources/fonts/IBMPlexSansThai-Thin.ttf new file mode 100644 index 0000000..2cc968f Binary files /dev/null and b/resources/fonts/IBMPlexSansThai-Thin.ttf differ diff --git a/resources/fonts/OFL.txt b/resources/fonts/OFL.txt new file mode 100644 index 0000000..245d5f4 --- /dev/null +++ b/resources/fonts/OFL.txt @@ -0,0 +1,93 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/resources/picture/dog-icon.png b/resources/picture/dog-icon.png new file mode 100644 index 0000000..eb68f7d Binary files /dev/null and b/resources/picture/dog-icon.png differ diff --git a/resources/picture/dog-move1.png b/resources/picture/dog-move1.png new file mode 100644 index 0000000..6a8d8be Binary files /dev/null and b/resources/picture/dog-move1.png differ diff --git a/resources/picture/dog-move2.png b/resources/picture/dog-move2.png new file mode 100644 index 0000000..459dd25 Binary files /dev/null and b/resources/picture/dog-move2.png differ diff --git a/smeen.iml b/smeen.iml new file mode 100644 index 0000000..261e0d3 --- /dev/null +++ b/smeen.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/sniff.jar b/sniff.jar new file mode 100644 index 0000000..f9aa1fb Binary files /dev/null and b/sniff.jar differ diff --git a/src/smeen/application/Main.java b/src/smeen/application/Main.java new file mode 100644 index 0000000..2f4d684 --- /dev/null +++ b/src/smeen/application/Main.java @@ -0,0 +1,30 @@ +package smeen.application; + +import javafx.application.Application; +import javafx.scene.Scene; +import javafx.scene.image.Image; +import javafx.stage.Stage; +import smeen.global.SmeenFileChooser; +import smeen.views.MainView; + +import java.util.concurrent.CompletableFuture; + +public class Main extends Application { + public static void main(String[] args) { + launch(args); + } + + @Override + public void start(Stage stage) throws Exception { + SmeenFileChooser.initialize(stage); + + MainView mainView = new MainView(stage); + Scene mainScene = new Scene(mainView); + mainView.registerEvents(mainScene); + + stage.setTitle("Sniff"); + stage.getIcons().add(new Image(getClass().getResourceAsStream("/picture/dog-icon.png"))); + stage.setScene(mainScene); + stage.show(); + } +} \ No newline at end of file diff --git a/src/smeen/component/AnswerArea.java b/src/smeen/component/AnswerArea.java new file mode 100644 index 0000000..ec3e7cd --- /dev/null +++ b/src/smeen/component/AnswerArea.java @@ -0,0 +1,57 @@ +package smeen.component; + +import javafx.event.ActionEvent; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Button; +import javafx.scene.control.TextField; +import javafx.scene.layout.Background; +import javafx.scene.layout.HBox; +import javafx.scene.paint.Color; +import smeen.global.Fonts; +import smeen.views.MainView; + +public class AnswerArea extends HBox { + private final TextField answerField; + private final Button confirmButton; + public AnswerArea(MainView main) { + confirmButton = new Button("ตอบ"); + confirmButton.setFont(Fonts.SMALL_REGULAR_FONT); + confirmButton.setMinWidth(50); + confirmButton.addEventHandler(ActionEvent.ACTION, e -> { + main.getCodeExecutionHandler().getContext().currentAnswerProperty().set(getAnswerField().getText()); + }); + + answerField = new TextField(); + answerField.prefWidthProperty().bind(widthProperty().subtract(confirmButton.widthProperty())); + answerField.setFont(Fonts.EXTRA_SMALL_REGULAR_FONT); + + getChildren().addAll(answerField , confirmButton); + setAlignment(Pos.CENTER); + setSpacing(5); + setPadding(new Insets(0,0,0,5)); + maxWidthProperty().bind(main.getStageArea().getStageContent().widthProperty()); + setMaxHeight(30); + setBackground(Background.fill(Color.LIGHTGRAY)); + + disableProperty().bind(visibleProperty().not()); + hide(); + } + + public void show() { + setVisible(true); + answerField.setText(""); + } + + public void hide() { + setVisible(false); + } + + public TextField getAnswerField() { + return answerField; + } + + public Button getConfirmButton() { + return confirmButton; + } +} diff --git a/src/smeen/component/CostumeOption.java b/src/smeen/component/CostumeOption.java new file mode 100644 index 0000000..4de28d3 --- /dev/null +++ b/src/smeen/component/CostumeOption.java @@ -0,0 +1,65 @@ +package smeen.component; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Label; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import smeen.global.Fonts; +import smeen.util.Savable; + +import java.util.HashMap; +import java.util.Map; + +public class CostumeOption extends StackPane implements Savable { + + private ImageView imageView; + + private Label name; + + public CostumeOption() { + VBox content = new VBox(); + content.setAlignment(Pos.CENTER); + content.setPadding(new Insets(4)); + content.setBorder(new Border(new BorderStroke(Color.LIGHTGRAY, BorderStrokeStyle.SOLID, new CornerRadii(8), BorderWidths.DEFAULT))); + + imageView = new ImageView(); + imageView.setFitWidth(64); + imageView.setFitHeight(90); + imageView.setPreserveRatio(true); + + name = new Label(); + name.setFont(Fonts.EXTRA_SMALL_REGULAR_FONT); + + content.getChildren().addAll(imageView, name); + + getChildren().addAll(content); + } + + public CostumeOption(Image image, int order) { + this(); + + imageView.setImage(image); + name.setText("ชุดที่ " + order); + } + + public Image getImage() { + return imageView.getImage(); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("name", name.getText()); + result.put("image", Savable.exportImageData(imageView.getImage())); + return result; + } + + @Override + public void importData(Map data) { + name.setText((String) data.get("name")); + imageView.setImage(Savable.importImageData((Map) data.get("image"))); + } +} diff --git a/src/smeen/component/ResizeEditor.java b/src/smeen/component/ResizeEditor.java new file mode 100644 index 0000000..aa131da --- /dev/null +++ b/src/smeen/component/ResizeEditor.java @@ -0,0 +1,144 @@ +package smeen.component; + +import javafx.beans.property.StringProperty; +import javafx.beans.value.ChangeListener; +import javafx.geometry.Insets; +import javafx.geometry.Point2D; +import javafx.geometry.Pos; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.layout.Background; +import javafx.scene.layout.HBox; +import javafx.scene.paint.Color; +import javafx.util.converter.IntegerStringConverter; +import javafx.util.converter.NumberStringConverter; +import smeen.global.Fonts; +import smeen.views.MainView; + +import java.util.Objects; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public class ResizeEditor extends HBox { + private TextField xField; + private TextField yField; + private TextField widthField; + private TextField heightField; + + private MainView main; + + private ChangeListener xListener; + + private ChangeListener yListener; + + private ChangeListener widthListener; + + private ChangeListener heightListener; + + public ResizeEditor(MainView main) { + this.main = main; + + setPrefSize(300, 30); + disableProperty().bind(main.getSpriteEditor().selectedSpriteProperty().isNull()); + + setBackground(Background.fill(Color.WHITE)); + Label x = new Label("X: "); + Label y = new Label("Y: "); + Label width = new Label("Width: "); + Label height = new Label("Height: "); + x.setFont(Fonts.SMALL_REGULAR_FONT); + y.setFont(Fonts.SMALL_REGULAR_FONT); + width.setFont(Fonts.SMALL_REGULAR_FONT); + height.setFont(Fonts.SMALL_REGULAR_FONT); + + xField = new TextField(); + yField = new TextField(); + widthField = new TextField(); + heightField = new TextField(); + xField.setPrefWidth(40); + yField.setPrefWidth(40); + widthField.setPrefWidth(40); + heightField.setPrefWidth(40); + + // bind the selected sprite values to the text field. + main.getSpriteEditor().selectedSpriteProperty().addListener((prop, oldv, newv) -> { + if (oldv != null) { + unbindAll(oldv.getSprite()); + } + + if (newv != null) { + bindAll(newv.getSprite()); + }else{ + // clear text fields on selected (cant run this on disable listener because + // the values might still be bind before clearing text field). + xField.clear(); + yField.clear(); + widthField.clear(); + heightField.clear(); + } + }); + + // when the selected sprite is being dragged, it will be positioned relative to scene + // instead of relative to stage content, which is not useful so we will unbind while + // the selected sprite is being dragged. + main.draggingProperty().addListener((prop, oldv, newv) -> { + SpriteOption option = main.getSpriteEditor().selectedSpriteProperty().get(); + if (option == null) + return; + + SpriteObject sprite = option.getSprite(); + if (Objects.equals(sprite, oldv)) { + // dragging changed from selected object to another object, which means + // the selected object just finished dragging, bind back the values + bindAll(sprite); + } + + if (Objects.equals(sprite, newv)) { + // the selected sprite is just being dragged, unbind the values + unbindAll(sprite); + + // also, the sprite might bind in the first iteration to the position + // relative to scene, so we need to fix it. + Point2D pos = main.getStageArea().getStageContent().sceneToLocal(sprite.getOldPos()); + xField.setText(Double.toString(pos.getX())); + yField.setText(Double.toString(pos.getY())); + } + }); + + getChildren().addAll(x, xField, y, yField, width, widthField, height, heightField); + setAlignment(Pos.CENTER_LEFT); + setSpacing(10); + setPadding(new Insets(0, 0, 0, 10)); + } + + private void unbindAll(SpriteObject sprite) { + xField.textProperty().unbindBidirectional(sprite.layoutXProperty()); + yField.textProperty().unbindBidirectional(sprite.layoutYProperty()); + widthField.textProperty().unbindBidirectional(sprite.getImageView().fitWidthProperty()); + heightField.textProperty().unbindBidirectional(sprite.getImageView().fitHeightProperty()); + } + + private void bindAll(SpriteObject sprite) { + xField.textProperty().bindBidirectional(sprite.layoutXProperty(), new NumberStringConverter()); + yField.textProperty().bindBidirectional(sprite.layoutYProperty(), new NumberStringConverter()); + widthField.textProperty().bindBidirectional(sprite.getImageView().fitWidthProperty(), new NumberStringConverter()); + heightField.textProperty().bindBidirectional(sprite.getImageView().fitHeightProperty(), new NumberStringConverter()); + } + + public TextField getXField() { + return xField; + } + + public TextField getYField() { + return yField; + } + + public TextField getWidthField() { + return widthField; + } + + public TextField getHeightField() { + return heightField; + } +} \ No newline at end of file diff --git a/src/smeen/component/SceneEditor.java b/src/smeen/component/SceneEditor.java new file mode 100644 index 0000000..d17a197 --- /dev/null +++ b/src/smeen/component/SceneEditor.java @@ -0,0 +1,214 @@ +package smeen.component; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Cursor; +import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.control.ScrollPane; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import javafx.scene.shape.Circle; +import javafx.scene.shape.SVGPath; +import javafx.scene.text.Text; +import javafx.stage.FileChooser; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.global.SmeenFileChooser; +import smeen.global.SmeenSVGs; +import smeen.util.Resettable; +import smeen.util.Savable; +import smeen.views.MainView; + +public class SceneEditor extends VBox implements Resettable, Savable { + private ScrollPane scenePane; + + private VBox content; + + private ObjectProperty selectedScene; + + private int runningOrder; + + private MainView main; + public SceneEditor(MainView main){ + this.main = main; + + runningOrder = 0; + + selectedScene = new SimpleObjectProperty<>(); + selectedScene.addListener((obs, oldv, newv) -> { + for (Node n : content.getChildren()) + if (n instanceof SceneOption o) + o.hideSelectedHighlight(); + + if (newv != null) { + newv.showSelectedHighlight(); + main.getSpriteEditor().selectedSpriteProperty().set(null); + main.codeAreaProperty().set(newv.getCodeArea()); + // probably should do a better design to achieve O(1) but oh well. + main.getStageArea().shownSceneProperty().set(content.getChildren().indexOf(newv)+1); + } + }); + + scenePane = new ScrollPane(); + scenePane.setBackground(Background.fill(Color.WHITE)); + scenePane.setPrefSize(170,200); + scenePane.setStyle( + "-fx-border-color: #FFFFFF;" + + "-fx-background: #FFFFFF;"); + scenePane.setFitToWidth(true); + scenePane.setFitToHeight(true); + + content = new VBox(); + + content.setPadding(new Insets(8)); + content.setSpacing(8); + scenePane.setContent(content); + + Button addSceneButton = createAddSceneButton(main); + + Text sceneText = new Text("ฉากแสดง"); + sceneText.setFont(Fonts.SMALL_REGULAR_FONT); + HBox sceneTextBox = new HBox(); + sceneTextBox.getChildren().add(sceneText); + sceneTextBox.setPadding(new Insets(8,10,5,10)); + sceneTextBox.setBackground(Background.fill(Color.WHITE)); + sceneTextBox.setMaxWidth(60); + +// VBox scenePaneWrapper = new VBox(); +// scenePaneWrapper.getChildren().addAll(sceneTextBox , scenePane); + + StackPane scenePaneWrapper = new StackPane(); + scenePaneWrapper.getChildren().addAll(scenePane , addSceneButton); + + getChildren().addAll(sceneTextBox , scenePaneWrapper); + StackPane.setAlignment(addSceneButton , Pos.BOTTOM_RIGHT); + StackPane.setMargin(addSceneButton, new Insets(5,5,5,5)); + } + + public ScrollPane getScenePane() { + return scenePane; + } + + public Button createAddSceneButton(MainView main) { + SVGPath plusPath = new SVGPath(); + plusPath.setContent(SmeenSVGs.PLUS_PATH); + Region plusicon = new Region(); + plusicon.setShape(plusPath); + plusicon.setBackground(Background.fill(Color.BLACK)); + plusicon.setMaxSize(10,10); + plusicon.setPrefSize(10, 10); + plusicon.setTranslateX(10); + plusicon.setTranslateY(10); + + SVGPath imgIconPath = new SVGPath(); + imgIconPath.setContent(SmeenSVGs.IMG_ICON_PATH); + Region imgIcon = new Region(); + imgIcon.setShape(imgIconPath); + imgIcon.setBackground(Background.fill(Color.BLACK)); + imgIcon.setMaxSize(18,18); + imgIcon.setPrefSize(18, 18); + + + StackPane groupIcon = new StackPane(); + groupIcon.getChildren().addAll(imgIcon , plusicon); + groupIcon.setBackground(null); + + Button addSceneButton = new Button(); + addSceneButton.setGraphic(groupIcon); + addSceneButton.setPrefSize(32, 32); + addSceneButton.setStyle( + "-fx-background-radius: 32px;" + + "-fx-background-color: #00ffff;" + ); + addSceneButton.setPadding(new Insets(0,0,0,0)); + addSceneButton.setOnMouseEntered(e -> { + setCursor(Cursor.HAND); + }); + addSceneButton.setOnMouseExited(e -> { + setCursor(Cursor.DEFAULT); + }); + addSceneButton.setOnMouseClicked(e -> { + File selectedFile = SmeenFileChooser.chooseImage(); + if (selectedFile != null) { + try { + addScene(new Image(new FileInputStream(selectedFile))); + } catch (FileNotFoundException ex) { + throw new RuntimeException(ex); + } + } + }); + return addSceneButton; + } + + public void addScene(Image image){ + SceneOption scene = new SceneOption(image, ++runningOrder, main); + content.getChildren().add(scene); + } + + /** + * Get the scene with the given order number + * @param order + * @return + */ + public SceneOption getScene(int order){ + return (SceneOption) content.getChildren().get(order-1); + } + + public int getSceneCount(){ + return content.getChildren().size(); + } + + public ObjectProperty selectedSceneProperty() { + return selectedScene; + } + + @Override + public void clearData() { + selectedScene.set(null); + content.getChildren().clear(); + runningOrder = 0; + } + + @Override + public void reset() { + clearData(); + + addScene(SmeenConstants.DEFAULT_BACKGROUND); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("runningOrder",runningOrder); + result.put("scenes",content.getChildren().stream().map(node -> ((Savable) node).exportData()).toList()); + return result; + } + + @Override + public void importData(Map data) { + clearData(); + + runningOrder = (int) data.get("runningOrder"); + + List scenes = (List) data.get("scenes"); + for(Object o : scenes){ + if(o instanceof Map m){ + SceneOption scene = new SceneOption(main); + scene.importData(m); + content.getChildren().add(scene); + } + } + } +} diff --git a/src/smeen/component/SceneOption.java b/src/smeen/component/SceneOption.java new file mode 100644 index 0000000..3274697 --- /dev/null +++ b/src/smeen/component/SceneOption.java @@ -0,0 +1,102 @@ +package smeen.component; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Cursor; +import javafx.scene.control.Label; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import smeen.component.code.CodeArea; +import smeen.global.Fonts; +import smeen.util.Savable; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +import static smeen.global.SmeenConstants.DEFAULT_BORDER; +import static smeen.global.SmeenConstants.HIGHLIGHTED_BORDER; + +public class SceneOption extends StackPane implements Savable { + + private CodeArea codeArea; + + private VBox content; + + private ImageView imageView; + + private Label name; + + public SceneOption(MainView main) { + setCursor(Cursor.HAND); + + codeArea = new CodeArea(main, null); + + content = new VBox(); + content.setAlignment(Pos.CENTER); + content.setPadding(new Insets(8)); + content.setBorder(new Border(new BorderStroke(Color.LIGHTGRAY, BorderStrokeStyle.SOLID, new CornerRadii(8), BorderWidths.DEFAULT))); + + imageView = new ImageView(); + imageView.setFitWidth(110); + imageView.setFitHeight(78); + imageView.setPreserveRatio(true); + + name = new Label(); + name.setFont(Fonts.EXTRA_SMALL_REGULAR_FONT); + + content.getChildren().addAll(imageView, name); + + getChildren().addAll(content); + + addEventHandler(MouseEvent.MOUSE_CLICKED, e -> { + main.getSceneEditor().selectedSceneProperty().set(this); + }); + } + + public SceneOption(Image image, int order, MainView main) { + this(main); + + imageView.setImage(image); + name.setText("ฉากที่ " + order); + ImageView imageView = new ImageView(image); + imageView.setFitWidth(110); + imageView.setFitHeight(78); + imageView.setPreserveRatio(true); + } + + public Image getImage() { + return imageView.getImage(); + } + + public void showSelectedHighlight() { + content.setBorder(HIGHLIGHTED_BORDER); + } + + public void hideSelectedHighlight() { + content.setBorder(DEFAULT_BORDER); + } + + public CodeArea getCodeArea() { + return codeArea; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("codeArea", codeArea.exportData()); + result.put("image", Savable.exportImageData(imageView.getImage())); + result.put("name", name.getText()); + return result; + } + + @Override + public void importData(Map data) { + codeArea.importData((Map) data.get("codeArea")); + imageView.setImage(Savable.importImageData((Map) data.get("image"))); + name.setText((String) data.get("name")); + } +} diff --git a/src/smeen/component/SpriteEditor.java b/src/smeen/component/SpriteEditor.java new file mode 100644 index 0000000..7e04c1f --- /dev/null +++ b/src/smeen/component/SpriteEditor.java @@ -0,0 +1,389 @@ +package smeen.component; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Consumer; + +import javafx.beans.binding.Bindings; +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Cursor; +import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; +import javafx.scene.image.Image; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import javafx.scene.shape.SVGPath; +import javafx.scene.text.Text; +import javafx.stage.FileChooser; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.global.SmeenFileChooser; +import smeen.global.SmeenSVGs; +import smeen.util.Resettable; +import smeen.util.Savable; +import smeen.views.MainView; + +public class SpriteEditor extends VBox implements Savable, Resettable { + private MainView main; + private ScrollPane spritePane; + + private FlowPane spritePaneContent; + private ScrollPane costumePane; + + private FlowPane costumePaneContent; + private StackPane selectedPane; + + private ObjectProperty selectedSprite; + + private int runningSpriteOrder; + + public SpriteEditor(MainView main) { + this.main = main; + + runningSpriteOrder = 0; + + spritePane = new ScrollPane(); + spritePane.setPrefSize(400, 200); + spritePane.setFitToWidth(true); + spritePane.setFitToHeight(true); + + spritePaneContent = new FlowPane(); + spritePaneContent.setPadding(new Insets(12)); + spritePaneContent.setVgap(8); + spritePaneContent.setHgap(8); + spritePaneContent.setBackground(Background.fill(Color.WHITE)); + + spritePane.setContent(spritePaneContent); + + costumePane = new ScrollPane(); + costumePane.setPrefSize(400, 200); + costumePane.setFitToWidth(true); + costumePane.setFitToHeight(true); + + costumePaneContent = new FlowPane(); + costumePaneContent.setPadding(new Insets(12)); + costumePaneContent.setVgap(8); + costumePaneContent.setHgap(8); + costumePaneContent.setBackground(Background.fill(Color.WHITE)); + + costumePane.setContent(costumePaneContent); + + selectedSprite = new SimpleObjectProperty<>(); + selectedSprite.addListener((obs, oldv, newv) -> { + for (Node n : spritePaneContent.getChildren()) + if (n instanceof SpriteOption o) + o.hideSelectedHighlight(); + + if (newv != null) { + newv.showSelectedHighlight(); + costumePaneContent.getChildren().clear(); + costumePaneContent.getChildren().addAll(newv.getSprite().costumesProperty()); + main.getSceneEditor().selectedSceneProperty().set(null); + main.codeAreaProperty().set(newv.getSprite().getCodeArea()); + } else { + setSelectedPane("Sprite"); + } + }); + + HBox selector = new HBox(); + Text spriteText = new Text("ตัวละคร"); + spriteText.setFont(Fonts.SMALL_REGULAR_FONT); + Text costumeText = new Text("แต่งตัว"); + costumeText.setFont(Fonts.SMALL_REGULAR_FONT); + + VBox spriteTextBox = new VBox(); + spriteTextBox.getChildren().add(spriteText); + spriteTextBox.setPadding(new Insets(8, 10, 5, 10)); + spriteTextBox.setBackground(Background.fill(Color.WHITE)); + VBox costumeTextBox = new VBox(); + costumeTextBox.getChildren().add(costumeText); + costumeTextBox.setPadding(new Insets(8, 10, 5, 10)); + costumeTextBox.setBackground(Background.fill(Color.LIGHTGRAY)); + // custom function + setOnClick(spriteTextBox, "Sprite"); + setOnClick(costumeTextBox, "Costume"); + + selector.getChildren().addAll(spriteTextBox, costumeTextBox); + + Button spriteButton = createAddSpriteButton(); + + selectedPane = new StackPane(); + selectedPane.getChildren().addAll(spritePane, spriteButton); + + getChildren().addAll(selector, selectedPane); + StackPane.setAlignment(spriteButton, Pos.BOTTOM_RIGHT); + StackPane.setMargin(spriteButton, new Insets(5, 5, 5, 5)); + } + + public ScrollPane getSpritePane() { + return spritePane; + } + + public FlowPane getSpriteFlowPane() { + return spritePaneContent; + } + + public ScrollPane getCostumePane() { + return costumePane; + } + + public ScrollPane selectedPaneProperty() { + return (ScrollPane) selectedPane.getChildren().get(0); + } + + public int getRunningOrder() { + return runningSpriteOrder; + } + + public void setRunningOrder(int value) { + if (value >= 0) runningSpriteOrder = value; + } + + public Button createAddSpriteButton() { + SVGPath plusPath = new SVGPath(); + plusPath.setContent(SmeenSVGs.PLUS_PATH); + Region plusicon = new Region(); + plusicon.setShape(plusPath); + plusicon.setBackground(Background.fill(Color.BLACK)); + plusicon.setMaxSize(10, 10); + plusicon.setPrefSize(10, 10); + plusicon.setTranslateX(10); + plusicon.setTranslateY(10); + + SVGPath spriteIconPath = new SVGPath(); + spriteIconPath.setContent(SmeenSVGs.SPRITE_PATH); + Region spriteIcon = new Region(); + spriteIcon.setShape(spriteIconPath); + spriteIcon.setBackground(Background.fill(Color.BLACK)); + spriteIcon.setMaxSize(20, 20); + spriteIcon.setPrefSize(20, 20); + + + StackPane groupIcon = new StackPane(); + groupIcon.getChildren().addAll(spriteIcon, plusicon); + groupIcon.setBackground(null); + + Button addSpriteButton = new Button(); + addSpriteButton.setGraphic(groupIcon); + addSpriteButton.setPrefSize(32, 32); + addSpriteButton.setStyle( + "-fx-background-radius: 32px;" + + "-fx-background-color: #00ffff;" + ); + addSpriteButton.setPadding(new Insets(0, 0, 0, 0)); + + addSpriteButton.setCursor(Cursor.HAND); + + addSpriteButton.setOnMouseClicked(e -> { + File selectedFile = SmeenFileChooser.chooseImage(); + + if (selectedFile != null) { + try { + addSprite(new Image(new FileInputStream(selectedFile))); + } catch (FileNotFoundException ex) { + throw new RuntimeException(ex); + } + } + }); + + return addSpriteButton; + } + + /** + * Add the given image as a sprite option and add the sprite to the stage area. + * + * @param image + */ + public void addSprite(Image image) { + // add sprite option to the editor + SpriteOption spriteOption = new SpriteOption(image, ++runningSpriteOrder, main); + spritePaneContent.getChildren().add(spriteOption); + // also add sprite to stage + main.getStageArea().getStageContent().getChildren().add(spriteOption.getSprite()); + } + + /** + * Run the given function for all sprite option in this editor. + * + * @param func + */ + public void forEachSpriteOption(Consumer func) { + for (Node child : spritePaneContent.getChildren()) + if (child instanceof SpriteOption so) + func.accept(so); + } + + public int getSpriteCount() { + return spritePaneContent.getChildren().size(); + } + + public SpriteOption getSpriteOption(int order) { + return (SpriteOption) spritePaneContent.getChildren().get(order - 1); + } + + /** + * The selected sprite. setting this property will automatically highlight the selected sprite + * and update necessary data. + * + * @return + */ + public ObjectProperty selectedSpriteProperty() { + return selectedSprite; + } + + public Button createAddCostumeButton() { + SVGPath plusPath = new SVGPath(); + plusPath.setContent(SmeenSVGs.PLUS_PATH); + Region plusicon = new Region(); + plusicon.setShape(plusPath); + plusicon.setBackground(Background.fill(Color.BLACK)); + plusicon.setMaxSize(10, 10); + plusicon.setPrefSize(10, 10); + plusicon.setTranslateX(10); + plusicon.setTranslateY(10); + + SVGPath costumeIconPath = new SVGPath(); + costumeIconPath.setContent(SmeenSVGs.COSTUME_PATH); + Region costumeIcon = new Region(); + costumeIcon.setShape(costumeIconPath); + costumeIcon.setBackground(Background.fill(Color.BLACK)); + costumeIcon.setMaxSize(20, 20); + costumeIcon.setPrefSize(20, 20); + + StackPane groupIcon = new StackPane(); + groupIcon.getChildren().addAll(costumeIcon, plusicon); + groupIcon.setBackground(null); + + Button addCostumeButton = new Button(); + addCostumeButton.setGraphic(groupIcon); + addCostumeButton.setPrefSize(32, 32); + addCostumeButton.setStyle( + "-fx-background-radius: 32px;" + + "-fx-background-color: #00ffff;" + ); + addCostumeButton.setPadding(new Insets(0, 0, 0, 0)); + + addCostumeButton.setOnMouseEntered(e -> { + setCursor(Cursor.HAND); + }); + addCostumeButton.setOnMouseExited(e -> { + setCursor(Cursor.DEFAULT); + }); + addCostumeButton.setOnMouseClicked(e -> { + File selectedFile = SmeenFileChooser.chooseImage(); + + if (selectedFile != null) { + try { + int order = selectedSprite.get().getSprite().costumesProperty().getSize(); + CostumeOption costume = new CostumeOption(new Image(new FileInputStream(selectedFile)), order + 1); + costumePaneContent.getChildren().add(costume); + selectedSprite.get().getSprite().costumesProperty().add(costume); + } catch (FileNotFoundException ex) { + throw new RuntimeException(ex); + } + } + + }); + + return addCostumeButton; + } + + private void setSelectedPane(String type) { + if (Objects.equals(type, "Sprite")) { + if (selectedPaneProperty().equals(getCostumePane())) { + selectedPane.getChildren().set(0, spritePane); + VBox spriteBox = (VBox) ((HBox) getChildren().get(0)).getChildren().get(0); + VBox costumeBox = ((VBox) ((HBox) getChildren().get(0)).getChildren().get(1)); + spriteBox.setBackground(Background.fill(Color.WHITE)); + costumeBox.setBackground(Background.fill(Color.LIGHTGRAY)); + Button spriteButton = createAddSpriteButton(); + selectedPane.getChildren().set(1, spriteButton); + StackPane.setAlignment(spriteButton, Pos.BOTTOM_RIGHT); + StackPane.setMargin(spriteButton, new Insets(5, 5, 5, 5)); + } + } else if (Objects.equals(type, "Costume")) { + if (selectedPaneProperty().equals(getSpritePane())) { + selectedPane.getChildren().set(0, costumePane); + VBox spriteBox = (VBox) ((HBox) getChildren().get(0)).getChildren().get(0); + VBox costumeBox = ((VBox) ((HBox) getChildren().get(0)).getChildren().get(1)); + spriteBox.setBackground(Background.fill(Color.LIGHTGRAY)); + costumeBox.setBackground(Background.fill(Color.WHITE)); + Button costumeButton = createAddCostumeButton(); + selectedPane.getChildren().set(1, costumeButton); + StackPane.setAlignment(costumeButton, Pos.BOTTOM_RIGHT); + StackPane.setMargin(costumeButton, new Insets(5, 5, 5, 5)); + } + } + } + + public void setOnClick(VBox selected, String type) { + if (Objects.equals(type, "Sprite")) { + selected.setCursor(Cursor.HAND); + selected.setOnMouseClicked(e -> setSelectedPane(type)); + } else if (Objects.equals(type, "Costume")) { + selected.cursorProperty().bind(Bindings.when(selectedSprite.isNotNull()).then(Cursor.HAND).otherwise(Cursor.DEFAULT)); + selected.visibleProperty().bind(selectedSprite.isNotNull()); + // set current pane to costumePane + selected.setOnMouseClicked(e -> { + // can not edit costume when sprite is not selected + if (selectedSpriteProperty().get() == null) + return; + setSelectedPane(type); + }); + } + + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("runningOrder", runningSpriteOrder); + result.put("sprites", spritePaneContent.getChildren().stream().map(node -> ((Savable) node).exportData()).toList()); + return result; + } + + @Override + public void importData(Map data) { + clearData(); + + runningSpriteOrder = (int) data.get("runningOrder"); + + List sprites = (List) data.get("sprites"); + for (Object o : sprites) { + if (o instanceof Map m) { + SpriteOption option = new SpriteOption(main); + option.importData(m); + spritePaneContent.getChildren().add(option); + } + } + } + + @Override + public void clearData() { + spritePaneContent.getChildren().clear(); + selectedSprite.set(null); + runningSpriteOrder = 0; + } + + @Override + public void reset() { + clearData(); + + SpriteOption spriteOption = new SpriteOption(SmeenConstants.DOG_SPRITE_1, ++runningSpriteOrder, main); + spriteOption.getSprite().costumesProperty().add(new CostumeOption(SmeenConstants.DOG_SPRITE_2, 2)); + // add sprite option to the editor + spritePaneContent.getChildren().add(spriteOption); + // also add sprite to stage + main.getStageArea().getStageContent().getChildren().add(spriteOption.getSprite()); + } +} diff --git a/src/smeen/component/SpriteObject.java b/src/smeen/component/SpriteObject.java new file mode 100644 index 0000000..7c0ccb4 --- /dev/null +++ b/src/smeen/component/SpriteObject.java @@ -0,0 +1,152 @@ +package smeen.component; + +import javafx.beans.property.ListProperty; +import javafx.beans.property.SimpleListProperty; +import javafx.collections.FXCollections; +import javafx.geometry.Insets; +import javafx.geometry.Point2D; +import javafx.geometry.Pos; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import javafx.scene.text.Text; +import smeen.component.code.CodeArea; +import smeen.global.Fonts; +import smeen.util.Savable; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SpriteObject extends Pane implements Savable { + + private Point2D oldPos; + + private ListProperty costumes; + + private CodeArea codeArea; + + private ImageView imageView; + + private StackPane speech; + + private Text speechText; + + public SpriteObject(MainView main) { + codeArea = new CodeArea(main, this); + + costumes = new SimpleListProperty<>(FXCollections.observableArrayList()); + + imageView = new ImageView(); + imageView.imageProperty().addListener((prop, oldv, newv) -> { + if (newv != null) { + imageView.setFitWidth(newv.getWidth()); + imageView.setFitHeight(newv.getHeight()); + } + }); + imageView.setSmooth(true); + + speech = new StackPane(); + speech.setAlignment(Pos.CENTER); + speech.layoutXProperty().bind(imageView.fitWidthProperty().add(20)); + speech.setLayoutY(-12); + speech.setPadding(new Insets(4, 16, 4, 16)); + speech.setBorder(new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, new CornerRadii(12), BorderWidths.DEFAULT))); + speech.setBackground(new Background(new BackgroundFill(Color.WHITE, new CornerRadii(12), Insets.EMPTY))); + + speechText = new Text(); + speechText.setFill(Color.BLACK); + speechText.setFont(Fonts.SMALL_REGULAR_FONT); + speech.getChildren().add(speechText); + + getChildren().add(imageView); + + addEventHandler(MouseEvent.DRAG_DETECTED, e -> { + if (!isVisible() || main.getCodeExecutionHandler().runningProperty().get()) + return; // do not allow drag when hidden or state is running. + + startFullDrag(); + + Point2D pos = localToScene(0, 0); + + oldPos = pos; + relocate(pos.getX(), pos.getY()); + + main.getStageArea().getStageContent().getChildren().remove(this); + main.draggingProperty().set(this); + }); + } + + /** + * @return The old position when this sprite is first being dragged, relative to scene. + */ + public Point2D getOldPos() { + return oldPos; + } + + public ListProperty costumesProperty() { + return costumes; + } + + public ImageView getImageView() { + return imageView; + } + + public CodeArea getCodeArea() { + return codeArea; + } + + /** + * Make the sprite say the given text. + * + * @param text + */ + public void say(String text) { + speechText.setText(text); + getChildren().add(speech); + } + + /** + * Make the sprite hide its speech (if it was saying, otherwise no op). + */ + public void stopSaying() { + getChildren().remove(speech); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + result.put("width", imageView.getFitWidth()); + result.put("height", imageView.getFitHeight()); + result.put("rotation", imageView.getRotate()); + result.put("currentImage", Savable.exportImageData(imageView.getImage())); + result.put("codeArea", codeArea.exportData()); + result.put("costumes", costumes.stream().map(node -> ((Savable) node).exportData()).toList()); + return result; + } + + @Override + public void importData(Map data) { + relocate((double) data.get("x"), (double) data.get("y")); + // must read image before size so that the size binding does not matter + imageView.setImage(Savable.importImageData((Map) data.get("currentImage"))); + imageView.setFitWidth((double) data.get("width")); + imageView.setFitHeight((double) data.get("height")); + imageView.setRotate((double) data.get("rotation")); + codeArea.importData((Map) data.get("codeArea")); + + List c = (List) data.get("costumes"); + for (Object o : c) { + if (o instanceof Map m) { + CostumeOption costume = new CostumeOption(); + costume.importData(m); + costumes.add(costume); + } + } + } +} diff --git a/src/smeen/component/SpriteOption.java b/src/smeen/component/SpriteOption.java new file mode 100644 index 0000000..e31c13b --- /dev/null +++ b/src/smeen/component/SpriteOption.java @@ -0,0 +1,140 @@ +package smeen.component; + +import javafx.beans.InvalidationListener; +import javafx.beans.Observable; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Cursor; +import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.*; +import javafx.scene.shape.SVGPath; +import smeen.global.Fonts; +import smeen.global.SmeenComponent; +import smeen.global.SmeenSVGs; +import smeen.util.Savable; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +import static smeen.global.SmeenConstants.DEFAULT_BORDER; +import static smeen.global.SmeenConstants.HIGHLIGHTED_BORDER; + +public class SpriteOption extends StackPane implements Savable { + + private VBox content; + + private SpriteObject sprite; + + private Label name; + + private ImageView imageView; + + public SpriteOption(MainView main) { + setCursor(Cursor.HAND); + + content = new VBox(); + content.setAlignment(Pos.CENTER); + content.setPadding(new Insets(4)); + content.setBorder(DEFAULT_BORDER); + + imageView = new ImageView(); + imageView.setFitWidth(64); + imageView.setFitHeight(90); + imageView.setPreserveRatio(true); + + name = new Label(); + name.setFont(Fonts.EXTRA_SMALL_REGULAR_FONT); + + content.getChildren().addAll(imageView, name); + + getChildren().addAll(content); + + addEventHandler(MouseEvent.MOUSE_CLICKED, e -> { + main.getSpriteEditor().selectedSpriteProperty().set(this); + }); + + sprite = new SpriteObject(main); + + Button removeButton = SmeenComponent.createRemoveButton(20); + + getChildren().add(removeButton); + setAlignment(removeButton, Pos.TOP_RIGHT); + + // maybe a bit curse + SpriteOption currentSpriteOption = this; + removeButton.setOnAction(e -> { + for (Node node : main.getSpriteEditor().getSpriteFlowPane().getChildren()) { + if (node instanceof SpriteOption spriteOption && spriteOption.equals(this)) { + + // remove sprite from stageArea + main.getStageArea().getStageContent().getChildren().remove(spriteOption.getSprite()); + // remove spriteOption from spriteEditor + main.getSpriteEditor().getSpriteFlowPane().getChildren().remove(spriteOption); + + main.getSpriteEditor().setRunningOrder(main.getSpriteEditor().getRunningOrder() - 1); + + // set selected to first scene + main.getSpriteEditor().selectedSpriteProperty().set(null); + main.getSceneEditor().selectedSceneProperty().set(main.getSceneEditor().getScene(1)); + break; + } + } + + }); + + + main.getSpriteEditor().getSpriteFlowPane().getChildren().addListener(new InvalidationListener() { + + @Override + public void invalidated(Observable arg0) { + int pos = main.getSpriteEditor().getSpriteFlowPane().getChildren().indexOf(currentSpriteOption); + name.setText("ตัวละครที่ " + (pos+1)); + } + }); + } + + public SpriteOption(Image image, int order, MainView main) { + this(main); + + imageView.setImage(image); + name.setText("ตัวละครที่ " + order); + + sprite.getImageView().setImage(image); + sprite.costumesProperty().add(new CostumeOption(image, 1)); + } + + public void showSelectedHighlight() { + content.setBorder(HIGHLIGHTED_BORDER); + } + + public void hideSelectedHighlight() { + content.setBorder(DEFAULT_BORDER); + } + + public SpriteObject getSprite() { + return sprite; + } + + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("name", name.getText()); + result.put("image", Savable.exportImageData(imageView.getImage())); + result.put("sprite", sprite.exportData()); + return result; + } + + @Override + public void importData(Map data) { + name.setText((String) data.get("name")); + imageView.setImage(Savable.importImageData((Map) data.get("image"))); + sprite.importData((Map) data.get("sprite")); + } +} diff --git a/src/smeen/component/StageArea.java b/src/smeen/component/StageArea.java new file mode 100644 index 0000000..15eee78 --- /dev/null +++ b/src/smeen/component/StageArea.java @@ -0,0 +1,241 @@ +package smeen.component; + +import javafx.beans.binding.Bindings; +import javafx.beans.property.*; +import javafx.collections.FXCollections; +import javafx.collections.ListChangeListener; +import javafx.collections.SetChangeListener; +import javafx.event.ActionEvent; +import javafx.geometry.Insets; +import javafx.geometry.Point2D; +import javafx.geometry.Pos; +import javafx.scene.Cursor; +import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.image.Image; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import javafx.scene.shape.Circle; +import javafx.scene.shape.SVGPath; +import smeen.global.SmeenConstants; +import smeen.global.SmeenSVGs; +import smeen.util.Resettable; +import smeen.util.Savable; +import smeen.util.SmeenLayouts; +import smeen.views.MainView; + +import javax.swing.*; +import javax.swing.text.html.ImageView; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.function.Consumer; + +public class StageArea extends VBox implements Resettable, Savable { + + private Pane stageContent; + + private IntegerProperty shownScene; + + private SetProperty shownVariable; + + private Map nameToVariableDisplay; + + private VariableDisplayList variableList; + + public StageArea(MainView main) { + setSpacing(10); + + Button flagButton = new Button(); + SVGPath flagPath = new SVGPath(); + flagPath.setContent(SmeenSVGs.FLAG_PATH); + Region flagRegion = new Region(); + flagRegion.setShape(flagPath); + flagRegion.setBackground(Background.fill(Color.web("#00ff33"))); + flagRegion.setMaxSize(16, 20); + flagRegion.setPrefSize(16, 20); + flagButton.setGraphic(flagRegion); + flagButton.setPrefSize(32, 32); + flagButton.setStyle("-fx-background-radius: 32px;"); + flagButton.setCursor(Cursor.HAND); + flagButton.addEventHandler(ActionEvent.ACTION, e -> main.getCodeExecutionHandler().onGreenFlagClicked()); + + Button stopButton = new Button(); + Circle redCircle = new Circle(9); + redCircle.setFill(Color.RED); + stopButton.setGraphic(redCircle); + stopButton.setPrefSize(32, 32); + stopButton.setStyle("-fx-background-radius: 32px;"); + stopButton.setCursor(Cursor.HAND); + stopButton.addEventHandler(ActionEvent.ACTION, e -> { + main.getCodeExecutionHandler().onStopButtonClicked(); + }); + + Button expandButton = new Button(); + SVGPath expandPath = new SVGPath(); + expandPath.setContent(SmeenSVGs.EXPAND_PATH); + Region expandRegion = new Region(); + expandRegion.setShape(expandPath); + expandRegion.setBackground(Background.fill(Color.BLACK)); + expandRegion.setMaxSize(20, 20); + expandRegion.setPrefSize(20, 20); + expandButton.setGraphic(expandRegion); + expandButton.setPrefSize(32, 32); + expandButton.setStyle("-fx-background-radius: 32px;"); + expandButton.setPadding(new Insets(0, 0, 0, 0)); + expandButton.setOnMouseEntered(e -> { + setCursor(Cursor.HAND); + }); + expandButton.setOnMouseExited(e -> { + setCursor(Cursor.DEFAULT); + }); + + HBox buttonGroupLeft = new HBox(); + buttonGroupLeft.getChildren().addAll(flagButton, stopButton); + buttonGroupLeft.setSpacing(10); + HBox buttonGroupRight = new HBox(); +// buttonGroupRight.getChildren().addAll(expandButton); + + BorderPane buttonGroup = new BorderPane(); + buttonGroup.setLeft(buttonGroupLeft); + buttonGroup.setRight(buttonGroupRight); + //BorderPane.setMargin(buttonGroupRight, new Insets(0, 10, 0, 0)); + + stageContent = new Pane(); + stageContent.setMinSize(SmeenConstants.STAGE_WIDTH, SmeenConstants.STAGE_HEIGHT); + stageContent.setPrefSize(SmeenConstants.STAGE_WIDTH, SmeenConstants.STAGE_HEIGHT); + stageContent.setMaxSize(SmeenConstants.STAGE_WIDTH, SmeenConstants.STAGE_HEIGHT); + stageContent.addEventHandler(MouseEvent.MOUSE_CLICKED,e -> requestFocus()); + SmeenLayouts.clipChildren(stageContent); + + buttonGroup.maxWidthProperty().bind(stageContent.widthProperty()); + + variableList = new VariableDisplayList(main); + variableList.getChildren().addListener((ListChangeListener) c -> { + if(variableList.getChildren().isEmpty()){ + stageContent.getChildren().remove(variableList); + }else{ + stageContent.getChildren().add(variableList); + } + }); + + nameToVariableDisplay = new HashMap<>(); + shownVariable = new SimpleSetProperty<>(FXCollections.observableSet(new HashSet<>())); + shownVariable.addListener((SetChangeListener) c -> { + if(c.wasAdded()){ + VariableDisplay display = new VariableDisplay(main, c.getElementAdded()); + nameToVariableDisplay.put(c.getElementAdded(), display); + variableList.getChildren().add(display); + }else if(c.wasRemoved()){ + variableList.getChildren().remove(nameToVariableDisplay.get(c.getElementRemoved())); + nameToVariableDisplay.remove(c.getElementRemoved()); + } + }); + + shownScene = new SimpleIntegerProperty(); + shownScene.addListener((prop, oldv, newv) -> { + if (newv != null) { + stageContent.setBackground(new Background(new BackgroundImage(main.getSceneEditor().getScene((int) newv).getImage(), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER, new BackgroundSize(BackgroundSize.AUTO, BackgroundSize.AUTO, false, false, false, true)))); + main.getCodeExecutionHandler().onSceneChanged((int) newv); + } + }); + + setMinWidth(SmeenConstants.STAGE_WIDTH + 40); + getChildren().addAll(buttonGroup, stageContent); + setPadding(new Insets(10, 0, 0, 0)); + setAlignment(Pos.CENTER); + } + + /** + * Add the given sprite to stage content and perform necessary calculations based on the + * given mouse position relative to scene. + * + * @param pos the mouse position relative to scene. + * @param sprite the sprite to add. + */ + public void addAndRelocate(Point2D pos, SpriteObject sprite) { + // set to the new position if the dragging sprite is in stage, + // otherwise return it to original position before the dragging. + Point2D spritePos; + if (stageContent.localToScene(stageContent.getBoundsInLocal()).contains(pos)) + spritePos = new Point2D(sprite.getLayoutX(), sprite.getLayoutY()); + else spritePos = sprite.getOldPos(); + spritePos = stageContent.sceneToLocal(spritePos); + sprite.relocate(spritePos.getX(), spritePos.getY()); + + stageContent.getChildren().add(sprite); + }/** + * Add the given variable display to stage content and perform necessary calculations based on the + * given mouse position relative to scene. + * + * @param pos the mouse position relative to scene. + * @param display the variable display to add. + */ + public void addAndRelocate(Point2D pos, VariableDisplayList display) { + // set to the new position if the dragging sprite is in stage, + // otherwise return it to original position before the dragging. + Point2D pos2; + if (stageContent.localToScene(stageContent.getBoundsInLocal()).contains(pos)) + pos2 = new Point2D(display.getLayoutX(), display.getLayoutY()); + else pos2 = display.getOldPos(); + pos2 = stageContent.sceneToLocal(pos2); + display.relocate(pos2.getX(), pos2.getY()); + + stageContent.getChildren().add(display); + } + + /** + * Run the given consumer on all sprite object inside this stage area. + * @param func + */ + public void forEachSprite(Consumer func){ + for(Node node : stageContent.getChildren()) + if(node instanceof SpriteObject sprite) + func.accept(sprite); + } + + /** + * The order number of currently showing scene. + * @return + */ + public IntegerProperty shownSceneProperty() { + return shownScene; + } + + /** + * A set of all variable that is being shown, updating this property will automatically + * add/remove necessary VariableDisplay node to this stage area content. + * @return + */ + public SetProperty shownVariableProperty() { + return shownVariable; + } + + public Pane getStageContent() { + return stageContent; + } + + @Override + public void clearData() { + stageContent.getChildren().clear(); + shownVariable.clear(); + } + + @Override + public void reset() { + clearData(); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("shownScene", shownScene.intValue()); + return result; + } + + @Override + public void importData(Map data) { + shownScene.set((int) data.get("shownScene")); + } +} diff --git a/src/smeen/component/TopMenuBar.java b/src/smeen/component/TopMenuBar.java new file mode 100644 index 0000000..703fce5 --- /dev/null +++ b/src/smeen/component/TopMenuBar.java @@ -0,0 +1,81 @@ +package smeen.component; + +import javafx.event.ActionEvent; +import javafx.scene.control.Menu; +import javafx.scene.control.MenuBar; +import javafx.scene.control.MenuItem; +import smeen.global.SmeenFileChooser; +import smeen.views.MainView; + +import javax.swing.*; +import java.io.*; +import java.util.*; + +public class TopMenuBar extends MenuBar { + + private File workingFile; + + private MainView main; + + public TopMenuBar(MainView main) { + this.main = main; + + Menu fileMenu = new Menu("File"); + + MenuItem newMenuItem = new MenuItem("New"); + newMenuItem.addEventHandler(ActionEvent.ACTION, e -> { + main.reset(); + }); + + MenuItem openMenuItem = new MenuItem("Open..."); + openMenuItem.addEventHandler(ActionEvent.ACTION, e -> { + File file = SmeenFileChooser.openProject(); + if (file != null) { + // stop executions before loading + main.getCodeExecutionHandler().onStopButtonClicked(); + try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(file))) { + main.importData((Map) in.readObject()); + workingFile = file; + } catch (IOException | ClassNotFoundException ex) { + throw new RuntimeException(ex); + } + } + }); + + MenuItem saveMenuItem = new MenuItem("Save"); + saveMenuItem.addEventHandler(ActionEvent.ACTION, e -> { + if (workingFile == null) { + saveAs(); + } else { + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(workingFile));) { + out.writeObject(main.exportData()); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + } + + }); + + MenuItem saveAsMenuItem = new MenuItem("Save as..."); + saveAsMenuItem.addEventHandler(ActionEvent.ACTION, e -> saveAs()); + + fileMenu.getItems().addAll(newMenuItem, openMenuItem, saveMenuItem, saveAsMenuItem); + + getMenus().addAll(fileMenu); + } + + /** + * Perform "Save As" action. + */ + private void saveAs() { + File file = SmeenFileChooser.saveProject(); + if (file != null) { + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file))) { + out.writeObject(main.exportData()); + workingFile = file; + } catch (IOException ex) { + throw new RuntimeException(ex); + } + } + } +} diff --git a/src/smeen/component/VariableDisplay.java b/src/smeen/component/VariableDisplay.java new file mode 100644 index 0000000..f50918b --- /dev/null +++ b/src/smeen/component/VariableDisplay.java @@ -0,0 +1,35 @@ +package smeen.component; + +import javafx.geometry.Insets; +import javafx.geometry.Point2D; +import javafx.scene.control.Label; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.Background; +import javafx.scene.layout.HBox; +import javafx.scene.paint.Color; +import javafx.scene.text.Text; +import smeen.global.Fonts; +import smeen.views.MainView; + +/** + * A node to display variable value. + */ +public class VariableDisplay extends HBox { + + public VariableDisplay(MainView main, String name) { + setPadding(new Insets(4, 12, 4, 12)); + setBackground(Background.fill(Color.LIGHTGRAY)); + setSpacing(8); + + Label nameLabel = new Label(name + ": "); + nameLabel.setFont(Fonts.SMALL_REGULAR_FONT); + + Text value = new Text(); + value.setFill(Color.BLACK); + value.setFont(Fonts.SMALL_REGULAR_FONT); + value.textProperty().bind(main.getCodeExecutionHandler().getContext().getVariableProperty(name).asString()); + + getChildren().addAll(nameLabel, value); + } + +} diff --git a/src/smeen/component/VariableDisplayList.java b/src/smeen/component/VariableDisplayList.java new file mode 100644 index 0000000..3146c96 --- /dev/null +++ b/src/smeen/component/VariableDisplayList.java @@ -0,0 +1,35 @@ +package smeen.component; + +import javafx.geometry.Point2D; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.VBox; +import smeen.views.MainView; + +/** + * A list of multiple variable display that can be draggable. + */ +public class VariableDisplayList extends VBox { + private Point2D oldPos; + + public VariableDisplayList(MainView main){ + addEventHandler(MouseEvent.DRAG_DETECTED, e -> { + startFullDrag(); + + Point2D pos = localToScene(0, 0); + + oldPos = pos; + relocate(pos.getX(), pos.getY()); + + main.getStageArea().getStageContent().getChildren().remove(this); + main.draggingProperty().set(this); + }); + } + + /** + * + * @return the old position relative to the stage area content before this variable display list is dragged. + */ + public Point2D getOldPos() { + return oldPos; + } +} diff --git a/src/smeen/component/code/CodeArea.java b/src/smeen/component/code/CodeArea.java new file mode 100644 index 0000000..d86ed17 --- /dev/null +++ b/src/smeen/component/code/CodeArea.java @@ -0,0 +1,271 @@ +package smeen.component.code; + +import javafx.beans.binding.Bindings; +import javafx.beans.binding.NumberBinding; +import javafx.beans.property.DoubleProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; +import javafx.collections.ListChangeListener; +import javafx.geometry.Bounds; +import javafx.geometry.Point2D; +import javafx.scene.Node; +import javafx.scene.Parent; +import javafx.scene.control.ScrollPane; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; + +import smeen.component.SpriteObject; +import smeen.component.code.block.control.IfCodeBlock; +import smeen.global.SmeenConstants; +import smeen.util.Resettable; +import smeen.util.Savable; +import smeen.views.MainView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.IntStream; + +public class CodeArea extends Pane implements Savable, Resettable { + + private MainView main; + + private final DoubleProperty targetWidth; + + private final DoubleProperty targetHeight; + + private SpriteObject sprite; + + public CodeArea(MainView main, SpriteObject sprite) { + this.main = main; + this.sprite = sprite; + + setBackground(Background.fill(Color.WHITE)); + + targetWidth = new SimpleDoubleProperty(); + targetHeight = new SimpleDoubleProperty(); + + // make the content at least has some space from the furthest node in every direction. + ChangeListener boundsListener = (prop, oldv, newv) -> { + targetWidth.set(Math.max(targetWidth.doubleValue(), newv.getMaxX() + SmeenConstants.CODE_AREA_EXTRA_SPACE)); + targetHeight.set(Math.max(targetHeight.doubleValue(), newv.getMaxY() + SmeenConstants.CODE_AREA_EXTRA_SPACE)); + }; + getChildren().addListener((ListChangeListener) c -> { + while (c.next()) { + if (c.wasAdded()) { + for (Node n : c.getAddedSubList()) { + targetWidth.set(Math.max(targetWidth.doubleValue(), n.getBoundsInParent().getMaxX() + SmeenConstants.CODE_AREA_EXTRA_SPACE)); + targetHeight.set(Math.max(targetHeight.doubleValue(), n.getBoundsInParent().getMaxY() + SmeenConstants.CODE_AREA_EXTRA_SPACE)); + n.boundsInParentProperty().addListener(boundsListener); + } + } else { + for (Node n : c.getRemoved()) { + n.boundsInParentProperty().removeListener(boundsListener); + } + } + } + }); + + // the conde area will never resize to have less size and will always at least fill the parent. + parentProperty().addListener((obs, oldv, newv) -> { + minWidthProperty().unbind(); + minHeightProperty().unbind(); + + if (newv instanceof Pane p) { + minWidthProperty().bind(Bindings.max(targetWidth, Bindings.max(widthProperty(), p.widthProperty().add(SmeenConstants.CODE_AREA_EXTRA_SPACE)))); + minHeightProperty().bind(Bindings.max(targetHeight, Bindings.max(heightProperty(), p.heightProperty().add(SmeenConstants.CODE_AREA_EXTRA_SPACE)))); + } + }); + + addEventHandler(MouseEvent.DRAG_DETECTED, e -> { + startFullDrag(); + + // always check for dragging input first (because the input might be inside code block), + // then check for dragging code block list. + CodeBlockInput inputToDrag = findInputToDrag(e.getSceneX(), e.getSceneY(), this); + if (inputToDrag != null) { + // remove the deepest descendant from its slot to drag, or if there's no descendant, drag this node instead. + Point2D pos = inputToDrag.localToScene(0, 0); + inputToDrag.relocate(pos.getX(), pos.getY()); + + CodeBlockInputSlot holder = inputToDrag.holderProperty().get(); + if (holder != null) + holder.contentProperty().set(null); + + main.draggingProperty().set(inputToDrag); + return; + } + + FindCodeBlockListToDragResult result = IntStream.range(0, getChildren().size()) + .map(i -> getChildren().size() - i - 1) // find from last children first so that the node that appear on top of other node will be dragged. + .mapToObj(i -> findCodeBlockListToDrag(e.getSceneX(), e.getSceneY(), getChildren().get(i))) + .filter(res -> res != null) + .findFirst() + .orElse(null); + if (result != null) { + CodeBlockList codeBlockListToDrag = result.list; + int blockIndex = result.index; + + // if not directly in code area, then it must be in some code block (eg. if, loop, etc.) + // in that case, we must always make a copy of code block list. + if (blockIndex == 0 && codeBlockListToDrag.getParent() instanceof CodeArea) { + // drag the first block of this list: use this CodeBlockList instance as dragging node. + // set the position of the node from relative to the parent to relative to the scene. + Point2D pos = codeBlockListToDrag.localToScene(0, 0); + codeBlockListToDrag.relocate(pos.getX(), pos.getY()); + + main.codeAreaProperty().get().getChildren().remove(codeBlockListToDrag); + main.draggingProperty().set(codeBlockListToDrag); + } else { + // drag block below the first block: create new CodeBlockList instance with that block and blocks below it to be dragged + List sublist = codeBlockListToDrag.getCodeList().getChildren().subList(blockIndex, codeBlockListToDrag.getCodeList().getChildren().size()); + + // Get the position of the first block relative to the scene. + Point2D pos = sublist.get(0).localToScene(Point2D.ZERO); + + // copy the node list, then clear the sublist, which will remove the codeList children from this CodeBlockList + List draggedNodes = new ArrayList<>(sublist); + sublist.clear(); + + CodeBlockList toDragCopy = new CodeBlockList(main); + toDragCopy.getCodeList().getChildren().addAll(draggedNodes); + toDragCopy.relocate(pos.getX(), pos.getY()); + main.draggingProperty().set(toDragCopy); + } + } + }); + } + + /** + * @return The sprite associated with this code area, or null if this code area is not + * associated with any sprite. + */ + public SpriteObject getSprite() { + return sprite; + } + + record FindCodeBlockListToDragResult(CodeBlockList list, int index) { + } + + /** + * @param mouseSceneX the mouse x position in the scene. + * @param mouseSceneY the mouse y position in the scene. + * @param node the node to find. + * @return the result containing deepest CodeBlockList descendant of this CodeArea + * that the mouse position is in bounds to be used for dragging and has a code + * block that contains the mouse, or null if there's none. + */ + private FindCodeBlockListToDragResult findCodeBlockListToDrag(double mouseSceneX, double mouseSceneY, Node node) { + if (node instanceof Parent p) { + for (Node child : p.getChildrenUnmodifiable()) { + FindCodeBlockListToDragResult res = findCodeBlockListToDrag(mouseSceneX, mouseSceneY, child); + if (res != null) + return res; + } + } + + if (node instanceof CodeBlockList list + && list.localToScene(list.getBoundsInLocal()).contains(mouseSceneX, mouseSceneY) && + list.getCodeList().getChildren().size() > 0) { + // the code block list must also have at least one code block that contains + // the mouse to be draggable, this would disallow the inner list to take + // precedence when the mouse is intending to drag outer list's border + int blockIndex = IntStream.range(0, list.getCodeList().getChildren().size()) + .filter(idx -> { + Node n = list.getCodeList().getChildren().get(idx); + return n.localToScene(n.getBoundsInLocal()).contains(mouseSceneX, mouseSceneY); + }).findAny().orElse(-1); + if (blockIndex != -1) + return new FindCodeBlockListToDragResult(list, blockIndex); + else + return null; + } else { + return null; + } + } + + /** + * @param mouseSceneX the mouse x position in the scene. + * @param mouseSceneY the mouse y position in the scene. + * @param node the node to find. + * @return the deepest CodeBlockInput descendant of this CodeArea that the mouse position is in bounds + * to be used for dragging, or null if there's none. + */ + private CodeBlockInput findInputToDrag(double mouseSceneX, double mouseSceneY, Node node) { + if (node instanceof Parent parent) { + for (Node child : parent.getChildrenUnmodifiable()) { + CodeBlockInput result = findInputToDrag(mouseSceneX, mouseSceneY, child); + if (result != null) + return result; + } + } + + if (node instanceof CodeBlockInput input && input.localToScene(input.getBoundsInLocal()).contains(mouseSceneX, mouseSceneY)) + return input; + else return null; + } + + /** + * Add the given node to this CodeArea and perform layout positioning if the given point + * is inside this CodeArea (assuming the given point is relative to scene). + * + * @param point the point to check (its coordinates are relative to scene). + * @param node the node to check. + */ + public void addIfContains(Point2D point, Node node) { + if (localToScene(getBoundsInLocal()).contains(point)) { + // set node position from relative to scene to relative to CodeArea. + Point2D nodePos = new Point2D(node.getLayoutX(), node.getLayoutY()); + nodePos = sceneToLocal(nodePos); + node.relocate(nodePos.getX(), nodePos.getY()); + getChildren().add(node); + } + } + + @Override + public void clearData() { + getChildren().clear(); + } + + @Override + public void reset() { + clearData(); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("targetWidth", targetWidth.doubleValue()); + result.put("targetHeight", targetHeight.doubleValue()); + result.put("content", getChildren().stream().filter(node -> node instanceof Savable).map(node -> ((Savable) node).exportData()).toList()); + return result; + } + + @Override + public void importData(Map data) { + clearData(); + + List content = (List) data.get("content"); + for (Object c : content) { + if (c instanceof Map m) { + String type = (String) m.get("type"); + if (type.equals("CodeBlockList")) { + CodeBlockList cb = new CodeBlockList(main); + cb.importData(m); + getChildren().add(cb); + } else if (type.endsWith("CodeBlockInput")) { + CodeBlockInput cb = Savable.importCodeBlockInputData(m, main); + getChildren().add(cb); + } else { + throw new IllegalStateException("Unsupported CodeArea content type: " + m.get("type")); + } + } + } + + targetWidth.set((double) data.get("targetWidth")); + targetHeight.set((double) data.get("targetHeight")); + } +} diff --git a/src/smeen/component/code/CodeBlock.java b/src/smeen/component/code/CodeBlock.java new file mode 100644 index 0000000..5e8dfbc --- /dev/null +++ b/src/smeen/component/code/CodeBlock.java @@ -0,0 +1,167 @@ +package smeen.component.code; + +import javafx.beans.property.DoubleProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.collections.ListChangeListener; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Node; +import javafx.scene.layout.Background; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; +import javafx.scene.layout.Region; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.shape.Arc; +import javafx.scene.shape.Rectangle; +import javafx.scene.shape.SVGPath; +import smeen.logic.SmeenContext; +import smeen.util.Copyable; +import smeen.global.SmeenComponent; +import smeen.logic.Executable; +import smeen.util.Savable; +import smeen.views.MainView; + +import java.util.Map; + + +public abstract class CodeBlock extends VBox implements Copyable, Savable, Executable { + + private MainView main; + + private HBox content; + + private Pane bottomSnapHintContainer; + + private Pane topSnapHintContainer; + private DoubleProperty snapHintWidth; + + private Region head; + + public CodeBlock(MainView main) { + this.main = main; + + setFillWidth(false); + + content = new HBox(); + content.setAlignment(Pos.CENTER); + content.setBackground(Background.fill(Color.BLACK)); + content.setSpacing(10); + content.setPadding(new Insets(10, 10, 5, 5)); + + topSnapHintContainer = new Pane(); + bottomSnapHintContainer = new Pane(); + snapHintWidth = new SimpleDoubleProperty(); + + getChildren().addAll(topSnapHintContainer, content, bottomSnapHintContainer); + + if (mustBeFirstBlock()) { + head = SmeenComponent.createHead(); + head.backgroundProperty().bind(content.backgroundProperty()); + getChildren().add(1, head); + } + // don't allow children modification after this, other classes must use getContent() to modify the CodeBlock's content. + getChildren().addListener((ListChangeListener) c -> { + throw new IllegalStateException("Do not modify the CodeBlock children directly (even for subclasses). Instead, use getContent().getChildren().add/addAll."); + }); + } + + public HBox getContent() { + return content; + } + + public MainView getMain() { + return main; + } + + /** + * Whether this code block can only the first block in a code block list. + * If it is true, it can only be snapped to the top of a code block list and cannot + * be snap to any other block in a code block list. Returns false by default, subclasses + * should override to return true when needed. + * + * @return + */ + public boolean mustBeFirstBlock() { + return false; + } + + /** + * @return the CodeArea that this code block is in, or null if this code block is not in CodeeArea. + * @implNote There might be a better way, but considering that code blocks would probably + * not be very deep, I think the current implementation is efficient enough. + */ + public CodeArea getCodeArea() { + Node temp = getParent(); + while (temp != null) { + if (temp instanceof CodeArea ca) + return ca; + temp = temp.getParent(); + } + return null; + } + + /** + * @return the code block list that this CodeBlock is in, or null if this code block is not in any codde block list. + */ + public CodeBlockList getCodeBlockList() { + Node temp = getParent(); + while (temp != null) { + if (temp instanceof CodeBlockList list) + return list; + temp = temp.getParent(); + } + return null; + } + + /** + * Show the top snap hint for this CodeBlock. + * This will do nothing if the top snap hint is already showing. + */ + public void showTopSnapHint() { + if (!topSnapHintContainer.getChildren().isEmpty()) + return; + Rectangle hint = new Rectangle(0, 40, Color.GREY); + hint.widthProperty().bind(snapHintWidth); + topSnapHintContainer.getChildren().add(hint); + } + + /** + * Show the bottom snap hint for this CodeBlock. + * This will do nothing if the bottom snap hint is already showing. + */ + public void showBottomSnapHint() { + if (!bottomSnapHintContainer.getChildren().isEmpty()) + return; + Rectangle hint = new Rectangle(0, 40, Color.GREY); + hint.widthProperty().bind(snapHintWidth); + bottomSnapHintContainer.getChildren().add(hint); + } + + /** + * Hide both the top snap hint and bottom snap hint for this CodeBlock. + */ + public void hideSnapHints() { + topSnapHintContainer.getChildren().clear(); + bottomSnapHintContainer.getChildren().clear(); + } + + public DoubleProperty snapHintWidthProperty() { + return snapHintWidth; + } + + @Override + public Map exportData() { + throw new UnsupportedOperationException(); + } + + @Override + public void importData(Map data) { + throw new UnsupportedOperationException(); + } + + @Override + public Executable.Result execute(SmeenContext context) { + throw new UnsupportedOperationException(); + } +} diff --git a/src/smeen/component/code/CodeBlockInput.java b/src/smeen/component/code/CodeBlockInput.java new file mode 100644 index 0000000..3cc538d --- /dev/null +++ b/src/smeen/component/code/CodeBlockInput.java @@ -0,0 +1,124 @@ +package smeen.component.code; + +import javafx.beans.property.*; +import javafx.collections.ListChangeListener; +import javafx.geometry.Insets; +import javafx.geometry.Point2D; +import javafx.geometry.Pos; +import javafx.scene.Node; +import javafx.scene.Parent; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.Border; +import javafx.scene.layout.BorderStroke; +import javafx.scene.layout.BorderStrokeStyle; +import javafx.scene.layout.BorderWidths; +import javafx.scene.layout.CornerRadii; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.shape.Rectangle; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.util.Copyable; +import smeen.util.Savable; +import smeen.views.MainView; + +import java.util.Map; + +public abstract class CodeBlockInput extends VBox implements Copyable>, Savable { + + private MainView main; + + private HBox content; + + private ObjectProperty> holder; + + public CodeBlockInput(MainView main) { + this.main = main; + + holder = new SimpleObjectProperty<>(); + + setFillWidth(false); + + content = new HBox(); + content.setAlignment(Pos.CENTER); + content.setBackground(new Background(new BackgroundFill(Color.BLACK, new CornerRadii(20), null))); + content.setSpacing(10); + content.setPadding(new Insets(10, 10, 5, 8)); + + // set color of border to check type of CodeBlockInput + + getChildren().addAll(content); + // don't allow children modification after this, other classes must use + // getContent() to modify the CodeBlock's content. + getChildren().addListener((ListChangeListener) c -> { + throw new IllegalStateException( + "Do not modify the CodeBlockInput children directly (even for subclasses). Instead, use getContent().getChildren().add/addAll."); + }); + } + + public HBox getContent() { + return content; + } + + public MainView getMain() { + return main; + } + + public abstract T getValue(SmeenContext context); + + public abstract Type getType(); + + // Check input type by set Color to border + // Red -> String + // Green -> Double + // Blue -> Boolean + public void setColorBorder() { + Color setcolor = Color.BLACK; + if (getType() == Type.String) { + setcolor = Color.RED; + } else if (getType() == Type.Double) { + setcolor = Color.GREEN; + } else if (getType() == Type.Boolean) { + setcolor = Color.BLUE; + } + getContent().setBorder(new Border( + new BorderStroke(setcolor, BorderStrokeStyle.SOLID, new CornerRadii(20), new BorderWidths(1.5)))); + } + + /** + * @return the CodeArea that this code block input is in, or null if this code block input is not in CodeeArea. + * @implNote There might be a better way, but considering that code blocks would probably + * not be very deep, I think the current implementation is efficient enough. + */ + public CodeArea getCodeArea() { + Node temp = getParent(); + while (temp != null) { + if (temp instanceof CodeArea ca) + return ca; + temp = temp.getParent(); + } + return null; + } + + /** + * @return the CodeBlockInputSlot that this CodeBlockInput is currently in, or null if this + * CodeBlockInput is not currently in CodeBlockInputSlot. + */ + public ObjectProperty> holderProperty() { + return holder; + } + + @Override + public Map exportData() { + throw new UnsupportedOperationException(); + } + + @Override + public void importData(Map data) { + throw new UnsupportedOperationException(); + } +} diff --git a/src/smeen/component/code/CodeBlockInputSlot.java b/src/smeen/component/code/CodeBlockInputSlot.java new file mode 100644 index 0000000..6a0a847 --- /dev/null +++ b/src/smeen/component/code/CodeBlockInputSlot.java @@ -0,0 +1,170 @@ +package smeen.component.code; + +import javafx.beans.binding.Bindings; +import javafx.beans.property.DoubleProperty; +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.geometry.Point2D; +import javafx.geometry.Pos; +import javafx.scene.Node; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.control.TextInputControl; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import javafx.scene.shape.Rectangle; +import javafx.util.converter.DoubleStringConverter; +import javafx.util.converter.FloatStringConverter; +import javafx.util.converter.IntegerStringConverter; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.util.Savable; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class CodeBlockInputSlot extends StackPane implements Savable { + private TextField textField; + + private final ObjectProperty> content; + + private final Pane contentPane; + + private final Pane snapHintPane; + + private final DoubleProperty snapHintWidth; + private Type prefType; // use in snapping check + private T value; + + private MainView main; + + public CodeBlockInputSlot(MainView main, Type prefType) { + this.main = main; + + contentPane = new Pane(); + snapHintPane = new Pane(); + snapHintPane.setDisable(true); + getChildren().addAll(contentPane, snapHintPane); + + textField = new TextField(); + textField.setPrefWidth(30); + textField.setPrefHeight(20); + textField.setFont(Fonts.EXTRA_SMALL_REGULAR_FONT); + contentPane.getChildren().add(textField); + + content = new SimpleObjectProperty<>(); + content.addListener((props, oldv, newv) -> { + contentPane.getChildren().clear(); + if (newv == null) { + oldv.holderProperty().set(null); + contentPane.getChildren().add(textField); + } else { + // snapped block will be located at 0,0 relative to the content pane. + newv.relocate(0, 0); + newv.holderProperty().set(this); + contentPane.getChildren().add(newv); + } + }); + + snapHintWidth = new SimpleDoubleProperty(); + + setType(prefType); + setAlignment(Pos.CENTER_LEFT); + } + + /** + * The current content of this CodeBlockInput, setting this property will automatically + * add the node to this slot. Setting this property to null will also automatically remove + * the node from this slot and use default text field node as input instead. + * + * @return + */ + public ObjectProperty> contentProperty() { + return content; + } + + public void showSnapHint() { + if (!snapHintPane.getChildren().isEmpty()) + return; + Rectangle hint = new Rectangle(0, 40, Color.GREY); + + hint.widthProperty().bind(Bindings.max(textField.widthProperty(), snapHintWidth)); + snapHintPane.getChildren().add(hint); + } + + public void hideSnapHint() { + snapHintPane.getChildren().clear(); + } + + public void setType(Type type) { + prefType = type; + Color setColor = Color.BLACK; + + if (type.equals(Type.String) && content.get() == null) { + textField.setPrefWidth(60); + setColor = Color.RED; + } else if (type.equals(Type.Double) && content.get() == null) { + textField.setTextFormatter(new TextFormatter<>(new DoubleStringConverter())); + setColor = Color.GREEN; + } else if (type.equals(Type.Boolean) && content.get() == null) { + textField.setEditable(false); + setColor = Color.BLUE; + } + + getTextField().setBorder(new Border( + new BorderStroke(setColor, BorderStrokeStyle.SOLID, new CornerRadii(3), new BorderWidths(1.5)))); + } + + public T getValue(SmeenContext context) { + if (content.get() == null) { + if (prefType.equals(Type.Double)) + value = (!textField.getText().isEmpty()) ? (T) Double.valueOf(textField.getText()) : (T) Double.valueOf(0); + else if (prefType.equals(Type.String)) + value = (T) textField.getText(); + else if (prefType.equals(Type.Boolean)) + value = (T) Boolean.FALSE; + return value; + + } else { + return content.get().getValue(context); + } + } + + public Type getType() { + return prefType; + } + + public TextField getTextField() { + return textField; + } + + public DoubleProperty snapHintWidthProperty() { + return snapHintWidth; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + if (content.get() == null) { + result.put("isTextfield", true); + result.put("text", textField.getText()); + } else { + result.put("isTextfield", false); + result.put("content", content.get().exportData()); + } + return result; + } + + @Override + public void importData(Map data) { + if ((boolean) data.get("isTextfield")) { + textField.setText((String) data.get("text")); + } else { + content.set((CodeBlockInput) Savable.importCodeBlockInputData((Map)data.get("content"), main)); + } + } +} \ No newline at end of file diff --git a/src/smeen/component/code/CodeBlockList.java b/src/smeen/component/code/CodeBlockList.java new file mode 100644 index 0000000..b81eb17 --- /dev/null +++ b/src/smeen/component/code/CodeBlockList.java @@ -0,0 +1,334 @@ +package smeen.component.code; + +import javafx.beans.binding.Bindings; +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.DoubleProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.collections.ListChangeListener; +import javafx.geometry.Point2D; +import javafx.scene.Node; +import javafx.scene.Parent; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.Pane; +import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.shape.Rectangle; +import javafx.scene.transform.Transform; +import smeen.component.code.block.control.*; +import smeen.component.code.block.event.BroadcastAndWaitCodeBlock; +import smeen.component.code.block.event.BroadcastCodeBlock; +import smeen.component.code.block.event.WhenClickedCodeBlock; +import smeen.component.code.block.event.WhenKeyPressedCodeBlock; +import smeen.component.code.block.event.WhenReceivedBroadcastCodeBlock; +import smeen.component.code.block.event.WhenSceneChangeToCodeBlock; +import smeen.component.code.block.event.WhenStartCodeBlock; +import smeen.component.code.block.look.ChangeCostumeCodeBlock; +import smeen.component.code.block.look.ChangeHeightCodeBlock; +import smeen.component.code.block.look.ChangeSceneCodeBlock; +import smeen.component.code.block.look.ChangeWidthCodeBlock; +import smeen.component.code.block.look.HideCodeBlock; +import smeen.component.code.block.look.SayCodeBlock; +import smeen.component.code.block.look.ShowCodeBlock; +import smeen.component.code.block.meen.BitkubCodeBlock; +import smeen.component.code.block.meen.TransformCodeBlock; +import smeen.component.code.block.meen.WhenBitCodeBlock; +import smeen.component.code.block.movement.*; +import smeen.component.code.block.sensing.AskAndWaitCodeBlock; +import smeen.component.code.block.variable.HideVarCodeBlock; +import smeen.component.code.block.variable.SetVarCodeBlock; +import smeen.component.code.block.variable.ShowVarCodeBlock; +import smeen.global.SmeenConstants; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.util.Savable; +import smeen.views.MainView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.IntStream; + +/** + * Assume that the CodeBlockList is either being dragged or in CodeArea only. + *

+ * Do not add the CodeBlock component directly to this component getChildren(). Instead, + * add it using getCodeList().getChildren().add/addAll. + */ +public class CodeBlockList extends VBox implements Savable, Executable { + + private MainView main; + private VBox codeList; + private DoubleProperty snapHintWidth; + + private Pane snapHintWhenEmpty; + + public CodeBlockList(MainView main) { + this.main = main; + + codeList = new VBox(); + codeList.setFillWidth(false); + + // prevent adding code block directly to this component children list. + getChildren().addListener((ListChangeListener) c -> { + while (c.next()) { + if (c.wasAdded() && c.getAddedSubList().stream().anyMatch(node -> node instanceof CodeBlock)) + throw new IllegalStateException("Do not add the CodeBlock component directly to CodeBlockList's getChildren(). Instead, add it using getCodeList().getChildren().add/addAll."); + } + }); + + // allow only code block to be added to code block list + codeList.getChildren().addListener((ListChangeListener) c -> { + while (c.next()) { + if (c.wasAdded() && c.getAddedSubList().stream().anyMatch(node -> !(node instanceof CodeBlock))) + throw new IllegalStateException("Nodes added to CodeBlockList.getCodeList().getChildren() must be of class CodeBlock or its subclasses only."); + } + }); + + snapHintWidth = new SimpleDoubleProperty(); + snapHintWhenEmpty = new Pane(); + + getChildren().addAll(snapHintWhenEmpty, codeList); + } + + + public VBox getCodeList() { + return codeList; + } + + /** + * Only used when the code block list is empty. + */ + public void showSnapHint() { + if (!snapHintWhenEmpty.getChildren().isEmpty()) + return; + Rectangle hint = new Rectangle(0, 40, Color.GREY); + hint.widthProperty().bind(snapHintWidth); + snapHintWhenEmpty.getChildren().add(hint); + } + + public void hideSnapHint() { + snapHintWhenEmpty.getChildren().clear(); + } + + public DoubleProperty snapHintWidthProperty() { + return snapHintWidth; + } + + /** + * Execute code of this code block list, ignoring the first block condition + * (even if there's one or not). + * + * @param context + */ + @Override + public Executable.Result execute(SmeenContext context) { + for (Node child : codeList.getChildren()) { + if (child instanceof Executable e) { + Executable.Result result = e.execute(context); + if (result.shouldStop() || Thread.currentThread().isInterrupted()) + return new Executable.Result(false, true); + if (result.shouldBreak()) + return new Executable.Result(true, false); +// try { +// Thread.sleep(SmeenConstants.EXECUTION_DELAY); +// } catch (InterruptedException ex) { +// return new Result(false, true); +// } + } + } + return new Executable.Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "CodeBlockList"); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + result.put("codes", codeList.getChildren().stream().map(node -> ((Savable) node).exportData()).toList()); + return result; + } + + @Override + public void importData(Map data) { + relocate((double) data.get("x"), (double) data.get("y")); + + List codes = (List) data.get("codes"); + for (Object code : codes) { + if (code instanceof Map m) { + switch ((String) m.get("type")) { + case "MoveForwardCodeBlock": + MoveForwardCodeBlock moveForward = new MoveForwardCodeBlock(main); + moveForward.importData(m); + codeList.getChildren().add(moveForward); + break; + case "MoveBackwardCodeBlock": + MoveBackwardCodeBlock moveBackward = new MoveBackwardCodeBlock(main); + moveBackward.importData(m); + codeList.getChildren().add(moveBackward); + break; + case "MoveToCodeBlock": + MoveToCodeBlock moveTo = new MoveToCodeBlock(main); + moveTo.importData(m); + codeList.getChildren().add(moveTo); + break; + case "RotateClockwiseCodeBlock": + RotateClockwiseCodeBlock clockwise = new RotateClockwiseCodeBlock(main); + clockwise.importData(m); + codeList.getChildren().add(clockwise); + break; + case "RotateCounterClockwiseCodeBlock": + RotateCounterClockwiseCodeBlock counterClockwise = new RotateCounterClockwiseCodeBlock(main); + counterClockwise.importData(m); + codeList.getChildren().add(counterClockwise); + break; + case "SayCodeBlock": + SayCodeBlock say = new SayCodeBlock(main); + say.importData(m); + codeList.getChildren().add(say); + break; + case "ChangeWidthCodeBlock": + ChangeWidthCodeBlock changeWidth = new ChangeWidthCodeBlock(main); + changeWidth.importData(m); + codeList.getChildren().add(changeWidth); + break; + case "ChangeHeightCodeBlock": + ChangeHeightCodeBlock changeHeight = new ChangeHeightCodeBlock(main); + changeHeight.importData(m); + codeList.getChildren().add(changeHeight); + break; + case "ChangeCostumeCodeBlock": + ChangeCostumeCodeBlock changeCostume = new ChangeCostumeCodeBlock(main); + changeCostume.importData(m); + codeList.getChildren().add(changeCostume); + break; + case "ChangeSceneCodeBlock": + ChangeSceneCodeBlock changeScene = new ChangeSceneCodeBlock(main); + changeScene.importData(m); + codeList.getChildren().add(changeScene); + break; + case "HideCodeBlock": + HideCodeBlock hide = new HideCodeBlock(main); + hide.importData(m); + codeList.getChildren().add(hide); + break; + case "ShowCodeBlock": + ShowCodeBlock show = new ShowCodeBlock(main); + show.importData(m); + codeList.getChildren().add(show); + break; + case "WhenStartCodeBlock": + WhenStartCodeBlock whenStart = new WhenStartCodeBlock(main); + whenStart.importData(m); + codeList.getChildren().add(whenStart); + break; + case "WhenKeyPressedCodeBlock": + WhenKeyPressedCodeBlock whenKey = new WhenKeyPressedCodeBlock(main); + whenKey.importData(m); + codeList.getChildren().add(whenKey); + break; + case "WhenClickedCodeBlock": + WhenClickedCodeBlock whenclick = new WhenClickedCodeBlock(main); + whenclick.importData(m); + codeList.getChildren().add(whenclick); + break; + case "WhenSceneChangeToCodeBlock": + WhenSceneChangeToCodeBlock whenScene = new WhenSceneChangeToCodeBlock(main); + whenScene.importData(m); + codeList.getChildren().add(whenScene); + break; + case "WhenReceivedBroadcastCodeBlock": + WhenReceivedBroadcastCodeBlock whenReceived = new WhenReceivedBroadcastCodeBlock(main); + whenReceived.importData(m); + codeList.getChildren().add(whenReceived); + break; + case "BroadcastCodeBlock": + BroadcastCodeBlock broadcast = new BroadcastCodeBlock(main); + broadcast.importData(m); + codeList.getChildren().add(broadcast); + break; + case "BroadcastAndWaitCodeBlock": + BroadcastAndWaitCodeBlock broadcastWait = new BroadcastAndWaitCodeBlock(main); + broadcastWait.importData(m); + codeList.getChildren().add(broadcastWait); + break; + case "IfCodeBlock": + IfCodeBlock ifCB = new IfCodeBlock(main); + ifCB.importData(m); + codeList.getChildren().add(ifCB); + break; + case "IfElseCodeBlock": + IfElseCodeBlock ifElse = new IfElseCodeBlock(main); + ifElse.importData(m); + codeList.getChildren().add(ifElse); + break; + case "RepeatCodeBlock": + RepeatCodeBlock repeat = new RepeatCodeBlock(main); + repeat.importData(m); + codeList.getChildren().add(repeat); + break; + case "WhileCodeBlock": + WhileCodeBlock whileCB = new WhileCodeBlock(main); + whileCB.importData(m); + codeList.getChildren().add(whileCB); + break; + case "WaitCodeBlock": + WaitCodeBlock wait = new WaitCodeBlock(main); + wait.importData(m); + codeList.getChildren().add(wait); + break; + case "WaitUntilCodeBlock": + WaitUntilCodeBlock waitUntil = new WaitUntilCodeBlock(main); + waitUntil.importData(m); + codeList.getChildren().add(waitUntil); + break; + case "AskAndWaitCodeBlock": + AskAndWaitCodeBlock ask = new AskAndWaitCodeBlock(main); + ask.importData(m); + codeList.getChildren().add(ask); + break; + case "BreakCodeBlock": + BreakCodeBlock breakCodeBlock = new BreakCodeBlock(main); + breakCodeBlock.importData(m); + codeList.getChildren().add(breakCodeBlock); + break; + case "BitkubCodeBlock": + BitkubCodeBlock bit = new BitkubCodeBlock(main); + bit.importData(m); + codeList.getChildren().add(bit); + break; + case "TransformCodeBlock": + TransformCodeBlock transform = new TransformCodeBlock(main); + transform.importData(m); + codeList.getChildren().add(transform); + break; + case "WhenBitCodeBlock": + WhenBitCodeBlock whenBit = new WhenBitCodeBlock(main); + whenBit.importData(m); + codeList.getChildren().add(whenBit); + break; + case "HideVarCodeBlock": + HideVarCodeBlock hideVar = new HideVarCodeBlock(main, main.getCodeSelector()); + hideVar.importData(m); + codeList.getChildren().add(hideVar); + break; + case "SetVarCodeBlock": + SetVarCodeBlock setVar = new SetVarCodeBlock(main, main.getCodeSelector()); + setVar.importData(m); + codeList.getChildren().add(setVar); + break; + case "ShowVarCodeBlock": + ShowVarCodeBlock showVar = new ShowVarCodeBlock(main, main.getCodeSelector()); + showVar.importData(m); + codeList.getChildren().add(showVar); + break; + default: + throw new IllegalStateException("Unsupported CodeBlockList code type: " + m.get("type")); + } + } + } + } + +} diff --git a/src/smeen/component/code/CodeSelector.java b/src/smeen/component/code/CodeSelector.java new file mode 100644 index 0000000..6a0a72c --- /dev/null +++ b/src/smeen/component/code/CodeSelector.java @@ -0,0 +1,599 @@ +package smeen.component.code; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +import javafx.beans.InvalidationListener; +import javafx.beans.Observable; +import javafx.beans.property.*; +import javafx.collections.FXCollections; +import javafx.collections.MapChangeListener; +import javafx.collections.ObservableList; +import javafx.geometry.Insets; +import javafx.geometry.Point2D; +import javafx.geometry.Pos; +import javafx.scene.Cursor; +import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.ScrollToEvent; +import javafx.scene.control.TextField; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.Background; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Region; +import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.shape.SVGPath; +import javafx.scene.text.TextAlignment; +import javafx.stage.Popup; +import smeen.component.code.block.control.BreakCodeBlock; +import smeen.component.code.block.control.FalseCodeBlockInput; +import smeen.component.code.block.control.IfCodeBlock; +import smeen.component.code.block.control.IfElseCodeBlock; +import smeen.component.code.block.control.RepeatCodeBlock; +import smeen.component.code.block.control.TrueCodeBlockInput; +import smeen.component.code.block.control.WaitCodeBlock; +import smeen.component.code.block.control.WaitUntilCodeBlock; +import smeen.component.code.block.control.WhileCodeBlock; +import smeen.component.code.block.event.BroadcastAndWaitCodeBlock; +import smeen.component.code.block.event.BroadcastCodeBlock; +import smeen.component.code.block.event.WhenClickedCodeBlock; +import smeen.component.code.block.event.WhenKeyPressedCodeBlock; +import smeen.component.code.block.event.WhenReceivedBroadcastCodeBlock; +import smeen.component.code.block.event.WhenSceneChangeToCodeBlock; +import smeen.component.code.block.event.WhenStartCodeBlock; +import smeen.component.code.block.look.ChangeCostumeCodeBlock; +import smeen.component.code.block.look.ChangeHeightCodeBlock; +import smeen.component.code.block.look.ChangeSceneCodeBlock; +import smeen.component.code.block.look.ChangeWidthCodeBlock; +import smeen.component.code.block.look.HideCodeBlock; +import smeen.component.code.block.look.SayCodeBlock; +import smeen.component.code.block.look.ShowCodeBlock; +import smeen.component.code.block.meen.BitkubCodeBlock; +import smeen.component.code.block.meen.TransformCodeBlock; +import smeen.component.code.block.meen.WhenBitCodeBlock; +import smeen.component.code.block.movement.GetXCodeBlockInput; +import smeen.component.code.block.movement.GetYCodeBlockInput; +import smeen.component.code.block.movement.MoveBackwardCodeBlock; +import smeen.component.code.block.movement.MoveForwardCodeBlock; +import smeen.component.code.block.movement.MoveToCodeBlock; +import smeen.component.code.block.movement.RotateClockwiseCodeBlock; +import smeen.component.code.block.movement.RotateCounterClockwiseCodeBlock; +import smeen.component.code.block.operator.inputBoolean.AndCodeBlockInput; +import smeen.component.code.block.operator.inputBoolean.EqualCodeBlockInput; +import smeen.component.code.block.operator.inputBoolean.GreaterCodeBlockInput; +import smeen.component.code.block.operator.inputBoolean.LessCodeBlockInput; +import smeen.component.code.block.operator.inputBoolean.NotCodeBlockInput; +import smeen.component.code.block.operator.inputBoolean.OrCodeBlockInput; +import smeen.component.code.block.operator.inputDouble.AddCodeBlockInput; +import smeen.component.code.block.operator.inputDouble.DivideCodeBlockInput; +import smeen.component.code.block.operator.inputDouble.FunctionOfCodeBlockInput; +import smeen.component.code.block.operator.inputDouble.MinusCodeBlockInput; +import smeen.component.code.block.operator.inputDouble.ModCodeBlockInput; +import smeen.component.code.block.operator.inputDouble.MultiCodeBlockInput; +import smeen.component.code.block.operator.inputDouble.RandomNumberCodeBlockInput; +import smeen.component.code.block.operator.inputDouble.RoundCodeBlockInput; +import smeen.component.code.block.operator.inputString.ContainCodeBlockInput; +import smeen.component.code.block.operator.inputString.JoinCodeBlockInput; +import smeen.component.code.block.operator.inputString.LetterOfCodeBlockInput; +import smeen.component.code.block.sensing.AnswerCodeBlockInput; +import smeen.component.code.block.sensing.AskAndWaitCodeBlock; +import smeen.component.code.block.sensing.KeyPressedCodeBlockInput; +import smeen.component.code.block.sensing.MouseDownCodeBlockInput; +import smeen.component.code.block.sensing.TouchingObjCodeBlockInput; +import smeen.component.code.block.variable.*; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.global.SmeenConstants.Type; +import smeen.global.SmeenSVGs; +import smeen.util.Resettable; +import smeen.util.Savable; +import smeen.views.MainView; + +import static smeen.global.SmeenComponent.createRegion; + +public class CodeSelector extends ScrollPane implements Resettable, Savable { + + private MainView main; + + private VBox createdVarPane; + //private ArrayList createdVarName; + private MapProperty createdVarMap; + + private ListProperty createdVarName; + + public CodeSelector(MainView main) { + this.main = main; + VBox root = new VBox(); + root.setFillWidth(false); + + // Movement + Label moveLabel = new Label("เคลื่อนไหว"); + moveLabel.setFont(Fonts.BASIC_BOLD_FONT); + + CodeBlock moveForward = new MoveForwardCodeBlock(main); + addMouseDragEventHandler(moveForward); + + CodeBlock moveBackward = new MoveBackwardCodeBlock(main); + addMouseDragEventHandler(moveBackward); + + CodeBlock rotateClock = new RotateClockwiseCodeBlock(main); + addMouseDragEventHandler(rotateClock); + + CodeBlock rotateCounterClock = new RotateCounterClockwiseCodeBlock(main); + addMouseDragEventHandler(rotateCounterClock); + + CodeBlock moveTo = new MoveToCodeBlock(main); + addMouseDragEventHandler(moveTo); + + CodeBlockInput getX = new GetXCodeBlockInput(main); + addMouseDragEventHandler(getX); + + CodeBlockInput getY = new GetYCodeBlockInput(main); + addMouseDragEventHandler(getY); + + root.getChildren().addAll(moveLabel, moveForward, moveBackward, rotateClock, rotateCounterClock, moveTo, getX, getY); + + // Look + Label lookLabel = new Label("การแสดง"); + lookLabel.setFont(Fonts.BASIC_BOLD_FONT); + + CodeBlock say = new SayCodeBlock(main); + addMouseDragEventHandler(say); + + CodeBlock changeWidth = new ChangeWidthCodeBlock(main); + addMouseDragEventHandler(changeWidth); + + CodeBlock changeHeight = new ChangeHeightCodeBlock(main); + addMouseDragEventHandler(changeHeight); + + CodeBlock changeCostume = new ChangeCostumeCodeBlock(main); + addMouseDragEventHandler(changeCostume); + + CodeBlock changeScene = new ChangeSceneCodeBlock(main); + addMouseDragEventHandler(changeScene); + + CodeBlock show = new ShowCodeBlock(main); + addMouseDragEventHandler(show); + + CodeBlock hide = new HideCodeBlock(main); + addMouseDragEventHandler(hide); + + root.getChildren().addAll(lookLabel, say, changeWidth, changeHeight, changeCostume, changeScene, show, hide); + + // Event + Label eventLabel = new Label("เหตุการณ์"); + eventLabel.setFont(Fonts.BASIC_BOLD_FONT); + + CodeBlock whenStart = new WhenStartCodeBlock(main); + addMouseDragEventHandler(whenStart); + + CodeBlock whenKeyPressed = new WhenKeyPressedCodeBlock(main); + addMouseDragEventHandler(whenKeyPressed); + + CodeBlock whenClicked = new WhenClickedCodeBlock(main); + addMouseDragEventHandler(whenClicked); + + CodeBlock whenSceneChangeTo = new WhenSceneChangeToCodeBlock(main); + addMouseDragEventHandler(whenSceneChangeTo); + + CodeBlock whenReceived = new WhenReceivedBroadcastCodeBlock(main); + addMouseDragEventHandler(whenReceived); + + CodeBlock broadcast = new BroadcastCodeBlock(main); + addMouseDragEventHandler(broadcast); + + CodeBlock broadcastAndWait = new BroadcastAndWaitCodeBlock(main); + addMouseDragEventHandler(broadcastAndWait); + + root.getChildren().addAll(eventLabel, whenStart, whenKeyPressed, whenClicked, whenSceneChangeTo, whenReceived, + createSubBlock(broadcast), createSubBlock(broadcastAndWait)); + + // Control + Label controlLabel = new Label("การควบคุม"); + controlLabel.setFont(Fonts.BASIC_BOLD_FONT); + + CodeBlock wait = new WaitCodeBlock(main); + addMouseDragEventHandler(wait); + + CodeBlock ifCb = new IfCodeBlock(main); + addMouseDragEventHandler(ifCb); + + CodeBlock ifElse = new IfElseCodeBlock(main); + addMouseDragEventHandler(ifElse); + + CodeBlock repeat = new RepeatCodeBlock(main); + addMouseDragEventHandler(repeat); + + CodeBlock whileCB = new WhileCodeBlock(main); + addMouseDragEventHandler(whileCB); + + CodeBlock waitUntil = new WaitUntilCodeBlock(main); + addMouseDragEventHandler(waitUntil); + + CodeBlock breakCB = new BreakCodeBlock(main); + addMouseDragEventHandler(breakCB); + + CodeBlockInput trueCB = new TrueCodeBlockInput(main); + addMouseDragEventHandler(trueCB); + + CodeBlockInput falseCB = new FalseCodeBlockInput(main); + addMouseDragEventHandler(falseCB); + + root.getChildren().addAll(controlLabel, ifCb, ifElse, repeat, whileCB, wait, waitUntil, breakCB, trueCB, falseCB); + + // Sensing + Label sensingLabel = new Label("การสัมผัส"); + sensingLabel.setFont(Fonts.BASIC_BOLD_FONT); + + CodeBlock askAndWait = new AskAndWaitCodeBlock(main); + addMouseDragEventHandler(askAndWait); + + CodeBlockInput answer = new AnswerCodeBlockInput(main); + addMouseDragEventHandler(answer); + HBox answerSub = createSubBlock(answer); + + CodeBlockInput touchingObj = new TouchingObjCodeBlockInput(main); + addMouseDragEventHandler(touchingObj); + + CodeBlockInput keyPressed = new KeyPressedCodeBlockInput(main); + addMouseDragEventHandler(keyPressed); + + CodeBlockInput mouseDown = new MouseDownCodeBlockInput(main); + addMouseDragEventHandler(mouseDown); + + root.getChildren().addAll(sensingLabel, askAndWait, answerSub, touchingObj, keyPressed, mouseDown); + + // Operator + // input Double + Label operNumLabel = new Label("การคำนวณ (ตัวเลข)"); + operNumLabel.setFont(Fonts.BASIC_BOLD_FONT); + + CodeBlockInput add = new AddCodeBlockInput(main); + addMouseDragEventHandler(add); + + CodeBlockInput minus = new MinusCodeBlockInput(main); + addMouseDragEventHandler(minus); + + CodeBlockInput multi = new MultiCodeBlockInput(main); + addMouseDragEventHandler(multi); + + CodeBlockInput divide = new DivideCodeBlockInput(main); + addMouseDragEventHandler(divide); + + CodeBlockInput mod = new ModCodeBlockInput(main); + addMouseDragEventHandler(mod); + + CodeBlockInput round = new RoundCodeBlockInput(main); + addMouseDragEventHandler(round); + + CodeBlockInput ranNum = new RandomNumberCodeBlockInput(main); + addMouseDragEventHandler(ranNum); + + CodeBlockInput function = new FunctionOfCodeBlockInput(main); + addMouseDragEventHandler(function); + + root.getChildren().addAll(operNumLabel, add, minus, multi, divide, mod, round, ranNum, function); + + // input Boolean + Label operBoolLabel = new Label("การคำนวณ (เปรียบเทียบ)"); + operBoolLabel.setFont(Fonts.BASIC_BOLD_FONT); + + CodeBlockInput greater = new GreaterCodeBlockInput(main); + addMouseDragEventHandler(greater); + + CodeBlockInput less = new LessCodeBlockInput(main); + addMouseDragEventHandler(less); + + CodeBlockInput equal = new EqualCodeBlockInput(main); + addMouseDragEventHandler(equal); + + CodeBlockInput and = new AndCodeBlockInput(main); + addMouseDragEventHandler(and); + + CodeBlockInput or = new OrCodeBlockInput(main); + addMouseDragEventHandler(or); + + CodeBlockInput not = new NotCodeBlockInput(main); + addMouseDragEventHandler(not); + + root.getChildren().addAll(operBoolLabel, greater, less, equal, and, or, not); + + // input String + Label operStrLabel = new Label("การคำนวณ (ตัวอักษร)"); + operStrLabel.setFont(Fonts.BASIC_BOLD_FONT); + + CodeBlockInput join = new JoinCodeBlockInput(main); + addMouseDragEventHandler(join); + + CodeBlockInput letterOf = new LetterOfCodeBlockInput(main); + addMouseDragEventHandler(letterOf); + + CodeBlockInput contain = new ContainCodeBlockInput(main); + addMouseDragEventHandler(contain); + + root.getChildren().addAll(operStrLabel, join, letterOf, contain); + + // Meen + +// Label meen = new Label("การมีน"); +// meen.setFont(Fonts.BASIC_BOLD_FONT); +// +// CodeBlock bit = new BitkubCodeBlock(main); +// addMouseDragEventHandler(bit); +// +// CodeBlock whenbit = new WhenBitCodeBlock(main); +// addMouseDragEventHandler(whenbit); +// +// CodeBlock transform = new TransformCodeBlock(main); +// addMouseDragEventHandler(transform); +// +// root.getChildren().addAll(meen, bit, createSubBlock(whenbit), transform); + + // Variable + + Label vari = new Label("การสร้างตัวแปร"); + vari.setFont(Fonts.BASIC_BOLD_FONT); + + Button addVar = new CreateVarButton(main, this); + createdVarPane = new VBox(); + createdVarMap = new SimpleMapProperty<>(FXCollections.observableMap(new ConcurrentHashMap<>())); + createdVarPane.setSpacing(5); + + createdVarName = new SimpleListProperty<>(FXCollections.observableArrayList()); + createdVarMap.addListener((MapChangeListener) c -> { + if (c.wasAdded()) { + if (!createdVarName.contains(c.getKey())) + createdVarName.add(c.getKey()); + } else { + createdVarName.remove(c.getKey()); + } + }); + // ((CreateVarButton)addVar).addVar("variable" , Type.Double); + + CodeBlock setVar = new SetVarCodeBlock(main, this); + addMouseDragEventHandler(setVar); + setVar.setVisible(false); + + CodeBlock showVar = new ShowVarCodeBlock(main, this); + addMouseDragEventHandler(showVar); + showVar.setVisible(false); + + CodeBlock hideVar = new HideVarCodeBlock(main, this); + addMouseDragEventHandler(hideVar); + hideVar.setVisible(false); + + createdVarPane.getChildren().addListener(new InvalidationListener() { + + private int size = createdVarPane.getChildren().size(); + + @Override + public void invalidated(Observable o) { + int newSize = createdVarPane.getChildren().size(); + if (size != newSize) { // prevent triggering if the size did not change + if (newSize == 0) { + setVar.setVisible(false); + showVar.setVisible(false); + hideVar.setVisible(false); + } else if (newSize > 0) { + setVar.setVisible(true); + showVar.setVisible(true); + hideVar.setVisible(true); + } + } + size = newSize; + } + }); + + root.getChildren().addAll(vari, addVar, createdVarPane); + root.getChildren().addAll(setVar, showVar, hideVar); + root.setSpacing(5); + root.setPadding(new Insets(0, 10, 0, 10)); + + setHbarPolicy(ScrollBarPolicy.NEVER); + setMinWidth(280); + + setContent(root); + + // if focus at Scene CodeArea + main.codeAreaProperty().addListener((obs, oldv, newv) -> { + boolean isVisible = true; + if (newv == null || newv.getSprite() == null) { + isVisible = false; + } + // setVisible + moveLabel.setVisible(isVisible); + moveForward.setVisible(isVisible); + moveBackward.setVisible(isVisible); + rotateClock.setVisible(isVisible); + rotateCounterClock.setVisible(isVisible); + moveTo.setVisible(isVisible); + getX.setVisible(isVisible); + getY.setVisible(isVisible); + + //lookLabel.setVisible(isVisible); + changeWidth.setVisible(isVisible); + changeHeight.setVisible(isVisible); + changeCostume.setVisible(isVisible); + say.setVisible(isVisible); + hide.setVisible(isVisible); + show.setVisible(isVisible); + + askAndWait.setVisible(isVisible); + answerSub.setVisible(isVisible); + +// transform.setVisible(isVisible); + + // setManaged + moveLabel.setManaged(isVisible); + moveLabel.setManaged(isVisible); + moveForward.setManaged(isVisible); + moveBackward.setManaged(isVisible); + rotateClock.setManaged(isVisible); + rotateCounterClock.setManaged(isVisible); + moveTo.setManaged(isVisible); + getX.setManaged(isVisible); + getY.setManaged(isVisible); + + //lookLabel.setManaged(isVisible); + changeWidth.setManaged(isVisible); + changeHeight.setManaged(isVisible); + changeCostume.setManaged(isVisible); + say.setManaged(isVisible); + hide.setManaged(isVisible); + show.setManaged(isVisible); + + askAndWait.setManaged(isVisible); + answerSub.setManaged(isVisible); + +// transform.setManaged(isVisible); + }); + + } + + private void addMouseDragEventHandler(CodeBlock block) { + block.addEventHandler(MouseEvent.DRAG_DETECTED, e -> { + startFullDrag(); + + CodeBlockList toDrag = new CodeBlockList(main); + CodeBlock copy = block.copy(); + toDrag.getCodeList().getChildren().add(copy); + + // set the position of the node from relative to the parent to relative to the + // scene. + Point2D pos = block.localToScene(0, 0); + toDrag.relocate(pos.getX(), pos.getY()); + + main.draggingProperty().set(toDrag); + }); + } + + public void addMouseDragEventHandler(CodeBlockInput block) { + block.addEventHandler(MouseEvent.DRAG_DETECTED, e -> { + startFullDrag(); + + CodeBlockInput copy = block.copy(); + + // set the position of the node from relative to the parent to relative to the + // scene. + Point2D pos = block.localToScene(0, 0); + copy.relocate(pos.getX(), pos.getY()); + + main.draggingProperty().set(copy); + }); + } + + public HBox createSubBlock(Node node) { + HBox res = new HBox(); + + int size = 24; + SVGPath subTask = new SVGPath(); + subTask.setContent(SmeenSVGs.SUBTASK_PATH); + Region subTaskIcon = new Region(); + subTaskIcon.setShape(subTask); + subTaskIcon.setMaxSize(size, size); + subTaskIcon.setMinSize(size, size); + subTaskIcon.setBackground(Background.fill(Color.BLACK)); + // subTaskIcon.setRotate(90); + res.getChildren().addAll(subTaskIcon, node); + HBox.setMargin(subTaskIcon, new Insets(0, 10, 0, 10)); + res.setAlignment(Pos.CENTER_LEFT); + + return res; + } + + public void addVar(String name, Type type) { + // add name of Variable to codeSelector first + createdVarMapProperty().put(name, type); + + Object val = null; + if (type.equals(Type.String)) + val = ""; + else if (type.equals(Type.Double)) + val = 0.0; + else if (type.equals(Type.Boolean)) + val = false; + main.getCodeExecutionHandler().getContext().setVariable(name, val); + + int sizeIcon = 30; + HBox varWrap = new HBox(); + Region delIcon1 = createRegion(SmeenSVGs.DELETE_PATH1, 20); + delIcon1.setBackground(Background.fill(Color.RED)); + Region delIcon2 = createRegion(SmeenSVGs.DELETE_PATH2, 12.5); + delIcon2.setBackground(Background.fill(Color.WHITE)); + Region delIcon3 = createRegion(SmeenSVGs.DELETE_PATH3, 12.5); + delIcon3.setBackground(Background.fill(Color.WHITE)); + StackPane delIcon = new StackPane(); + delIcon.getChildren().addAll(delIcon1, delIcon2, delIcon3); + delIcon.setAlignment(Pos.CENTER); + delIcon.setCursor(Cursor.HAND); + delIcon.setMaxSize(sizeIcon, sizeIcon); + delIcon.setMinSize(sizeIcon, sizeIcon); + delIcon.setOnMouseClicked(e -> { + for (Node search : main.getCodeSelector().getCreatedVar().getChildren()) { + if (search instanceof HBox currentVarWrap && currentVarWrap.getChildren().get(0).equals(delIcon)) { + createdVarMapProperty().remove(((VariableCodeBlockInput) (currentVarWrap.getChildren().get(1))).nameProperty().get()); + getCreatedVar().getChildren().remove(currentVarWrap); + + break; + } + } + }); + + // Create Var CB here + VariableCodeBlockInput varBlock = new VariableCodeBlockInput<>(main, type, name); + addMouseDragEventHandler(varBlock); + + // Comment this for now + //varWrap.getChildren().addAll(delIcon , varBlock); + + varWrap.getChildren().addAll(createSubBlock(varBlock)); + varWrap.setAlignment(Pos.CENTER_LEFT); + varWrap.setSpacing(10); + getCreatedVar().getChildren().add(varWrap); + } + + public VBox getCreatedVar() { + return createdVarPane; + } + + public MapProperty createdVarMapProperty() { + return createdVarMap; + } + + public ReadOnlyListProperty createdVarNameProperty() { + return createdVarName; + } + + + @Override + public void clearData() { + createdVarMap.clear(); + createdVarPane.getChildren().clear(); + } + + @Override + public void reset() { + clearData(); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("createdVar", new HashMap<>(createdVarMap)); + return result; + } + + @Override + public void importData(Map data) { + Map cv = (Map) data.get("createdVar"); + for (var e : cv.entrySet()) + addVar(e.getKey(), e.getValue()); + } +} diff --git a/src/smeen/component/code/block/control/BreakCodeBlock.java b/src/smeen/component/code/block/control/BreakCodeBlock.java new file mode 100644 index 0000000..ffadc05 --- /dev/null +++ b/src/smeen/component/code/block/control/BreakCodeBlock.java @@ -0,0 +1,50 @@ +package smeen.component.code.block.control; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.global.Fonts; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +public class BreakCodeBlock extends CodeBlock { + public BreakCodeBlock(MainView main) { + super(main); + Label first = new Label("หยุด"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.ORANGE)); + + getContent().getChildren().addAll(first); + } + + @Override + public CodeBlock copy() { + BreakCodeBlock copy = new BreakCodeBlock(getMain()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + return new Executable.Result(true, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "BreakCodeBlock"); + return result; + } + + @Override + public void importData(Map data) { + // no op; + } +} diff --git a/src/smeen/component/code/block/control/FalseCodeBlockInput.java b/src/smeen/component/code/block/control/FalseCodeBlockInput.java new file mode 100644 index 0000000..aae5370 --- /dev/null +++ b/src/smeen/component/code/block/control/FalseCodeBlockInput.java @@ -0,0 +1,60 @@ +package smeen.component.code.block.control; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class FalseCodeBlockInput extends CodeBlockInput { + public FalseCodeBlockInput(MainView main) { + super(main); + Label first = new Label("เท็จ"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + + getContent().setBackground(new Background(new BackgroundFill(Color.ORANGE, new CornerRadii(20), null))); + getContent().getChildren().addAll(first); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + FalseCodeBlockInput copy = new FalseCodeBlockInput(getMain()); + return copy; + } + + public Type getType() { + return Type.Boolean; + } + + @Override + public Boolean getValue(SmeenContext context) { + return false; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "FalseCodeBlockInput"); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/control/IfCodeBlock.java b/src/smeen/component/code/block/control/IfCodeBlock.java new file mode 100644 index 0000000..114a0c0 --- /dev/null +++ b/src/smeen/component/code/block/control/IfCodeBlock.java @@ -0,0 +1,97 @@ +package smeen.component.code.block.control; + +import javafx.beans.binding.Bindings; +import javafx.collections.ListChangeListener; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Node; +import javafx.scene.control.Control; +import javafx.scene.control.Label; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import javafx.scene.shape.Rectangle; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.component.code.CodeBlockList; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.util.SmeenLayouts; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + + +public class IfCodeBlock extends CodeBlock { + + private CodeBlockInputSlot conditionInput; + + private CodeBlockList caseTrue; + + public IfCodeBlock(MainView main) { + super(main); + + VBox root = new VBox(); + + HBox condition = new HBox(); + condition.setAlignment(Pos.CENTER); + condition.setSpacing(10); + condition.setPadding(new Insets(10, 10, 5, 5)); + condition.setBackground(Background.fill(Color.ORANGE)); + + Label first = new Label("ถ้า"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + conditionInput = new CodeBlockInputSlot<>(main, SmeenConstants.Type.Boolean); + + Label second = new Label("แล้ว"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + condition.getChildren().addAll(first, conditionInput, second); + + caseTrue = new CodeBlockList(main); + caseTrue.setMinSize(64, 48); + caseTrue.setPadding(new Insets(2)); + caseTrue.setBorder(SmeenConstants.INNER_CODE_BLOCK_LIST_ORANGE_BORDER); + + root.getChildren().addAll(condition, caseTrue); + + getContent().setBackground(null); + getContent().setPadding(Insets.EMPTY); + getContent().getChildren().addAll(root); + } + + @Override + public CodeBlock copy() { + IfCodeBlock copy = new IfCodeBlock(getMain()); + copy.conditionInput.getTextField().setText(conditionInput.getTextField().getText()); + return copy; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "IfCodeBlock"); + result.put("condition", conditionInput.exportData()); + result.put("caseTrue", caseTrue.exportData()); + return result; + } + + @Override + public void importData(Map data) { + conditionInput.importData((Map) data.get("condition")); + caseTrue.importData((Map) data.get("caseTrue")); + } + + @Override + public Executable.Result execute(SmeenContext context) { + if (conditionInput.getValue(context)) + return caseTrue.execute(context); + return new Executable.Result(false, false); + } +} diff --git a/src/smeen/component/code/block/control/IfElseCodeBlock.java b/src/smeen/component/code/block/control/IfElseCodeBlock.java new file mode 100644 index 0000000..070e3ed --- /dev/null +++ b/src/smeen/component/code/block/control/IfElseCodeBlock.java @@ -0,0 +1,115 @@ +package smeen.component.code.block.control; + +import java.util.HashMap; +import java.util.Map; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.Border; +import javafx.scene.layout.BorderStroke; +import javafx.scene.layout.BorderStrokeStyle; +import javafx.scene.layout.BorderWidths; +import javafx.scene.layout.CornerRadii; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.text.TextAlignment; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.component.code.CodeBlockList; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class IfElseCodeBlock extends CodeBlock { + private CodeBlockInputSlot conditionInput; + + private CodeBlockList caseTrue; + + private CodeBlockList caseFalse; + + public IfElseCodeBlock(MainView main) { + super(main); + + VBox root = new VBox(); + + HBox condition = new HBox(); + condition.setAlignment(Pos.CENTER); + condition.setSpacing(10); + condition.setPadding(new Insets(10, 10, 5, 5)); + condition.setBackground(Background.fill(Color.ORANGE)); + + Label first = new Label("ถ้า"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + conditionInput = new CodeBlockInputSlot<>(main, Type.Boolean); + + Label second = new Label("แล้ว"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + condition.getChildren().addAll(first, conditionInput, second); + + caseTrue = new CodeBlockList(main); + caseTrue.setMinSize(64, 24); + caseTrue.setPadding(new Insets(2)); + caseTrue.setBorder(new Border(new BorderStroke(Color.ORANGE, Color.ORANGE, Color.ORANGE, Color.ORANGE, BorderStrokeStyle.NONE, BorderStrokeStyle.NONE, BorderStrokeStyle.NONE, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(0, 0, 0, 24), Insets.EMPTY))); + + Label third = new Label("นอกจากนั้น"); + third.setTextFill(Color.WHITE); + third.setFont(Fonts.SMALL_REGULAR_FONT); + HBox thirdWrap = new HBox(third); + thirdWrap.setPadding(new Insets(10, 10, 5, 5)); + thirdWrap.setBackground(Background.fill(Color.ORANGE)); + thirdWrap.setAlignment(Pos.CENTER); + + caseFalse = new CodeBlockList(main); + caseFalse.setMinSize(64, 48); + caseFalse.setPadding(new Insets(2)); + caseFalse.setBorder(SmeenConstants.INNER_CODE_BLOCK_LIST_ORANGE_BORDER); + + root.getChildren().addAll(condition, caseTrue, thirdWrap, caseFalse); + + getContent().setBackground(null); + getContent().setPadding(Insets.EMPTY); + getContent().getChildren().addAll(root); + } + + @Override + public CodeBlock copy() { + IfElseCodeBlock copy = new IfElseCodeBlock(getMain()); + copy.conditionInput.getTextField().setText(conditionInput.getTextField().getText()); + return copy; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "IfElseCodeBlock"); + result.put("condition", conditionInput.exportData()); + result.put("caseTrue", caseTrue.exportData()); + result.put("caseFalse", caseFalse.exportData()); + return result; + } + + @Override + public void importData(Map data) { + conditionInput.importData((Map) data.get("condition")); + caseTrue.importData((Map) data.get("caseTrue")); + caseFalse.importData((Map) data.get("caseFalse")); + } + + @Override + public Executable.Result execute(SmeenContext context) { + if (conditionInput.getValue(context)) + return caseTrue.execute(context); + else + return caseFalse.execute(context); + } +} diff --git a/src/smeen/component/code/block/control/RepeatCodeBlock.java b/src/smeen/component/code/block/control/RepeatCodeBlock.java new file mode 100644 index 0000000..b1561b6 --- /dev/null +++ b/src/smeen/component/code/block/control/RepeatCodeBlock.java @@ -0,0 +1,108 @@ +package smeen.component.code.block.control; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.component.code.CodeBlockList; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.logic.CodeExecutionHandler; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ForkJoinPool; + +public class RepeatCodeBlock extends CodeBlock { + private CodeBlockInputSlot timeInput; + + private CodeBlockList toRun; + + public RepeatCodeBlock(MainView main) { + super(main); + + VBox root = new VBox(); + + HBox condition = new HBox(); + condition.setAlignment(Pos.CENTER); + condition.setSpacing(10); + condition.setPadding(new Insets(10, 10, 5, 5)); + condition.setBackground(Background.fill(Color.ORANGE)); + + Label first = new Label("วนซ้ำ"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + timeInput = new CodeBlockInputSlot<>(main, SmeenConstants.Type.Double); + + Label second = new Label("ครั้ง"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + condition.getChildren().addAll(first, timeInput, second); + + toRun = new CodeBlockList(main); + toRun.setMinSize(64, 48); + toRun.setPadding(new Insets(2)); + toRun.setBorder(SmeenConstants.INNER_CODE_BLOCK_LIST_ORANGE_BORDER); + + root.getChildren().addAll(condition, toRun); + + getContent().setBackground(null); + getContent().setPadding(Insets.EMPTY); + getContent().getChildren().addAll(root); + } + + @Override + public CodeBlock copy() { + RepeatCodeBlock copy = new RepeatCodeBlock(getMain()); + copy.timeInput.getTextField().setText(timeInput.getTextField().getText()); + return copy; + } + + @Override + public Executable.Result execute(SmeenContext context) { + int amt = timeInput.getValue(context).intValue(); + if (amt == 0) + return new Executable.Result(false, false); + + for (int i = 0; i < amt; i++) { + Executable.Result result = toRun.execute(context); + + if(result.shouldStop() || Thread.currentThread().isInterrupted()) + return new Result(false,true); + if (result.shouldBreak()) + break; // stop passing the shouldBreak chain bubbling up here. + try { + Thread.sleep(SmeenConstants.EXECUTION_DELAY); + } catch (InterruptedException e) { + return new Result(false, true); + } + } + return new Executable.Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "RepeatCodeBlock"); + result.put("time", timeInput.exportData()); + result.put("toRun", toRun.exportData()); + return result; + } + + @Override + public void importData(Map data) { + timeInput.importData((Map) data.get("time")); + toRun.importData((Map)data.get("toRun")); + } +} diff --git a/src/smeen/component/code/block/control/TrueCodeBlockInput.java b/src/smeen/component/code/block/control/TrueCodeBlockInput.java new file mode 100644 index 0000000..ff2d1e8 --- /dev/null +++ b/src/smeen/component/code/block/control/TrueCodeBlockInput.java @@ -0,0 +1,60 @@ +package smeen.component.code.block.control; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class TrueCodeBlockInput extends CodeBlockInput { + + public TrueCodeBlockInput(MainView main) { + super(main); + Label first = new Label("จริง"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.ORANGE, new CornerRadii(20), null))); + getContent().getChildren().addAll(first); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + TrueCodeBlockInput copy = new TrueCodeBlockInput(getMain()); + return copy; + } + + public Type getType() { + return Type.Boolean; + } + + @Override + public Boolean getValue(SmeenContext context) { + return true; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "TrueCodeBlockInput"); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/control/WaitCodeBlock.java b/src/smeen/component/code/block/control/WaitCodeBlock.java new file mode 100644 index 0000000..a96e2a6 --- /dev/null +++ b/src/smeen/component/code/block/control/WaitCodeBlock.java @@ -0,0 +1,69 @@ +package smeen.component.code.block.control; + +import java.util.HashMap; +import java.util.Map; + +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class WaitCodeBlock extends CodeBlock { + + private CodeBlockInputSlot amount; + public WaitCodeBlock(MainView main){ + super(main); + Label first = new Label("รอ"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + amount = new CodeBlockInputSlot<>(main, Type.Double); + + Label second = new Label("วินาที"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.ORANGE)); + + getContent().getChildren().addAll(first, amount, second); + } + + @Override + public CodeBlock copy() { + WaitCodeBlock copy = new WaitCodeBlock(getMain()); + copy.amount.getTextField().setText(amount.getTextField().getText()); + return copy; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "WaitCodeBlock"); + result.put("amount", amount.exportData()); + return result; + } + + @Override + public void importData(Map data) { + amount.importData((Map) data.get("amount")); + } + + @Override + public Result execute(SmeenContext context) { + long millis = (long) (amount.getValue(context) * 1000); + try { + Thread.sleep(millis); + } catch (InterruptedException e) { + return new Result(false,true); + } + return new Result(false, false); + } +} diff --git a/src/smeen/component/code/block/control/WaitUntilCodeBlock.java b/src/smeen/component/code/block/control/WaitUntilCodeBlock.java new file mode 100644 index 0000000..7b790fd --- /dev/null +++ b/src/smeen/component/code/block/control/WaitUntilCodeBlock.java @@ -0,0 +1,81 @@ +package smeen.component.code.block.control; + +import java.util.HashMap; +import java.util.Map; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.component.code.CodeBlockList; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class WaitUntilCodeBlock extends CodeBlock { + private CodeBlockInputSlot conditionInput; + + public WaitUntilCodeBlock(MainView main) { + super(main); + + VBox root = new VBox(); + + HBox condition = new HBox(); + condition.setAlignment(Pos.CENTER); + condition.setSpacing(10); + condition.setPadding(new Insets(10, 10, 5, 5)); + condition.setBackground(Background.fill(Color.ORANGE)); + + Label first = new Label("รอจนกระทั่ง"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + conditionInput = new CodeBlockInputSlot<>(main, SmeenConstants.Type.Boolean); + + condition.getChildren().addAll(first, conditionInput); + + root.getChildren().addAll(condition); + + getContent().setBackground(null); + getContent().setPadding(Insets.EMPTY); + getContent().getChildren().addAll(root); + } + + @Override + public CodeBlock copy() { + WaitUntilCodeBlock copy = new WaitUntilCodeBlock(getMain()); + copy.conditionInput.getTextField().setText(conditionInput.getTextField().getText()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + while (!conditionInput.getValue(context)) { + try { + Thread.sleep(SmeenConstants.EXECUTION_DELAY); + } catch (InterruptedException e) { + return new Result(false, true); + } + } + return new Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "WaitUntilCodeBlock"); + result.put("condition", conditionInput.exportData()); + return result; + } + + @Override + public void importData(Map data) { + conditionInput.importData((Map) data.get("condition")); + } +} diff --git a/src/smeen/component/code/block/control/WhileCodeBlock.java b/src/smeen/component/code/block/control/WhileCodeBlock.java new file mode 100644 index 0000000..d0ca7af --- /dev/null +++ b/src/smeen/component/code/block/control/WhileCodeBlock.java @@ -0,0 +1,99 @@ +package smeen.component.code.block.control; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.component.code.CodeBlockList; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.logic.CodeExecutionHandler; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +public class WhileCodeBlock extends CodeBlock { + private CodeBlockInputSlot conditionInput; + + private CodeBlockList toRun; + + public WhileCodeBlock(MainView main) { + super(main); + + VBox root = new VBox(); + + HBox condition = new HBox(); + condition.setAlignment(Pos.CENTER); + condition.setSpacing(10); + condition.setPadding(new Insets(10, 10, 5, 5)); + condition.setBackground(Background.fill(Color.ORANGE)); + + Label first = new Label("วนซ้ำจนกระทั่ง"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + conditionInput = new CodeBlockInputSlot<>(main, SmeenConstants.Type.Boolean); + + condition.getChildren().addAll(first, conditionInput); + + toRun = new CodeBlockList(main); + toRun.setMinSize(64, 48); + toRun.setPadding(new Insets(2)); + toRun.setBorder(SmeenConstants.INNER_CODE_BLOCK_LIST_ORANGE_BORDER); + + root.getChildren().addAll(condition, toRun); + + getContent().setBackground(null); + getContent().setPadding(Insets.EMPTY); + getContent().getChildren().addAll(root); + } + + @Override + public CodeBlock copy() { + WhileCodeBlock copy = new WhileCodeBlock(getMain()); + copy.conditionInput.getTextField().setText(conditionInput.getTextField().getText()); + return copy; + } + + @Override + public Executable.Result execute(SmeenContext context) { + while (!conditionInput.getValue(context)) { + Executable.Result result = toRun.execute(context); + + if (result.shouldStop() || Thread.currentThread().isInterrupted()) + return new Result(false, true); + if (result.shouldBreak()) + break; // stop passing the shouldBreak chain bubbling up here. + try { + Thread.sleep(SmeenConstants.EXECUTION_DELAY); + } catch (InterruptedException e) { + return new Result(false, true); + } + } + return new Executable.Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "WhileCodeBlock"); + result.put("condition", conditionInput.exportData()); + result.put("toRun", toRun.exportData()); + return result; + } + + @Override + public void importData(Map data) { + conditionInput.importData((Map) data.get("condition")); + toRun.importData((Map) data.get("toRun")); + } +} diff --git a/src/smeen/component/code/block/event/BroadcastAndWaitCodeBlock.java b/src/smeen/component/code/block/event/BroadcastAndWaitCodeBlock.java new file mode 100644 index 0000000..c3df048 --- /dev/null +++ b/src/smeen/component/code/block/event/BroadcastAndWaitCodeBlock.java @@ -0,0 +1,71 @@ +package smeen.component.code.block.event; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ExecutionException; + +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class BroadcastAndWaitCodeBlock extends CodeBlock { + + private CodeBlockInputSlot broadcast; + + public BroadcastAndWaitCodeBlock(MainView main) { + super(main); + Label first = new Label("ประกาศคำสั่ง"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + broadcast = new CodeBlockInputSlot<>(main, Type.String); + + Label second = new Label("และรอ"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.GOLD)); + + getContent().getChildren().addAll(first, broadcast, second); + } + + + + @Override + public CodeBlock copy() { + BroadcastAndWaitCodeBlock copy = new BroadcastAndWaitCodeBlock(getMain()); + copy.broadcast.getTextField().setText(broadcast.getTextField().getText()); + return copy; + } + @Override + public Result execute(SmeenContext context) { + String name = broadcast.getValue(context); + try { + getMain().getCodeExecutionHandler().broadcast(name).get(); + } catch (InterruptedException e) { + return new Result(false, true); + } catch (ExecutionException e) { + e.printStackTrace(); + } + return new Result(false, false); + } + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "BroadcastAndWaitCodeBlock"); + result.put("broadcast", broadcast.exportData()); + return result; + } + + @Override + public void importData(Map data) { + broadcast.importData((Map) data.get("broadcast")); + } +} diff --git a/src/smeen/component/code/block/event/BroadcastCodeBlock.java b/src/smeen/component/code/block/event/BroadcastCodeBlock.java new file mode 100644 index 0000000..4dbc691 --- /dev/null +++ b/src/smeen/component/code/block/event/BroadcastCodeBlock.java @@ -0,0 +1,61 @@ +package smeen.component.code.block.event; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.Future; + +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class BroadcastCodeBlock extends CodeBlock { + + private CodeBlockInputSlot broadcast; + + public BroadcastCodeBlock(MainView main) { + super(main); + Label first = new Label("ประกาศคำสั่ง"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + broadcast = new CodeBlockInputSlot<>(main, Type.String); + + getContent().setBackground(Background.fill(Color.GOLD)); + + getContent().getChildren().addAll(first, broadcast); + } + + @Override + public CodeBlock copy() { + BroadcastCodeBlock copy = new BroadcastCodeBlock(getMain()); + copy.broadcast.getTextField().setText(broadcast.getTextField().getText()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + String name = broadcast.getValue(context); + getMain().getCodeExecutionHandler().broadcast(name); + return new Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "BroadcastCodeBlock"); + result.put("broadcast", broadcast.exportData()); + return result; + } + + @Override + public void importData(Map data) { + broadcast.importData((Map) data.get("broadcast")); + } +} diff --git a/src/smeen/component/code/block/event/WhenClickedCodeBlock.java b/src/smeen/component/code/block/event/WhenClickedCodeBlock.java new file mode 100644 index 0000000..a76a20c --- /dev/null +++ b/src/smeen/component/code/block/event/WhenClickedCodeBlock.java @@ -0,0 +1,56 @@ +package smeen.component.code.block.event; + +import java.util.HashMap; +import java.util.Map; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.global.Fonts; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class WhenClickedCodeBlock extends CodeBlock { + + public WhenClickedCodeBlock(MainView main){ + super(main); + Label first = new Label("เมื่อถูกกด"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + + getContent().setBackground(Background.fill(Color.GOLD)); + + getContent().getChildren().addAll(first); + } + + @Override + public boolean mustBeFirstBlock() { + return true; + } + + @Override + public CodeBlock copy() { + WhenClickedCodeBlock copy = new WhenClickedCodeBlock(getMain()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + // no op + return new Result(false,false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "WhenClickedCodeBlock"); + return result; + } + + @Override + public void importData(Map data) { + + } +} diff --git a/src/smeen/component/code/block/event/WhenKeyPressedCodeBlock.java b/src/smeen/component/code/block/event/WhenKeyPressedCodeBlock.java new file mode 100644 index 0000000..ae03a0a --- /dev/null +++ b/src/smeen/component/code/block/event/WhenKeyPressedCodeBlock.java @@ -0,0 +1,93 @@ +package smeen.component.code.block.event; + +import java.util.HashMap; +import java.util.Map; + +import javafx.scene.control.ComboBox; +import javafx.scene.control.Label; +import javafx.scene.control.ListCell; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.global.SmeenConstants.KeyPress; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class WhenKeyPressedCodeBlock extends CodeBlock { + + private ComboBox optionBox; + + public WhenKeyPressedCodeBlock(MainView main) { + super(main); + Label first = new Label("เมื่อกดปุ่ม"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + optionBox = new ComboBox<>(); + optionBox.getItems().addAll(KeyPress.values()); + optionBox.setValue(optionBox.getItems().get(0)); + + // set selectBox of optionBox size + optionBox.setPrefHeight(30); + optionBox.setCellFactory(param -> new ListCell() { + { + // set the height of the cell + setPrefHeight(30); + } + + @Override + protected void updateItem(KeyPress item, boolean empty) { + super.updateItem(item, empty); + if (!empty && item != null) { + setText(item.toString()); + } else { + setText(null); + } + + } + }); + + optionBox.setVisibleRowCount(5); + + + getContent().setBackground(Background.fill(Color.GOLD)); + getContent().getChildren().addAll(first, optionBox); + } + + @Override + public CodeBlock copy() { + WhenKeyPressedCodeBlock copy = new WhenKeyPressedCodeBlock(getMain()); + copy.optionBox.setValue(optionBox.getValue()); + return copy; + } + + public ComboBox getOptionBox() { + return optionBox; + } + + @Override + public boolean mustBeFirstBlock() { + return true; + } + + @Override + public Result execute(SmeenContext context) { + // no op + return new Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "WhenKeyPressedCodeBlock"); + result.put("option", optionBox.getValue()); + return result; + } + + @Override + public void importData(Map data) { + optionBox.setValue((KeyPress) data.get("option")); + } +} diff --git a/src/smeen/component/code/block/event/WhenReceivedBroadcastCodeBlock.java b/src/smeen/component/code/block/event/WhenReceivedBroadcastCodeBlock.java new file mode 100644 index 0000000..317538c --- /dev/null +++ b/src/smeen/component/code/block/event/WhenReceivedBroadcastCodeBlock.java @@ -0,0 +1,67 @@ +package smeen.component.code.block.event; + +import java.util.HashMap; +import java.util.Map; + +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class WhenReceivedBroadcastCodeBlock extends CodeBlock { + + private CodeBlockInputSlot broadcast; + public WhenReceivedBroadcastCodeBlock(MainView main){ + super(main); + Label first = new Label("เมื่อได้รับคำสั่ง"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + broadcast = new CodeBlockInputSlot<>(main, Type.String); + + getContent().setBackground(Background.fill(Color.GOLD)); + + getContent().getChildren().addAll(first, broadcast); + } + + @Override + public boolean mustBeFirstBlock() { + return true; + } + + public String getBroadcastName(SmeenContext context){ + return broadcast.getValue(context); + } + + @Override + public CodeBlock copy() { + WhenReceivedBroadcastCodeBlock copy = new WhenReceivedBroadcastCodeBlock(getMain()); + copy.broadcast.getTextField().setText(broadcast.getTextField().getText()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + // no op + return new Result(false,false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "WhenReceivedBroadcastCodeBlock"); + result.put("broadcast", broadcast.exportData()); + return result; + } + + @Override + public void importData(Map data) { + broadcast.importData((Map) data.get("broadcast")); + } +} diff --git a/src/smeen/component/code/block/event/WhenSceneChangeToCodeBlock.java b/src/smeen/component/code/block/event/WhenSceneChangeToCodeBlock.java new file mode 100644 index 0000000..6c6c719 --- /dev/null +++ b/src/smeen/component/code/block/event/WhenSceneChangeToCodeBlock.java @@ -0,0 +1,68 @@ +package smeen.component.code.block.event; + +import java.util.HashMap; +import java.util.Map; + +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class WhenSceneChangeToCodeBlock extends CodeBlock { + + private CodeBlockInputSlot posScene; + public WhenSceneChangeToCodeBlock(MainView main){ + super(main); + Label first = new Label("เมื่อฉากเปลี่ยนเป็นรูปแบบที่"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + posScene = new CodeBlockInputSlot<>(main, Type.Double); + + getContent().setBackground(Background.fill(Color.GOLD)); + + getContent().getChildren().addAll(first, posScene); + } + + public int getPosScene(SmeenContext context){ + return posScene.getValue(context).intValue(); + } + @Override + public boolean mustBeFirstBlock() { + return true; + } + + @Override + public CodeBlock copy() { + WhenSceneChangeToCodeBlock copy = new WhenSceneChangeToCodeBlock(getMain()); + copy.posScene.getTextField().setText(posScene.getTextField().getText()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + // no op + return new Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "WhenSceneChangeToCodeBlock"); + result.put("posScene", posScene.exportData()); + return result; + } + + @Override + public void importData(Map data) { + posScene.importData((Map) data.get("posScene")); + } +} diff --git a/src/smeen/component/code/block/event/WhenStartCodeBlock.java b/src/smeen/component/code/block/event/WhenStartCodeBlock.java new file mode 100644 index 0000000..a8dcc4b --- /dev/null +++ b/src/smeen/component/code/block/event/WhenStartCodeBlock.java @@ -0,0 +1,67 @@ +package smeen.component.code.block.event; + +import java.util.HashMap; +import java.util.Map; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.Region; +import javafx.scene.paint.Color; +import javafx.scene.shape.SVGPath; +import smeen.component.code.CodeBlock; +import smeen.global.Fonts; +import smeen.global.SmeenSVGs; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class WhenStartCodeBlock extends CodeBlock { + + public WhenStartCodeBlock(MainView main){ + super(main); + Label first = new Label("เมื่อกด"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + SVGPath flagPath = new SVGPath(); + flagPath.setContent(SmeenSVGs.FLAG_PATH); + Region flagRegion = new Region(); + flagRegion.setShape(flagPath); + flagRegion.setBackground(Background.fill(Color.web("#00ff33"))); + flagRegion.setMaxSize(16,20); + flagRegion.setPrefSize(16, 20); + + getContent().setBackground(Background.fill(Color.GOLD)); + + getContent().getChildren().addAll(first, flagRegion); + } + + @Override + public boolean mustBeFirstBlock() { + return true; + } + + @Override + public CodeBlock copy() { + WhenStartCodeBlock copy = new WhenStartCodeBlock(getMain()); + return copy; + } + + @Override + public Executable.Result execute(SmeenContext context) { + // no op + return new Executable.Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "WhenStartCodeBlock"); + return result; + } + + @Override + public void importData(Map data) { + // no op + } +} diff --git a/src/smeen/component/code/block/look/ChangeCostumeCodeBlock.java b/src/smeen/component/code/block/look/ChangeCostumeCodeBlock.java new file mode 100644 index 0000000..730b2f4 --- /dev/null +++ b/src/smeen/component/code/block/look/ChangeCostumeCodeBlock.java @@ -0,0 +1,75 @@ +package smeen.component.code.block.look; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class ChangeCostumeCodeBlock extends CodeBlock { + + private CodeBlockInputSlot posCostume; + + public ChangeCostumeCodeBlock(MainView main) { + super(main); + Label first = new Label("เปลี่ยชุดเป็นรูปแบบที่"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + posCostume = new CodeBlockInputSlot<>(main, Type.Double); + + getContent().setBackground(Background.fill(Color.MEDIUMORCHID)); + + getContent().getChildren().addAll(first, posCostume); + } + + @Override + public CodeBlock copy() { + ChangeCostumeCodeBlock copy = new ChangeCostumeCodeBlock(getMain()); + copy.posCostume.getTextField().setText(posCostume.getTextField().getText()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + if (getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(), sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + int order = posCostume.getValue(context).intValue(); + if (order >= 1 && order <= sprite.costumesProperty().size()) { + Platform.runLater(() -> sprite.getImageView().setImage(sprite.costumesProperty().get(order - 1).getImage())); + } + return new Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "ChangeCostumeCodeBlock"); + result.put("posCostume", posCostume.exportData()); + return result; + } + + @Override + public void importData(Map data) { + posCostume.importData((Map) data.get("posCostume")); + } +} diff --git a/src/smeen/component/code/block/look/ChangeHeightCodeBlock.java b/src/smeen/component/code/block/look/ChangeHeightCodeBlock.java new file mode 100644 index 0000000..69e7662 --- /dev/null +++ b/src/smeen/component/code/block/look/ChangeHeightCodeBlock.java @@ -0,0 +1,69 @@ +package smeen.component.code.block.look; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class ChangeHeightCodeBlock extends CodeBlock { + private CodeBlockInputSlot amount; + + public ChangeHeightCodeBlock(MainView main) { + super(main); + Label first = new Label("เปลี่ยนความสูงเป็น"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + amount = new CodeBlockInputSlot<>(main, Type.Double); + + getContent().setBackground(Background.fill(Color.MEDIUMORCHID)); + + getContent().getChildren().addAll(first, amount); + } + + @Override + public CodeBlock copy() { + ChangeHeightCodeBlock copy = new ChangeHeightCodeBlock(getMain()); + copy.amount.getTextField().setText(amount.getTextField().getText()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + if (getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(), sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + double amt = amount.getValue(context); + Platform.runLater(() -> sprite.getImageView().setFitHeight(amt)); + return new Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "ChangeHeightCodeBlock"); + result.put("amount", amount.exportData()); + return result; + } + + @Override + public void importData(Map data) { + amount.importData((Map) data.get("amount")); + } +} diff --git a/src/smeen/component/code/block/look/ChangeSceneCodeBlock.java b/src/smeen/component/code/block/look/ChangeSceneCodeBlock.java new file mode 100644 index 0000000..f2980b5 --- /dev/null +++ b/src/smeen/component/code/block/look/ChangeSceneCodeBlock.java @@ -0,0 +1,61 @@ +package smeen.component.code.block.look; + +import java.util.HashMap; +import java.util.Map; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class ChangeSceneCodeBlock extends CodeBlock { + + private CodeBlockInputSlot posScene; + + public ChangeSceneCodeBlock(MainView main) { + super(main); + Label first = new Label("เปลี่ยนฉากเป็นรูปแบบที่"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + posScene = new CodeBlockInputSlot<>(main, Type.Double); + + getContent().setBackground(Background.fill(Color.MEDIUMORCHID)); + + getContent().getChildren().addAll(first, posScene); + } + + @Override + public CodeBlock copy() { + ChangeSceneCodeBlock copy = new ChangeSceneCodeBlock(getMain()); + copy.posScene.getTextField().setText(posScene.getTextField().getText()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + int order = posScene.getValue(context).intValue(); + if(order >= 1 && order <= getMain().getSceneEditor().getSceneCount()) + Platform.runLater(() -> getMain().getStageArea().shownSceneProperty().set(order)); + return new Result(false,false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "ChangeSceneCodeBlock"); + result.put("posScene", posScene.exportData()); + return result; + } + + @Override + public void importData(Map data) { + posScene.importData((Map) data.get("posScene")); + } +} diff --git a/src/smeen/component/code/block/look/ChangeWidthCodeBlock.java b/src/smeen/component/code/block/look/ChangeWidthCodeBlock.java new file mode 100644 index 0000000..2bf809c --- /dev/null +++ b/src/smeen/component/code/block/look/ChangeWidthCodeBlock.java @@ -0,0 +1,74 @@ +package smeen.component.code.block.look; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class ChangeWidthCodeBlock extends CodeBlock { + + private CodeBlockInputSlot amount; + + public ChangeWidthCodeBlock(MainView main) { + super(main); + Label first = new Label("เปลี่ยนความยาวเป็น"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + amount = new CodeBlockInputSlot<>(main, Type.Double); + + getContent().setBackground(Background.fill(Color.MEDIUMORCHID)); + + getContent().getChildren().addAll(first, amount); + } + + @Override + public CodeBlock copy() { + ChangeWidthCodeBlock copy = new ChangeWidthCodeBlock(getMain()); + copy.amount.getTextField().setText(amount.getTextField().getText()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + if (getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(), sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + double amt = amount.getValue(context); + Platform.runLater(() -> sprite.getImageView().setFitWidth(amt)); + return new Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "ChangeWidthCodeBlock"); + result.put("amount", amount.exportData()); + return result; + } + + @Override + public void importData(Map data) { + amount.importData((Map) data.get("amount")); + } + +} diff --git a/src/smeen/component/code/block/look/HideCodeBlock.java b/src/smeen/component/code/block/look/HideCodeBlock.java new file mode 100644 index 0000000..dc08546 --- /dev/null +++ b/src/smeen/component/code/block/look/HideCodeBlock.java @@ -0,0 +1,61 @@ +package smeen.component.code.block.look; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.global.Fonts; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class HideCodeBlock extends CodeBlock { + + public HideCodeBlock(MainView main){ + super(main); + Label first = new Label("ซ่อน"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.MEDIUMORCHID)); + + getContent().getChildren().addAll(first); + } + + @Override + public CodeBlock copy() { + HideCodeBlock copy = new HideCodeBlock(getMain()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + if(getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(),sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + Platform.runLater(() -> sprite.setVisible(false)); + return new Result(false,false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "HideCodeBlock"); + return result; + } + + @Override + public void importData(Map data) { + + } +} diff --git a/src/smeen/component/code/block/look/SayCodeBlock.java b/src/smeen/component/code/block/look/SayCodeBlock.java new file mode 100644 index 0000000..a0535d3 --- /dev/null +++ b/src/smeen/component/code/block/look/SayCodeBlock.java @@ -0,0 +1,76 @@ +package smeen.component.code.block.look; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class SayCodeBlock extends CodeBlock { + + private CodeBlockInputSlot word; + public SayCodeBlock(MainView main){ + super(main); + Label first = new Label("พูด"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + word = new CodeBlockInputSlot<>(main, Type.String); + + getContent().setBackground(Background.fill(Color.MEDIUMORCHID)); + + getContent().getChildren().addAll(first, word); + } + + @Override + public CodeBlock copy() { + SayCodeBlock copy = new SayCodeBlock(getMain()); + copy.word.getTextField().setText(word.getTextField().getText()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + if (getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(), sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + String text = word.getValue(context); + Platform.runLater(() -> sprite.say(text)); + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + return new Result(false, true); + } + Platform.runLater(() -> sprite.stopSaying()); + return new Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "SayCodeBlock"); + result.put("word", word.exportData()); + return result; + } + + @Override + public void importData(Map data) { + word.importData((Map) data.get("word")); + } +} diff --git a/src/smeen/component/code/block/look/ShowCodeBlock.java b/src/smeen/component/code/block/look/ShowCodeBlock.java new file mode 100644 index 0000000..a599761 --- /dev/null +++ b/src/smeen/component/code/block/look/ShowCodeBlock.java @@ -0,0 +1,61 @@ +package smeen.component.code.block.look; + +import java.io.PrintStream; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.global.Fonts; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class ShowCodeBlock extends CodeBlock { + + public ShowCodeBlock(MainView main){ + super(main); + Label first = new Label("แสดง"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.MEDIUMORCHID)); + + getContent().getChildren().addAll(first); + } + + @Override + public CodeBlock copy() { + ShowCodeBlock copy = new ShowCodeBlock(getMain()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + if(getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(),sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + Platform.runLater(() -> sprite.setVisible(true)); + return new Result(false,false); + } + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "ShowCodeBlock"); + return result; + } + + @Override + public void importData(Map data) { + // no op + } +} diff --git a/src/smeen/component/code/block/meen/BitkubCodeBlock.java b/src/smeen/component/code/block/meen/BitkubCodeBlock.java new file mode 100644 index 0000000..071c62d --- /dev/null +++ b/src/smeen/component/code/block/meen/BitkubCodeBlock.java @@ -0,0 +1,42 @@ +package smeen.component.code.block.meen; + +import java.util.HashMap; +import java.util.Map; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.global.Fonts; +import smeen.views.MainView; + +public class BitkubCodeBlock extends CodeBlock{ + + public BitkubCodeBlock(MainView main) { + super(main); + Label first = new Label("บิดครับ"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.LIGHTSKYBLUE)); + + getContent().getChildren().addAll(first); + } + + public CodeBlock copy() { + BitkubCodeBlock copy = new BitkubCodeBlock(getMain()); + return copy; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "BitkubCodeBlock"); + return result; + } + + @Override + public void importData(Map data) { + + } +} diff --git a/src/smeen/component/code/block/meen/TransformCodeBlock.java b/src/smeen/component/code/block/meen/TransformCodeBlock.java new file mode 100644 index 0000000..741173e --- /dev/null +++ b/src/smeen/component/code/block/meen/TransformCodeBlock.java @@ -0,0 +1,42 @@ +package smeen.component.code.block.meen; + +import java.util.HashMap; +import java.util.Map; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.global.Fonts; +import smeen.views.MainView; + +public class TransformCodeBlock extends CodeBlock { + + public TransformCodeBlock(MainView main) { + super(main); + Label first = new Label("แปลงร่าง!"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.LIGHTSKYBLUE)); + + getContent().getChildren().addAll(first); + } + + public CodeBlock copy() { + TransformCodeBlock copy = new TransformCodeBlock(getMain()); + return copy; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "TransformCodeBlock"); + return result; + } + + @Override + public void importData(Map data) { + + } +} diff --git a/src/smeen/component/code/block/meen/WhenBitCodeBlock.java b/src/smeen/component/code/block/meen/WhenBitCodeBlock.java new file mode 100644 index 0000000..7d00b37 --- /dev/null +++ b/src/smeen/component/code/block/meen/WhenBitCodeBlock.java @@ -0,0 +1,48 @@ +package smeen.component.code.block.meen; + +import java.util.HashMap; +import java.util.Map; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.global.Fonts; +import smeen.views.MainView; + +public class WhenBitCodeBlock extends CodeBlock { + + public WhenBitCodeBlock(MainView main){ + super(main); + Label first = new Label("เมื่อโดนบิด"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.LIGHTSKYBLUE)); + + getContent().getChildren().addAll(first); + } + + @Override + public boolean mustBeFirstBlock() { + return true; + } + + @Override + public CodeBlock copy() { + WhenBitCodeBlock copy = new WhenBitCodeBlock(getMain()); + return copy; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "WhenBitCodeBlock"); + return result; + } + + @Override + public void importData(Map data) { + + } +} diff --git a/src/smeen/component/code/block/movement/GetXCodeBlockInput.java b/src/smeen/component/code/block/movement/GetXCodeBlockInput.java new file mode 100644 index 0000000..1fee2c0 --- /dev/null +++ b/src/smeen/component/code/block/movement/GetXCodeBlockInput.java @@ -0,0 +1,73 @@ +package smeen.component.code.block.movement; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlockInput; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +public class GetXCodeBlockInput extends CodeBlockInput { + public GetXCodeBlockInput(MainView main) { + super(main); + Label first = new Label("ค่า X"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + + getContent().setBackground(new Background(new BackgroundFill(Color.DODGERBLUE, new CornerRadii(20), null))); + getContent().getChildren().addAll(first); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + GetXCodeBlockInput copy = new GetXCodeBlockInput(getMain()); + return copy; + } + + public Type getType() { + return Type.Double; + } + + @Override + public Double getValue(SmeenContext context) { + if (getCodeArea() == null) + return 0.0; + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null) + return 0.0; + + if (Objects.equals(getMain().draggingProperty().get(), sprite)) + return sprite.getOldPos().getX(); // use the old x position when the sprite is being dragged. + + return sprite.getLayoutX(); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "GetXCodeBlockInput"); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/movement/GetYCodeBlockInput.java b/src/smeen/component/code/block/movement/GetYCodeBlockInput.java new file mode 100644 index 0000000..5117ee6 --- /dev/null +++ b/src/smeen/component/code/block/movement/GetYCodeBlockInput.java @@ -0,0 +1,72 @@ +package smeen.component.code.block.movement; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlockInput; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +public class GetYCodeBlockInput extends CodeBlockInput { + public GetYCodeBlockInput(MainView main) { + super(main); + Label first = new Label("ค่า Y"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + + getContent().setBackground(new Background(new BackgroundFill(Color.DODGERBLUE, new CornerRadii(20), null))); + getContent().getChildren().addAll(first); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + GetYCodeBlockInput copy = new GetYCodeBlockInput(getMain()); + return copy; + } + + public Type getType() { + return Type.Double; + } + + @Override + public Double getValue(SmeenContext context) { + if (getCodeArea() == null) + return 0.0; + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null) + return 0.0; + + if (Objects.equals(getMain().draggingProperty().get(), sprite)) + return sprite.getOldPos().getY(); // use the old y position when the sprite is being dragged. + + return sprite.getLayoutY(); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "GetYCodeBlockInput"); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/movement/MoveBackwardCodeBlock.java b/src/smeen/component/code/block/movement/MoveBackwardCodeBlock.java new file mode 100644 index 0000000..d567349 --- /dev/null +++ b/src/smeen/component/code/block/movement/MoveBackwardCodeBlock.java @@ -0,0 +1,75 @@ +package smeen.component.code.block.movement; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class MoveBackwardCodeBlock extends CodeBlock { + private CodeBlockInputSlot amount; + public MoveBackwardCodeBlock(MainView main) { + super(main); + Label first = new Label("เคลื่อนที่ไปข้างหลัง"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + amount = new CodeBlockInputSlot<>(main, Type.Double); + + Label second = new Label("ก้าว"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.DODGERBLUE)); + + getContent().getChildren().addAll(first, amount, second); + } + + @Override + public CodeBlock copy() { + MoveBackwardCodeBlock copy = new MoveBackwardCodeBlock(getMain()); + copy.amount.getTextField().setText(amount.getTextField().getText()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + if (getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(), sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + double angle = Math.toRadians(sprite.getImageView().getRotate()); + double amt = amount.getValue(context); + double dx = -amt * Math.cos(angle); + double dy = -amt * Math.sin(angle); + Platform.runLater(() -> sprite.relocate(sprite.getLayoutX() + dx, sprite.getLayoutY() + dy)); + return new Executable.Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "MoveBackwardCodeBlock"); + result.put("amount", amount.exportData()); + return result; + } + + @Override + public void importData(Map data) { + amount.importData((Map) data.get("amount")); + } +} diff --git a/src/smeen/component/code/block/movement/MoveForwardCodeBlock.java b/src/smeen/component/code/block/movement/MoveForwardCodeBlock.java new file mode 100644 index 0000000..1bedc58 --- /dev/null +++ b/src/smeen/component/code/block/movement/MoveForwardCodeBlock.java @@ -0,0 +1,81 @@ +package smeen.component.code.block.movement; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.image.ImageView; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +public class MoveForwardCodeBlock extends CodeBlock { + + private CodeBlockInputSlot amount; + + public MoveForwardCodeBlock(MainView main) { + super(main); + Label first = new Label("เคลื่อนที่ไปข้างหน้า"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + amount = new CodeBlockInputSlot<>(main, Type.Double); + + Label second = new Label("ก้าว"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.DODGERBLUE)); + + getContent().getChildren().addAll(first, amount, second); + } + + @Override + public CodeBlock copy() { + MoveForwardCodeBlock copy = new MoveForwardCodeBlock(getMain()); + copy.amount.getTextField().setText(amount.getTextField().getText()); + return copy; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "MoveForwardCodeBlock"); + result.put("amount", amount.exportData()); + return result; + } + + @Override + public void importData(Map data) { + amount.importData((Map) data.get("amount")); + } + + @Override + public Executable.Result execute(SmeenContext context) { + if (getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(), sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + double angle = Math.toRadians(sprite.getImageView().getRotate()); + double amt = amount.getValue(context); + double dx = amt * Math.cos(angle); + double dy = amt * Math.sin(angle); + Platform.runLater(() -> sprite.relocate(sprite.getLayoutX() + dx, sprite.getLayoutY() + dy)); + return new Executable.Result(false, false); + } +} diff --git a/src/smeen/component/code/block/movement/MoveToCodeBlock.java b/src/smeen/component/code/block/movement/MoveToCodeBlock.java new file mode 100644 index 0000000..6a79829 --- /dev/null +++ b/src/smeen/component/code/block/movement/MoveToCodeBlock.java @@ -0,0 +1,82 @@ +package smeen.component.code.block.movement; + +import java.util.HashMap; +import java.util.Map; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.Objects; + +public class MoveToCodeBlock extends CodeBlock { + + private CodeBlockInputSlot amountX, amountY; + + public MoveToCodeBlock(MainView main) { + super(main); + Label first = new Label("เคลื่อนที่ไปที่ x:"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + amountX = new CodeBlockInputSlot<>(main, Type.Double); + + Label second = new Label("y:"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + amountY = new CodeBlockInputSlot<>(main, Type.Double); + + getContent().setBackground(Background.fill(Color.DODGERBLUE)); + + getContent().getChildren().addAll(first, amountX, second, amountY); + } + + @Override + public CodeBlock copy() { + MoveToCodeBlock copy = new MoveToCodeBlock(getMain()); + copy.amountX.getTextField().setText(amountX.getTextField().getText()); + copy.amountY.getTextField().setText(amountY.getTextField().getText()); + return copy; + } + + @Override + public Executable.Result execute(SmeenContext context) { + if(getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(),sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + Platform.runLater(() -> sprite.relocate(amountX.getValue(context), amountY.getValue(context))); + return new Executable.Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "MoveToCodeBlock"); + result.put("amountX", amountX.exportData()); + result.put("amountY", amountY.exportData()); + return result; + } + + @Override + public void importData(Map data) { + amountX.importData((Map) data.get("amountX")); + amountY.importData((Map) data.get("amountY")); + } +} \ No newline at end of file diff --git a/src/smeen/component/code/block/movement/RotateClockwiseCodeBlock.java b/src/smeen/component/code/block/movement/RotateClockwiseCodeBlock.java new file mode 100644 index 0000000..314eff4 --- /dev/null +++ b/src/smeen/component/code/block/movement/RotateClockwiseCodeBlock.java @@ -0,0 +1,79 @@ +package smeen.component.code.block.movement; + +import java.util.HashMap; +import java.util.Map; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.image.ImageView; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.Objects; + +public class RotateClockwiseCodeBlock extends CodeBlock { + + private CodeBlockInputSlot amount; + public RotateClockwiseCodeBlock(MainView main){ + super(main); + Label first = new Label("หมุนตามเข็ม"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + amount = new CodeBlockInputSlot<>(main, Type.Double); + + Label second = new Label("องศา"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.DODGERBLUE)); + + getContent().getChildren().addAll(first, amount, second); + } + + @Override + public CodeBlock copy() { + RotateClockwiseCodeBlock copy = new RotateClockwiseCodeBlock(getMain()); + copy.amount.getTextField().setText(amount.getTextField().getText()); + return copy; + } + + @Override + public Executable.Result execute(SmeenContext context) { + if(getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(),sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + + ImageView iv = sprite.getImageView(); + Platform.runLater(() -> iv.setRotate(iv.getRotate() + amount.getValue(context))); + return new Executable.Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "RotateClockwiseCodeBlock"); + result.put("amount", amount.exportData()); + return result; + } + + @Override + public void importData(Map data) { + amount.importData((Map) data.get("amount")); + } +} \ No newline at end of file diff --git a/src/smeen/component/code/block/movement/RotateCounterClockwiseCodeBlock.java b/src/smeen/component/code/block/movement/RotateCounterClockwiseCodeBlock.java new file mode 100644 index 0000000..a9f8c96 --- /dev/null +++ b/src/smeen/component/code/block/movement/RotateCounterClockwiseCodeBlock.java @@ -0,0 +1,78 @@ +package smeen.component.code.block.movement; + +import java.util.HashMap; +import java.util.Map; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.image.ImageView; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.Objects; + +public class RotateCounterClockwiseCodeBlock extends CodeBlock { + + private CodeBlockInputSlot amount; + + public RotateCounterClockwiseCodeBlock(MainView main) { + super(main); + Label first = new Label("หมุนทวนเข็ม"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + amount = new CodeBlockInputSlot<>(main, Type.Double); + + Label second = new Label("องศา"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.DODGERBLUE)); + getContent().getChildren().addAll(first, amount, second); + } + + @Override + public CodeBlock copy() { + RotateCounterClockwiseCodeBlock copy = new RotateCounterClockwiseCodeBlock(getMain()); + copy.amount.getTextField().setText(amount.getTextField().getText()); + return copy; + } + + @Override + public Executable.Result execute(SmeenContext context) { + if (getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(), sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + ImageView iv = sprite.getImageView(); + Platform.runLater(() -> iv.setRotate(iv.getRotate() - amount.getValue(context))); + return new Executable.Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "RotateCounterClockwiseCodeBlock"); + result.put("amount", amount.exportData()); + return result; + } + + @Override + public void importData(Map data) { + amount.importData((Map) data.get("amount")); + } +} \ No newline at end of file diff --git a/src/smeen/component/code/block/operator/inputBoolean/AndCodeBlockInput.java b/src/smeen/component/code/block/operator/inputBoolean/AndCodeBlockInput.java new file mode 100644 index 0000000..6d9fd4a --- /dev/null +++ b/src/smeen/component/code/block/operator/inputBoolean/AndCodeBlockInput.java @@ -0,0 +1,72 @@ +package smeen.component.code.block.operator.inputBoolean; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class AndCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1, slot2; + + public AndCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main, Type.Boolean); + slot2 = new CodeBlockInputSlot<>(main, Type.Boolean); + + Label op = new Label("และ"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1, op, slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + AndCodeBlockInput copy = new AndCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Boolean getValue(SmeenContext context) { + return slot1.getValue(context) && slot2.getValue(context); + } + + @Override + public Type getType() { + return Type.Boolean; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "AndCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputBoolean/EqualCodeBlockInput.java b/src/smeen/component/code/block/operator/inputBoolean/EqualCodeBlockInput.java new file mode 100644 index 0000000..2a92730 --- /dev/null +++ b/src/smeen/component/code/block/operator/inputBoolean/EqualCodeBlockInput.java @@ -0,0 +1,71 @@ +package smeen.component.code.block.operator.inputBoolean; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class EqualCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1 , slot2; + public EqualCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + slot2 = new CodeBlockInputSlot<>(main,Type.Double); + + Label op = new Label("="); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , op , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + EqualCodeBlockInput copy = new EqualCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Boolean getValue(SmeenContext context) { + return slot1.getValue(context).equals(slot2.getValue(context)); + } + + @Override + public Type getType() { + return Type.Boolean; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "EqualCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputBoolean/GreaterCodeBlockInput.java b/src/smeen/component/code/block/operator/inputBoolean/GreaterCodeBlockInput.java new file mode 100644 index 0000000..46d7eea --- /dev/null +++ b/src/smeen/component/code/block/operator/inputBoolean/GreaterCodeBlockInput.java @@ -0,0 +1,71 @@ +package smeen.component.code.block.operator.inputBoolean; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class GreaterCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1 , slot2; + public GreaterCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + slot2 = new CodeBlockInputSlot<>(main,Type.Double); + + Label op = new Label(">"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , op , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + GreaterCodeBlockInput copy = new GreaterCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Boolean getValue(SmeenContext context) { + return slot1.getValue(context) > slot2.getValue(context); + } + + @Override + public Type getType() { + return Type.Boolean; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "GreaterCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputBoolean/LessCodeBlockInput.java b/src/smeen/component/code/block/operator/inputBoolean/LessCodeBlockInput.java new file mode 100644 index 0000000..3a1b20a --- /dev/null +++ b/src/smeen/component/code/block/operator/inputBoolean/LessCodeBlockInput.java @@ -0,0 +1,71 @@ +package smeen.component.code.block.operator.inputBoolean; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class LessCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1 , slot2; + public LessCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + slot2 = new CodeBlockInputSlot<>(main,Type.Double); + + Label op = new Label("<"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , op , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + LessCodeBlockInput copy = new LessCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Boolean getValue(SmeenContext context) { + return slot1.getValue(context) < slot2.getValue(context); + } + + @Override + public Type getType() { + return Type.Boolean; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "LessCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputBoolean/NotCodeBlockInput.java b/src/smeen/component/code/block/operator/inputBoolean/NotCodeBlockInput.java new file mode 100644 index 0000000..115a5ff --- /dev/null +++ b/src/smeen/component/code/block/operator/inputBoolean/NotCodeBlockInput.java @@ -0,0 +1,69 @@ +package smeen.component.code.block.operator.inputBoolean; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class NotCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1; + + public NotCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Boolean); + + Label op = new Label("ไม่"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(op , slot1); + + // to check T type + setColorBorder(); + + } + + @Override + public CodeBlockInput copy() { + NotCodeBlockInput copy = new NotCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + return copy; + } + + @Override + public Boolean getValue(SmeenContext context) { + return !slot1.getValue(context); + } + + @Override + public Type getType() { + return Type.Boolean; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "NotCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputBoolean/OrCodeBlockInput.java b/src/smeen/component/code/block/operator/inputBoolean/OrCodeBlockInput.java new file mode 100644 index 0000000..aa3bb60 --- /dev/null +++ b/src/smeen/component/code/block/operator/inputBoolean/OrCodeBlockInput.java @@ -0,0 +1,73 @@ +package smeen.component.code.block.operator.inputBoolean; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class OrCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1, slot2; + + public OrCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Boolean); + slot2 = new CodeBlockInputSlot<>(main,Type.Boolean); + + Label op = new Label("หรือ"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , op , slot2); + + // to check T type + setColorBorder(); + + } + + @Override + public CodeBlockInput copy() { + OrCodeBlockInput copy = new OrCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Boolean getValue(SmeenContext context) { + return slot1.getValue(context) || slot2.getValue(context); + } + + @Override + public Type getType() { + return Type.Boolean; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "OrCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputDouble/AddCodeBlockInput.java b/src/smeen/component/code/block/operator/inputDouble/AddCodeBlockInput.java new file mode 100644 index 0000000..ac7e0bf --- /dev/null +++ b/src/smeen/component/code/block/operator/inputDouble/AddCodeBlockInput.java @@ -0,0 +1,77 @@ +package smeen.component.code.block.operator.inputDouble; + + +import javafx.geometry.Pos; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.component.code.block.sensing.AnswerCodeBlockInput; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class AddCodeBlockInput extends CodeBlockInput { + + private CodeBlockInputSlot slot1 , slot2; + public AddCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + slot2 = new CodeBlockInputSlot<>(main,Type.Double); + + Label op = new Label("+"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , op , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + AddCodeBlockInput copy = new AddCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Double getValue(SmeenContext context) { + return slot1.getValue(context) + slot2.getValue(context); + } + + @Override + public Type getType() { + return Type.Double; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "AddCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} \ No newline at end of file diff --git a/src/smeen/component/code/block/operator/inputDouble/DivideCodeBlockInput.java b/src/smeen/component/code/block/operator/inputDouble/DivideCodeBlockInput.java new file mode 100644 index 0000000..aad3806 --- /dev/null +++ b/src/smeen/component/code/block/operator/inputDouble/DivideCodeBlockInput.java @@ -0,0 +1,72 @@ +package smeen.component.code.block.operator.inputDouble; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class DivideCodeBlockInput extends CodeBlockInput { + + private CodeBlockInputSlot slot1 , slot2; + public DivideCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + slot2 = new CodeBlockInputSlot<>(main,Type.Double); + + Label op = new Label("/"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , op , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + DivideCodeBlockInput copy = new DivideCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Double getValue(SmeenContext context) { + return slot1.getValue(context) / slot2.getValue(context); + } + + @Override + public Type getType() { + return Type.Double; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "DivideCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputDouble/FunctionOfCodeBlockInput.java b/src/smeen/component/code/block/operator/inputDouble/FunctionOfCodeBlockInput.java new file mode 100644 index 0000000..ebcd204 --- /dev/null +++ b/src/smeen/component/code/block/operator/inputDouble/FunctionOfCodeBlockInput.java @@ -0,0 +1,98 @@ +package smeen.component.code.block.operator.inputDouble; + +import javafx.scene.control.ComboBox; +import javafx.scene.control.Label; +import javafx.scene.control.ListCell; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.KeyPress; +import smeen.global.SmeenConstants.MathFunction; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class FunctionOfCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1; + private ComboBox optionBox; + public FunctionOfCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + + optionBox = new ComboBox<>(); + optionBox.getItems().addAll(MathFunction.values()); + optionBox.setValue(optionBox.getItems().get(0)); + + // set selectBox of optionBox size + optionBox.setPrefHeight(25); + optionBox.setCellFactory(param -> new ListCell() { + { + // set the height of the cell + setPrefHeight(25); + } + @Override + protected void updateItem(MathFunction item, boolean empty) { + super.updateItem(item, empty); + if (!empty && item != null) { + setText(item.getName()); + } else { + setText(null); + } + } + }); + optionBox.setVisibleRowCount(5); + + Label str = new Label("ของ"); + str.setFont(Fonts.SMALL_REGULAR_FONT); + str.setTextFill(Color.WHITE); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(optionBox, str , slot1); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + FunctionOfCodeBlockInput copy = new FunctionOfCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.optionBox.setValue(optionBox.getValue()); + return copy; + } + + @Override + public Double getValue(SmeenContext context) { + return optionBox.getValue().calculation(slot1.getValue(context)); + } + + @Override + public Type getType() { + return Type.Double; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "FunctionOfCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("option", optionBox.getValue()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + optionBox.setValue((MathFunction) data.get("option")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputDouble/MinusCodeBlockInput.java b/src/smeen/component/code/block/operator/inputDouble/MinusCodeBlockInput.java new file mode 100644 index 0000000..1cb7512 --- /dev/null +++ b/src/smeen/component/code/block/operator/inputDouble/MinusCodeBlockInput.java @@ -0,0 +1,72 @@ +package smeen.component.code.block.operator.inputDouble; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class MinusCodeBlockInput extends CodeBlockInput { + + private CodeBlockInputSlot slot1 , slot2; + public MinusCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + slot2 = new CodeBlockInputSlot<>(main,Type.Double); + + Label op = new Label("-"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , op , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + MinusCodeBlockInput copy = new MinusCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Double getValue(SmeenContext context) { + return slot1.getValue(context) - slot2.getValue(context); + } + + @Override + public Type getType() { + return Type.Double; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "MinusCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputDouble/ModCodeBlockInput.java b/src/smeen/component/code/block/operator/inputDouble/ModCodeBlockInput.java new file mode 100644 index 0000000..7ed1758 --- /dev/null +++ b/src/smeen/component/code/block/operator/inputDouble/ModCodeBlockInput.java @@ -0,0 +1,71 @@ +package smeen.component.code.block.operator.inputDouble; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class ModCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1 , slot2; + public ModCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + slot2 = new CodeBlockInputSlot<>(main,Type.Double); + + Label op = new Label("%"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , op , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + ModCodeBlockInput copy = new ModCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Double getValue(SmeenContext context) { + return slot1.getValue(context) % slot2.getValue(context); + } + + @Override + public Type getType() { + return Type.Double; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "ModCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputDouble/MultiCodeBlockInput.java b/src/smeen/component/code/block/operator/inputDouble/MultiCodeBlockInput.java new file mode 100644 index 0000000..baf3549 --- /dev/null +++ b/src/smeen/component/code/block/operator/inputDouble/MultiCodeBlockInput.java @@ -0,0 +1,72 @@ +package smeen.component.code.block.operator.inputDouble; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class MultiCodeBlockInput extends CodeBlockInput { + + private CodeBlockInputSlot slot1 , slot2; + public MultiCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + slot2 = new CodeBlockInputSlot<>(main,Type.Double); + + Label op = new Label("*"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , op , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + MultiCodeBlockInput copy = new MultiCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Double getValue(SmeenContext context) { + return slot1.getValue(context) * slot2.getValue(context); + } + + @Override + public Type getType() { + return Type.Double; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "MultiCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputDouble/PowerCodeBlockInput.java b/src/smeen/component/code/block/operator/inputDouble/PowerCodeBlockInput.java new file mode 100644 index 0000000..26547f8 --- /dev/null +++ b/src/smeen/component/code/block/operator/inputDouble/PowerCodeBlockInput.java @@ -0,0 +1,71 @@ +package smeen.component.code.block.operator.inputDouble; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class PowerCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1 , slot2; + public PowerCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + slot2 = new CodeBlockInputSlot<>(main,Type.Double); + + Label op = new Label("^"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , op , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + PowerCodeBlockInput copy = new PowerCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Double getValue(SmeenContext context) { + return (double) Math.pow(slot1.getValue(context) , slot2.getValue(context)); + } + + @Override + public Type getType() { + return Type.Double; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "PowerCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputDouble/RandomNumberCodeBlockInput.java b/src/smeen/component/code/block/operator/inputDouble/RandomNumberCodeBlockInput.java new file mode 100644 index 0000000..1874851 --- /dev/null +++ b/src/smeen/component/code/block/operator/inputDouble/RandomNumberCodeBlockInput.java @@ -0,0 +1,89 @@ +package smeen.component.code.block.operator.inputDouble; + +import java.util.HashMap; +import java.util.Map; +import java.util.Random; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class RandomNumberCodeBlockInput extends CodeBlockInput{ + + private CodeBlockInputSlot slot1 , slot2; + public RandomNumberCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + slot2 = new CodeBlockInputSlot<>(main,Type.Double); + + Label str1 = new Label("สุ่มเลขตั้งแต่"); + str1.setTextFill(Color.WHITE); + str1.setFont(Fonts.SMALL_REGULAR_FONT); + Label str2 = new Label("ถึง"); + str2.setTextFill(Color.WHITE); + str2.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(str1 , slot1 , str2 , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + RandomNumberCodeBlockInput copy = new RandomNumberCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Double getValue(SmeenContext context) { + double num1 = slot1.getValue(context); + double num2 = slot2.getValue(context); + if (num1 > num2) { + // swap if num1 > num2 , idk how to do a better swap method ;( + double temp = num1; + num1 = num2; + num2 = temp; + } + Random ran = new Random(); + // case of random int + if (Math.floor(num1) == num1 && Math.floor(num2) == num2) { + return num1 + (double)ran.nextInt((int)(num2 - num1 + 1)); + } + return num1 + ran.nextDouble(num2 - num1 + 1); + } + + @Override + public Type getType() { + return Type.Double; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "RandomNumberCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputDouble/RoundCodeBlockInput.java b/src/smeen/component/code/block/operator/inputDouble/RoundCodeBlockInput.java new file mode 100644 index 0000000..0a3511b --- /dev/null +++ b/src/smeen/component/code/block/operator/inputDouble/RoundCodeBlockInput.java @@ -0,0 +1,67 @@ +package smeen.component.code.block.operator.inputDouble; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class RoundCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1; + public RoundCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + + Label op = new Label("ปัดเศษ"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(op , slot1); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + RoundCodeBlockInput copy = new RoundCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + return copy; + } + + @Override + public Double getValue(SmeenContext context) { + return (double) Math.round(slot1.getValue(context)); + } + + @Override + public Type getType() { + return Type.Double; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "RoundCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputString/ContainCodeBlockInput.java b/src/smeen/component/code/block/operator/inputString/ContainCodeBlockInput.java new file mode 100644 index 0000000..9bbab60 --- /dev/null +++ b/src/smeen/component/code/block/operator/inputString/ContainCodeBlockInput.java @@ -0,0 +1,71 @@ +package smeen.component.code.block.operator.inputString; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class ContainCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1,slot2; + public ContainCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.String); + slot2 = new CodeBlockInputSlot<>(main,Type.String); + + Label str1 = new Label("มีคำว่า"); + str1.setTextFill(Color.WHITE); + str1.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , str1 , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + ContainCodeBlockInput copy = new ContainCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public Boolean getValue(SmeenContext context) { + return slot1.getValue(context).contains(slot2.getValue(context)); + } + + @Override + public Type getType() { + return Type.Boolean; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "ContainCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputString/JoinCodeBlockInput.java b/src/smeen/component/code/block/operator/inputString/JoinCodeBlockInput.java new file mode 100644 index 0000000..469db6f --- /dev/null +++ b/src/smeen/component/code/block/operator/inputString/JoinCodeBlockInput.java @@ -0,0 +1,71 @@ +package smeen.component.code.block.operator.inputString; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class JoinCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1 , slot2; + public JoinCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.String); + slot2 = new CodeBlockInputSlot<>(main,Type.String); + + Label op = new Label("รวมกับ"); + op.setTextFill(Color.WHITE); + op.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(slot1 , op , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + JoinCodeBlockInput copy = new JoinCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public String getValue(SmeenContext context) { + return slot1.getValue(context) + slot2.getValue(context); + } + + @Override + public Type getType() { + return Type.String; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "JoinCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/operator/inputString/LetterOfCodeBlockInput.java b/src/smeen/component/code/block/operator/inputString/LetterOfCodeBlockInput.java new file mode 100644 index 0000000..34241d0 --- /dev/null +++ b/src/smeen/component/code/block/operator/inputString/LetterOfCodeBlockInput.java @@ -0,0 +1,75 @@ +package smeen.component.code.block.operator.inputString; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class LetterOfCodeBlockInput extends CodeBlockInput { + private CodeBlockInputSlot slot1; + private CodeBlockInputSlot slot2; + public LetterOfCodeBlockInput(MainView main) { + super(main); + slot1 = new CodeBlockInputSlot<>(main,Type.Double); + slot2 = new CodeBlockInputSlot<>(main,Type.String); + + Label str1 = new Label("ตัวอักษรที่"); + str1.setTextFill(Color.WHITE); + str1.setFont(Fonts.SMALL_REGULAR_FONT); + Label str2 = new Label("ใน"); + str2.setTextFill(Color.WHITE); + str2.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.LIMEGREEN, new CornerRadii(20), null))); + getContent().getChildren().addAll(str1, slot1 , str2 , slot2); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + LetterOfCodeBlockInput copy = new LetterOfCodeBlockInput(getMain()); + copy.slot1.getTextField().setText(slot1.getTextField().getText()); + copy.slot2.getTextField().setText(slot2.getTextField().getText()); + return copy; + } + + @Override + public String getValue(SmeenContext context) { + return String.valueOf(slot2.getValue(context).charAt((int) Math.round(slot1.getValue(context)))); + } + + @Override + public Type getType() { + return Type.String; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "LetterOfCodeBlockInput"); + result.put("slot1", slot1.exportData()); + result.put("slot2", slot2.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + slot1.importData((Map) data.get("slot1")); + slot2.importData((Map) data.get("slot2")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/sensing/AnswerCodeBlockInput.java b/src/smeen/component/code/block/sensing/AnswerCodeBlockInput.java new file mode 100644 index 0000000..763fc00 --- /dev/null +++ b/src/smeen/component/code/block/sensing/AnswerCodeBlockInput.java @@ -0,0 +1,60 @@ +package smeen.component.code.block.sensing; + +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInput; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class AnswerCodeBlockInput extends CodeBlockInput { + public AnswerCodeBlockInput(MainView main){ + super(main); + Label first = new Label("คำตอบ"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.DARKTURQUOISE, new CornerRadii(20), null))); + getContent().getChildren().addAll(first); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + AnswerCodeBlockInput copy = new AnswerCodeBlockInput(getMain()); + return copy; + } + + public Type getType() { + return Type.String; + } + + public String getValue(SmeenContext context) { + return context.currentAnswerProperty().get(); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "AnswerCodeBlockInput"); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/sensing/AskAndWaitCodeBlock.java b/src/smeen/component/code/block/sensing/AskAndWaitCodeBlock.java new file mode 100644 index 0000000..6781167 --- /dev/null +++ b/src/smeen/component/code/block/sensing/AskAndWaitCodeBlock.java @@ -0,0 +1,99 @@ +package smeen.component.code.block.sensing; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import javafx.application.Platform; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.Background; +import javafx.scene.layout.StackPane; +import javafx.scene.paint.Color; +import javafx.scene.paint.ImagePattern; +import javafx.scene.shape.Rectangle; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.global.SmeenConstants.Type; +import smeen.logic.Executable; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class AskAndWaitCodeBlock extends CodeBlock { + + private CodeBlockInputSlot word; + + public AskAndWaitCodeBlock(MainView main) { + super(main); + Label first = new Label("ถามว่า"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + word = new CodeBlockInputSlot<>(main, Type.String); + + Label second = new Label("แล้วรอ"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(Background.fill(Color.DARKTURQUOISE)); + + getContent().getChildren().addAll(first, word, second); + } + + @Override + public CodeBlock copy() { + AskAndWaitCodeBlock copy = new AskAndWaitCodeBlock(getMain()); + copy.word.getTextField().setText(word.getTextField().getText()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + if (getCodeArea() == null) + return new Executable.Result(false, false); + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(), sprite)) + return new Executable.Result(false, false); // no op on movement code that is not in sprite or the sprite is being dragged. + + String text = word.getValue(context); + synchronized (SmeenConstants.ANSWER_LOCK) { + Platform.runLater(() -> { + sprite.say(text); + getMain().getAnswerArea().show(); + }); + while (!context.isAnswerChanged()) { + try { + Thread.sleep(SmeenConstants.EXECUTION_DELAY); + } catch (InterruptedException e) { + return new Result(false, true); + } + } + Platform.runLater(() -> { + sprite.stopSaying(); + getMain().getAnswerArea().hide(); + }); + return new Result(false, false); + } + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "AskAndWaitCodeBlock"); + result.put("word", word.exportData()); + return result; + } + + @Override + public void importData(Map data) { + word.importData((Map) data.get("word")); + } +} diff --git a/src/smeen/component/code/block/sensing/KeyPressedCodeBlockInput.java b/src/smeen/component/code/block/sensing/KeyPressedCodeBlockInput.java new file mode 100644 index 0000000..2556a8a --- /dev/null +++ b/src/smeen/component/code/block/sensing/KeyPressedCodeBlockInput.java @@ -0,0 +1,104 @@ +package smeen.component.code.block.sensing; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javafx.collections.FXCollections; +import javafx.scene.control.ComboBox; +import javafx.scene.control.Label; +import javafx.scene.control.ListCell; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInput; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.global.SmeenConstants.KeyPress; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class KeyPressedCodeBlockInput extends CodeBlockInput { + + private ComboBox optionBox; + public KeyPressedCodeBlockInput(MainView main){ + super(main); + Label first = new Label("กดปุ่ม"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + optionBox = new ComboBox<>(); + List keyList = Arrays.asList(KeyPress.values()); + optionBox.setItems(FXCollections.observableArrayList(keyList)); + optionBox.setValue(optionBox.getItems().get(0)); + + // set selectBox of optionBox size + optionBox.setPrefHeight(30); + optionBox.setCellFactory(param -> new ListCell() { + { + // set the height of the cell + setPrefHeight(30); + } + + @Override + protected void updateItem(KeyPress item, boolean empty) { + super.updateItem(item, empty); + if (!empty && item != null) { + setText(item.toString()); + } else { + setText(null); + } + } + }); + + optionBox.setVisibleRowCount(5); + + Label second = new Label("?"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.DARKTURQUOISE, new CornerRadii(20), null))); + getContent().getChildren().addAll(first, optionBox, second); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + KeyPressedCodeBlockInput copy = new KeyPressedCodeBlockInput(getMain()); + copy.optionBox.setValue(optionBox.getValue()); + return copy; + } + + public Type getType() { + return Type.Boolean; + } + + public Boolean getValue(SmeenContext context) { + return context.isKeyActive(optionBox.getValue()); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "KeyPressedCodeBlockInput"); + result.put("option", optionBox.getValue()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + optionBox.setValue((KeyPress) data.get("option")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/sensing/MouseDownCodeBlockInput.java b/src/smeen/component/code/block/sensing/MouseDownCodeBlockInput.java new file mode 100644 index 0000000..3a13c4c --- /dev/null +++ b/src/smeen/component/code/block/sensing/MouseDownCodeBlockInput.java @@ -0,0 +1,75 @@ +package smeen.component.code.block.sensing; + +import javafx.scene.control.ComboBox; +import javafx.scene.control.Label; +import javafx.scene.control.ListCell; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInput; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +public class MouseDownCodeBlockInput extends CodeBlockInput { + + public MouseDownCodeBlockInput(MainView main){ + super(main); + Label first = new Label("ถูกเม้าส์คลิก ?"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.DARKTURQUOISE, new CornerRadii(20), null))); + getContent().getChildren().addAll(first); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + MouseDownCodeBlockInput copy = new MouseDownCodeBlockInput(getMain()); + return copy; + } + + public Type getType() { + return Type.Boolean; + } + + public Boolean getValue(SmeenContext context) { + if (getCodeArea() == null) + return false; + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(), sprite)) + return false; + + return getMain().getMouseEventsHandler().isSpritePressed(sprite); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "MouseDownCodeBlockInput"); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/sensing/TouchingObjCodeBlockInput.java b/src/smeen/component/code/block/sensing/TouchingObjCodeBlockInput.java new file mode 100644 index 0000000..e5ef5f2 --- /dev/null +++ b/src/smeen/component/code/block/sensing/TouchingObjCodeBlockInput.java @@ -0,0 +1,97 @@ +package smeen.component.code.block.sensing; + +import javafx.geometry.Bounds; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import javafx.scene.shape.Rectangle; +import javafx.scene.shape.Shape; +import javafx.util.converter.IntegerStringConverter; +import smeen.component.SpriteObject; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.Fonts; +import smeen.global.SmeenConstants; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +public class TouchingObjCodeBlockInput extends CodeBlockInput { + + private CodeBlockInputSlot posSprite; + + public TouchingObjCodeBlockInput(MainView main) { + super(main); + Label first = new Label("แตะตัวละครที่"); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + posSprite = new CodeBlockInputSlot<>(main, Type.Double); + + Label second = new Label("?"); + second.setTextFill(Color.WHITE); + second.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.DARKTURQUOISE, new CornerRadii(20), null))); + getContent().getChildren().addAll(first, posSprite, second); + + // to check T type + setColorBorder(); + } + + @Override + public CodeBlockInput copy() { + TouchingObjCodeBlockInput copy = new TouchingObjCodeBlockInput(getMain()); + copy.posSprite.getTextField().setText(posSprite.getTextField().getText()); + return copy; + } + + public Type getType() { + return Type.Boolean; + } + + public Boolean getValue(SmeenContext context) { + if (getCodeArea() == null) + return false; + + SpriteObject sprite = getCodeArea().getSprite(); + if (sprite == null || Objects.equals(getMain().draggingProperty().get(), sprite)) + return false; + + int order = posSprite.getValue(context).intValue(); + if (order >= 1 && order <= getMain().getSpriteEditor().getSpriteCount()) { + SpriteObject sprite2 = getMain().getSpriteEditor().getSpriteOption(order).getSprite(); + if (Objects.equals(getMain().draggingProperty().get(), sprite2)) + return false; + Bounds a = sprite.localToScene(sprite.getBoundsInLocal()); + Bounds b = sprite2.localToScene(sprite2.getBoundsInLocal()); + return a.intersects(b); + } + return false; + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "TouchingObjCodeBlockInput"); + result.put("posSprite", posSprite.exportData()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + @Override + public void importData(Map data) { + posSprite.importData((Map) data.get("posSprite")); + relocate((double) data.get("x"), (double) data.get("y")); + } +} diff --git a/src/smeen/component/code/block/variable/CreateVarButton.java b/src/smeen/component/code/block/variable/CreateVarButton.java new file mode 100644 index 0000000..fb6f54f --- /dev/null +++ b/src/smeen/component/code/block/variable/CreateVarButton.java @@ -0,0 +1,154 @@ +package smeen.component.code.block.variable; + +import javafx.geometry.Bounds; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Cursor; +import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.layout.Background; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Region; +import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.shape.SVGPath; +import javafx.stage.Modality; +import javafx.stage.Popup; +import javafx.stage.Stage; +import javafx.stage.Window; +import javafx.stage.PopupWindow.AnchorLocation; +import smeen.component.code.CodeSelector; +import smeen.global.Fonts; +import smeen.global.SmeenSVGs; +import smeen.global.SmeenConstants.Type; +import smeen.views.MainView; + +public class CreateVarButton extends Button { + + private MainView main; + private Popup addVarPopup; + private TextField nameTextField; + private CodeSelector codeSelector; + public CreateVarButton(MainView main, CodeSelector codeSelector) { + this.main = main; + this.codeSelector = codeSelector; + nameTextField = new TextField(); + nameTextField.setPrefHeight(30); + nameTextField.setFont(Fonts.SMALL_REGULAR_FONT); + this.addVarPopup = createPopup(); + setText("เพิ่มตัวแปร"); + setFont(Fonts.SMALL_REGULAR_FONT); + setOnAction(e -> { + if (!addVarPopup.isShowing()) { + addVarPopup.show(main.getStage()); + nameTextField.setText(""); + } + }); + } + + public Popup createPopup() { + Popup addVarPopup = new Popup(); + addVarPopup.setAutoHide(true); + VBox addVarPane = new VBox(); + addVarPane.setBackground(Background.fill(Color.WHITE)); + + Label textHead = new Label("สร้างตัวแปรใหม่"); + textHead.setFont(Fonts.BASIC_BOLD_FONT); + VBox textWrap = new VBox(); + textWrap.getChildren().add(textHead); + textWrap.setBackground(Background.fill(Color.PALEVIOLETRED)); + textWrap.setPrefSize(300, 50); + textWrap.setAlignment(Pos.CENTER); + + Button closeButton = new Button(); + SVGPath closePath = new SVGPath(); + closePath.setContent(SmeenSVGs.CLOSE_PATH); + Region expandRegion = new Region(); + expandRegion.setShape(closePath); + expandRegion.setBackground(Background.fill(Color.BLACK)); + expandRegion.setMaxSize(20, 20); + expandRegion.setPrefSize(20, 20); + closeButton.setGraphic(expandRegion); + closeButton.setPrefSize(32, 32); + closeButton.setStyle("-fx-background-radius: 32px;"); + closeButton.setBackground(Background.fill(Color.TRANSPARENT)); + closeButton.setPadding(new Insets(2)); + closeButton.setOnAction(e -> { + if (addVarPopup.isShowing()) addVarPopup.hide(); + }); + + StackPane header = new StackPane(); + header.getChildren().addAll(textWrap , closeButton); + StackPane.setAlignment(closeButton, Pos.TOP_RIGHT); + StackPane.setMargin(closeButton, new Insets(10)); + + VBox componentWrap = new VBox(); + + Label textBody = new Label("ชื่อตัวแปร :"); + textBody.setFont(Fonts.BASIC_BOLD_FONT); + VBox addName = new VBox(); + addName.getChildren().addAll(textBody , nameTextField); + + + HBox chooseVarType = new HBox(); + Button varString = createButton("เพิ่มเป็น String", Type.String); + Button varDouble = createButton("เพิ่มเป็น Double", Type.Double); + Button varBoolean = createButton("เพิ่มเป็น Boolean", Type.Boolean); + + + chooseVarType.getChildren().addAll(varString , varDouble , varBoolean); + chooseVarType.setAlignment(Pos.CENTER); + chooseVarType.setSpacing(5); + + componentWrap.getChildren().addAll(addName , chooseVarType); + componentWrap.setSpacing(5); + componentWrap.setPadding(new Insets(10)); + + + + addVarPane.getChildren().addAll(header, componentWrap); + addVarPane.setBackground(Background.fill(Color.SILVER)); + + addVarPopup.getContent().addAll(addVarPane); + + + return addVarPopup; + } + + + + private Region createRegion(String SVGPath,double sizeIcon) { + SVGPath path = new SVGPath(); + path.setContent(SVGPath); + Region icon = new Region(); + icon.setShape(path); + icon.setMaxSize(sizeIcon, sizeIcon); + icon.setMinSize(sizeIcon, sizeIcon); + icon.setPadding(new Insets(0)); + icon.setBackground(Background.fill(Color.TRANSPARENT)); + return icon; + } + + private Button createButton(String buttonName, Type type) { + Button button = new Button(buttonName); + button.setFont(Fonts.EXTRA_SMALL_REGULAR_FONT); + button.setOnAction(e -> { + boolean wasCreated = false; + String creatingName = nameTextField.getText(); + for (String varName : main.getCodeSelector().createdVarNameProperty()) { + if (varName.equals(creatingName)) { + wasCreated = true; + break; + } + } + if (!creatingName.equals("") && !wasCreated) { + codeSelector.addVar(nameTextField.getText() , type); + addVarPopup.hide(); + } + }); + return button; + } +} diff --git a/src/smeen/component/code/block/variable/HideVarCodeBlock.java b/src/smeen/component/code/block/variable/HideVarCodeBlock.java new file mode 100644 index 0000000..0a0ca37 --- /dev/null +++ b/src/smeen/component/code/block/variable/HideVarCodeBlock.java @@ -0,0 +1,87 @@ +package smeen.component.code.block.variable; + +import javafx.application.Platform; +import javafx.collections.ObservableList; +import javafx.scene.control.ComboBox; +import javafx.scene.control.Label; +import javafx.scene.control.ListCell; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeSelector; +import smeen.global.Fonts; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +public class HideVarCodeBlock extends CodeBlock { + private CodeSelector codeSelector; + private ComboBox optionBox; + + public HideVarCodeBlock(MainView main, CodeSelector codeSelector) { + super(main); + this.codeSelector = codeSelector; + Label text = new Label("ซ่อนตัวแปร"); + text.setFont(Fonts.SMALL_REGULAR_FONT); + text.setTextFill(Color.WHITE); + optionBox = new ComboBox<>(); + optionBox.itemsProperty().bind(codeSelector.createdVarNameProperty()); + //optionBox.setValue(optionBox.getItems().get(0)); + + // set selectBox of optionBox size + optionBox.setPrefHeight(25); + optionBox.setCellFactory(param -> new ListCell() { + { + // set the height of the cell + setPrefHeight(25); + } + + @Override + protected void updateItem(String item, boolean empty) { + super.updateItem(item, empty); + if (!empty && item != null) { + setText(item); + } else { + setText(null); + } + } + }); + optionBox.setVisibleRowCount(5); + + getContent().getChildren().addAll(text, optionBox); + getContent().setBackground(Background.fill(Color.PALEVIOLETRED)); + } + + @Override + public CodeBlock copy() { + HideVarCodeBlock copy = new HideVarCodeBlock(getMain(), getMain().getCodeSelector()); + copy.optionBox.setValue(optionBox.getValue()); + return copy; + } + @Override + public Result execute(SmeenContext context) { + String name = optionBox.getValue(); + Platform.runLater(() -> getMain().getStageArea().shownVariableProperty().remove(name)); + return new Result(false,false); + } + public void updateOption(ObservableList newOptionList) { + optionBox.setItems(newOptionList); + if (newOptionList.size() == 0) return; + optionBox.setValue(newOptionList.get(0)); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "HideVarCodeBlock"); + result.put("option", optionBox.getValue()); + return result; + } + + @Override + public void importData(Map data) { + optionBox.setValue((String) data.get("option")); + } +} diff --git a/src/smeen/component/code/block/variable/SetVarCodeBlock.java b/src/smeen/component/code/block/variable/SetVarCodeBlock.java new file mode 100644 index 0000000..f9a61b7 --- /dev/null +++ b/src/smeen/component/code/block/variable/SetVarCodeBlock.java @@ -0,0 +1,115 @@ +package smeen.component.code.block.variable; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import javafx.collections.ObservableList; +import javafx.scene.control.ComboBox; +import javafx.scene.control.Label; +import javafx.scene.control.ListCell; +import javafx.scene.layout.Background; +import javafx.scene.layout.Pane; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.component.code.CodeSelector; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.util.Savable; +import smeen.views.MainView; + +public class SetVarCodeBlock extends CodeBlock { + private ComboBox optionBox; + private Pane slotWrap; + private CodeSelector codeSelector; + + public SetVarCodeBlock(MainView main, CodeSelector codeSelector) { + super(main); + this.codeSelector = codeSelector; + Label text1 = new Label("เซ็ตค่าตัวแปร"); + text1.setFont(Fonts.SMALL_REGULAR_FONT); + text1.setTextFill(Color.WHITE); + Label text2 = new Label("เป็น"); + text2.setFont(Fonts.SMALL_REGULAR_FONT); + text2.setTextFill(Color.WHITE); + optionBox = new ComboBox<>(); + optionBox.itemsProperty().bind(codeSelector.createdVarNameProperty()); + //optionBox.setValue(optionBox.getItems().get(0)); + + // set selectBox of optionBox size + optionBox.setPrefHeight(25); + optionBox.setCellFactory(param -> new ListCell() { + { + // set the height of the cell + setPrefHeight(25); + } + + @Override + protected void updateItem(String item, boolean empty) { + super.updateItem(item, empty); + if (!empty && item != null) { + setText(item); + } else { + setText(null); + } + } + }); + optionBox.setVisibleRowCount(5); + + // When change option + optionBox.valueProperty().addListener((obs, oldv, newv) -> { + + if (Objects.nonNull(newv)) { + CodeBlockInputSlot newSlot = new CodeBlockInputSlot<>(getMain(), codeSelector.createdVarMapProperty().get(newv)); + slotWrap.getChildren().clear(); + slotWrap.getChildren().add(newSlot); + } + + }); + + // set String as default to avoid NullException + CodeBlockInputSlot slot = new CodeBlockInputSlot<>(getMain(), Type.String); + slotWrap = new Pane(); + slotWrap.getChildren().add(slot); + + getContent().getChildren().addAll(text1, optionBox, text2, slotWrap); + getContent().setBackground(Background.fill(Color.PALEVIOLETRED)); + } + + private CodeBlockInputSlot getCodeBlockInputSlot(){ + return (CodeBlockInputSlot) slotWrap.getChildren().get(0); + } + + @Override + public CodeBlock copy() { + SetVarCodeBlock copy = new SetVarCodeBlock(getMain(), getMain().getCodeSelector()); + copy.optionBox.setValue(optionBox.getValue()); + return copy; + } + + @Override + public Result execute(SmeenContext context) { + String name = optionBox.getValue(); + Object value = getCodeBlockInputSlot().getValue(context); + context.setVariable(name, value); + return new Result(false, false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "SetVarCodeBlock"); + result.put("option", optionBox.getValue()); + result.put("value", getCodeBlockInputSlot().exportData()); + return result; + } + + @Override + public void importData(Map data) { + optionBox.setValue((String) data.get("option")); + getCodeBlockInputSlot().importData((Map) data.get("value")); + } +} diff --git a/src/smeen/component/code/block/variable/ShowVarCodeBlock.java b/src/smeen/component/code/block/variable/ShowVarCodeBlock.java new file mode 100644 index 0000000..5fd07d1 --- /dev/null +++ b/src/smeen/component/code/block/variable/ShowVarCodeBlock.java @@ -0,0 +1,88 @@ +package smeen.component.code.block.variable; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import javafx.application.Platform; +import javafx.collections.ObservableList; +import javafx.scene.control.ComboBox; +import javafx.scene.control.Label; +import javafx.scene.control.ListCell; +import javafx.scene.layout.Background; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeSelector; +import smeen.global.Fonts; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +public class ShowVarCodeBlock extends CodeBlock { + private CodeSelector codeSelector; + private ComboBox optionBox; + public ShowVarCodeBlock(MainView main, CodeSelector codeSelector) { + super(main); + this.codeSelector = codeSelector; + Label text = new Label("แสดงตัวแปร"); + text.setFont(Fonts.SMALL_REGULAR_FONT); + text.setTextFill(Color.WHITE); + optionBox = new ComboBox<>(); + optionBox.itemsProperty().bind(codeSelector.createdVarNameProperty()); + //optionBox.setValue(optionBox.getItems().get(0)); + + // set selectBox of optionBox size + optionBox.setPrefHeight(25); + optionBox.setCellFactory(param -> new ListCell() { + { + // set the height of the cell + setPrefHeight(25); + } + @Override + protected void updateItem(String item, boolean empty) { + super.updateItem(item, empty); + if (!empty && item != null) { + setText(item); + } else { + setText(null); + } + } + }); + optionBox.setVisibleRowCount(5); + + getContent().getChildren().addAll(text, optionBox); + getContent().setBackground(Background.fill(Color.PALEVIOLETRED)); + } + + @Override + public CodeBlock copy() { + ShowVarCodeBlock copy = new ShowVarCodeBlock(getMain(),getMain().getCodeSelector()); + copy.optionBox.setValue(optionBox.getValue()); + return copy; + } + + public void updateOption(ObservableList newOptionList) { + optionBox.setItems(newOptionList); + if (newOptionList.size() == 0) return; + optionBox.setValue(newOptionList.get(0)); + } + + @Override + public Result execute(SmeenContext context) { + String name = optionBox.getValue(); + Platform.runLater(() -> getMain().getStageArea().shownVariableProperty().add(name)); + return new Result(false,false); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type","ShowVarCodeBlock"); + result.put("option",optionBox.getValue()); + return result; + } + + @Override + public void importData(Map data) { + optionBox.setValue((String) data.get("option")); + } +} diff --git a/src/smeen/component/code/block/variable/VariableCodeBlockInput.java b/src/smeen/component/code/block/variable/VariableCodeBlockInput.java new file mode 100644 index 0000000..13f4ff6 --- /dev/null +++ b/src/smeen/component/code/block/variable/VariableCodeBlockInput.java @@ -0,0 +1,105 @@ +package smeen.component.code.block.variable; + +import javafx.beans.property.SimpleStringProperty; +import javafx.beans.property.StringProperty; +import javafx.scene.control.Label; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.paint.Color; +import smeen.component.code.CodeBlockInput; +import smeen.global.Fonts; +import smeen.global.SmeenConstants.Type; +import smeen.logic.SmeenContext; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +/** + * CodeBlock which can store a variable of the selected type + * + * @param type of containing value + */ +public class VariableCodeBlockInput extends CodeBlockInput { + private StringProperty name; + private Label first; + private Type type; + + public VariableCodeBlockInput(MainView main) { + super(main); + name = new SimpleStringProperty(); + + first = new Label(); + first.textProperty().bind(name); + first.setTextFill(Color.WHITE); + first.setFont(Fonts.SMALL_REGULAR_FONT); + + getContent().setBackground(new Background(new BackgroundFill(Color.PALEVIOLETRED, new CornerRadii(20), null))); + getContent().getChildren().addAll(first); + } + + public VariableCodeBlockInput(MainView main, Type type, String name) { + this(main); + this.type = type; + this.name.set(name); + // to check T type + setColorBorder(); + } + + /** + * A function to copy this CodeBlock + */ + @Override + public CodeBlockInput copy() { + VariableCodeBlockInput copy = new VariableCodeBlockInput<>(getMain(), getType(), name.get()); + return copy; + } + + /** + * A function to return the containing variable value + */ + @Override + public T getValue(SmeenContext context) { + return context.getVariable(name.get()); + } + + + /** + * A function to get Type of containing variable, return in enum Type + */ + @Override + public Type getType() { + return type; + } + + /** + * A function to get name of containing variable + * @return + */ + public StringProperty nameProperty() { + return name; + } + + /** + * A function to export data of this CodeBlock + */ + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("type", "VariableCodeBlockInput"); + result.put("name", name.get()); + result.put("x", getLayoutX()); + result.put("y", getLayoutY()); + return result; + } + + /** + * A function to import data to this CodeBlock + */ + @Override + public void importData(Map data) { + relocate((double) data.get("x"), (double) data.get("y")); + name.set((String) data.get("name")); + } +} diff --git a/src/smeen/global/Fonts.java b/src/smeen/global/Fonts.java new file mode 100644 index 0000000..fd5c8f8 --- /dev/null +++ b/src/smeen/global/Fonts.java @@ -0,0 +1,44 @@ +package smeen.global; + +import javafx.scene.text.Font; +import javafx.scene.text.FontWeight; + +/** + * A global class for handling font. + */ +public final class Fonts { + + /** + * The thai font family name. + */ + public static final String THAI_FONT_FAMILY; + + /** + * A thai font with standard size and weight. + */ + public static final Font BASIC_REGULAR_FONT; + + /** + * A thai font with standard size and bold weight. + */ + public static final Font BASIC_BOLD_FONT; + + /** + * A thai font with small size and standard weight. + */ + public static final Font SMALL_REGULAR_FONT; + + /** + * A thai font with extra small size and standard weight. + */ + public static final Font EXTRA_SMALL_REGULAR_FONT; + + static{ + BASIC_BOLD_FONT = Font.loadFont(Fonts.class.getResourceAsStream("/fonts/IBMPlexSansThai-Bold.ttf"), 24); + BASIC_REGULAR_FONT = Font.loadFont(Fonts.class.getResourceAsStream("/fonts/IBMPlexSansThai-Regular.ttf"), 24); + SMALL_REGULAR_FONT = Font.loadFont(Fonts.class.getResourceAsStream("/fonts/IBMPlexSansThai-Bold.ttf"), 14); + EXTRA_SMALL_REGULAR_FONT = Font.loadFont(Fonts.class.getResourceAsStream("/fonts/IBMPlexSansThai-Bold.ttf"), 10); + THAI_FONT_FAMILY = BASIC_BOLD_FONT.getFamily(); + } + +} diff --git a/src/smeen/global/SmeenComponent.java b/src/smeen/global/SmeenComponent.java new file mode 100644 index 0000000..bc67f16 --- /dev/null +++ b/src/smeen/global/SmeenComponent.java @@ -0,0 +1,78 @@ +package smeen.global; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Cursor; +import javafx.scene.control.Button; +import javafx.scene.layout.Background; +import javafx.scene.layout.Region; +import javafx.scene.layout.StackPane; +import javafx.scene.paint.Color; +import javafx.scene.shape.Arc; +import javafx.scene.shape.SVGPath; + +public class SmeenComponent { + + /** + * Create a remove button with the given size. + * @param sizeIcon the size of the button. + * @return + */ + public static Button createRemoveButton(int sizeIcon) { + Region delIcon1 = createRegion(SmeenSVGs.DELETE_PATH1, sizeIcon); + delIcon1.setBackground(Background.fill(Color.RED)); + Region delIcon2 = createRegion(SmeenSVGs.DELETE_PATH2, sizeIcon * 16.66 / 40); + delIcon2.setBackground(Background.fill(Color.WHITE)); + Region delIcon3 = createRegion(SmeenSVGs.DELETE_PATH3, sizeIcon * 16.66 / 40); + delIcon3.setBackground(Background.fill(Color.WHITE)); + StackPane delIcon = new StackPane(); + delIcon.getChildren().addAll(delIcon1 , delIcon2 , delIcon3); + delIcon.setAlignment(Pos.CENTER); + delIcon.setCursor(Cursor.HAND); + + Button removeButton = new Button(); + removeButton.setGraphic(delIcon); + removeButton.setPrefSize(sizeIcon, sizeIcon); + removeButton.setStyle( + "-fx-background-radius: "+ sizeIcon + "px;" + ); + removeButton.setPadding(new Insets(0, 0, 0, 0)); + + return removeButton; + } + + /** + * Create a region with the given icon path and size. + * @param SVGPath + * @param sizeIcon + * @return + */ + public static Region createRegion(String SVGPath,double sizeIcon) { + SVGPath path = new SVGPath(); + path.setContent(SVGPath); + Region icon = new Region(); + icon.setShape(path); + icon.setMaxSize(sizeIcon, sizeIcon); + icon.setMinSize(sizeIcon, sizeIcon); + icon.setPadding(new Insets(0)); + icon.setBackground(Background.fill(Color.TRANSPARENT)); + return icon; + } + + /** + * Create half a circle region. + * @return + */ + public static Region createHead() { + SVGPath path = new SVGPath(); + path.setContent(SmeenSVGs.HALF_CIRCLE); + + Region head = new Region(); + head.setShape(path); + head.setRotate(0); + head.setBackground(Background.fill(Color.BLACK)); + head.setMaxSize(40, 20); + head.setMinSize(40, 20); + return head; + } +} diff --git a/src/smeen/global/SmeenConstants.java b/src/smeen/global/SmeenConstants.java new file mode 100644 index 0000000..86d3258 --- /dev/null +++ b/src/smeen/global/SmeenConstants.java @@ -0,0 +1,271 @@ +package smeen.global; + +import java.lang.reflect.Array; +import java.security.Key; +import java.util.ArrayList; +import java.util.concurrent.*; +import java.util.function.Function; + +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Node; +import javafx.scene.image.Image; +import javafx.scene.image.PixelWriter; +import javafx.scene.image.WritableImage; +import javafx.scene.input.KeyCode; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import javafx.scene.shape.SVGPath; + +public class SmeenConstants { + + /** + * The distance (in pixels) that two CodeBlockList can have at most to be able to snap. + */ + public static final double SNAP_THRESHOLD = 15; + + /** + * The width of the stage. + */ + public static final double STAGE_WIDTH = 440; + + /** + * The height of the stage. + */ + public static final double STAGE_HEIGHT = 280; + + /** + * The default border with light gray color. + */ + public static final Border DEFAULT_BORDER = new Border(new BorderStroke(Color.LIGHTGRAY, BorderStrokeStyle.SOLID, new CornerRadii(8), BorderWidths.DEFAULT)); + + /** + * The blue border representing a selected object. + */ + public static final Border HIGHLIGHTED_BORDER = new Border(new BorderStroke(Color.DODGERBLUE, BorderStrokeStyle.SOLID, new CornerRadii(8), BorderWidths.DEFAULT)); + + /** + * A border with large width to cover a code block list. + */ + public static final Border INNER_CODE_BLOCK_LIST_ORANGE_BORDER = new Border(new BorderStroke(Color.ORANGE, Color.ORANGE, Color.ORANGE, Color.ORANGE, BorderStrokeStyle.NONE, BorderStrokeStyle.NONE, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(0, 0, 24, 24), Insets.EMPTY)); + + /** + * The minimum width/height (in pixels) that code area will extends from the furthest + * child in each direction to create empty space. + */ + public static final double CODE_AREA_EXTRA_SPACE = 100; + + /** + * The delay (in milliseconds) between code block executions. + */ + public static final long EXECUTION_DELAY = 15; + + /** + * The thread pool to create threads to execute code blocks. + */ + public static final ExecutorService THREAD_POOL = Executors.newCachedThreadPool(); + + /** + * Object used to lock (using synchronized) sprite asking so that only 1 sprite can be asking + * at any time. + */ + public static final Object ANSWER_LOCK = new Object(); + + /** + * The default background image for the stage. + */ + public static final Image DEFAULT_BACKGROUND; + + /** + * The first costume image for the default sprite. + */ + public static final Image DOG_SPRITE_1; + + /** + * The second costume image for the default sprite. + */ + public static final Image DOG_SPRITE_2; + + static { + WritableImage bg = new WritableImage((int) STAGE_WIDTH, (int) STAGE_HEIGHT); + PixelWriter pw = bg.getPixelWriter(); + for (int i = 0; i < bg.getWidth(); i++) + for (int j = 0; j < bg.getHeight(); j++) + pw.setColor(i, j, Color.WHITE); + DEFAULT_BACKGROUND = bg; + + DOG_SPRITE_1 = new Image(SmeenConstants.class.getResourceAsStream("/picture/dog-move1.png")); + DOG_SPRITE_2 = new Image(SmeenConstants.class.getResourceAsStream("/picture/dog-move2.png")); + } + + + // Enum for Input type + + /** + * Represent a type of code block input. + */ + public enum Type { + /** + * Represent a String type. + */ + String, + /** + * Represent a double type. + */ + Double, + /** + * Represent a boolean type. + */ + Boolean, + } + + /** + * Represent a key type to check for key pressed blocks. + */ + public enum KeyPress { + ANY(code -> true), SPACEBAR(KeyCode.SPACE), ENTER(KeyCode.ENTER), CTRL(KeyCode.CONTROL), SHIFT(KeyCode.SHIFT), KEY_UP(code -> code.equals(KeyCode.UP) || code.equals(KeyCode.KP_UP)), KEY_DOWN(code -> code.equals(KeyCode.DOWN) || code.equals(KeyCode.KP_DOWN)), KEY_LEFT(code -> code.equals(KeyCode.LEFT) || code.equals(KeyCode.KP_LEFT)), KEY_RIGHT(code -> code.equals(KeyCode.RIGHT) || code.equals(KeyCode.KP_RIGHT)), + KEY_A(KeyCode.A), KEY_B(KeyCode.B), KEY_C(KeyCode.C), KEY_D(KeyCode.D), KEY_E(KeyCode.E), KEY_F(KeyCode.F), KEY_G(KeyCode.G), KEY_H(KeyCode.H), KEY_I(KeyCode.I), KEY_J(KeyCode.J), KEY_K(KeyCode.K), KEY_L(KeyCode.L), KEY_M(KeyCode.M), KEY_N(KeyCode.N), KEY_O(KeyCode.O), KEY_P(KeyCode.P), KEY_Q(KeyCode.Q), KEY_R(KeyCode.R), KEY_S(KeyCode.S), KEY_T(KeyCode.T), KEY_U(KeyCode.U), KEY_V(KeyCode.V), KEY_W(KeyCode.W), KEY_X(KeyCode.X), KEY_Y(KeyCode.Y), KEY_Z(KeyCode.Z), + KEY_0(code -> code.equals(KeyCode.DIGIT0) || code.equals(KeyCode.NUMPAD0)), KEY_1(code -> code.equals(KeyCode.DIGIT1) || code.equals(KeyCode.NUMPAD1)), KEY_2(code -> code.equals(KeyCode.DIGIT2) || code.equals(KeyCode.NUMPAD2)), KEY_3(code -> code.equals(KeyCode.DIGIT3) || code.equals(KeyCode.NUMPAD3)), KEY_4(code -> code.equals(KeyCode.DIGIT4) || code.equals(KeyCode.NUMPAD4)), KEY_5(code -> code.equals(KeyCode.DIGIT5) || code.equals(KeyCode.NUMPAD5)), KEY_6(code -> code.equals(KeyCode.DIGIT6) || code.equals(KeyCode.NUMPAD6)), KEY_7(code -> code.equals(KeyCode.DIGIT7) || code.equals(KeyCode.NUMPAD7)), KEY_8(code -> code.equals(KeyCode.DIGIT8) || code.equals(KeyCode.NUMPAD8)), KEY_9(code -> code.equals(KeyCode.DIGIT9) || code.equals(KeyCode.NUMPAD9)); + + private Function checker; + + /** + * Check whether the given javafx KeyCode will trigger this KeyPress event. + * + * @param code the javafx KeyCode + * @return whether the given javafx KeyCode will trigger this KeyPress event. + */ + public boolean checkKeyCode(KeyCode code) { + return checker.apply(code); + } + + /** + * Constructor for the KeyPressEvent. This will check for key code equality. + * @param code + */ + KeyPress(KeyCode code) { + this.checker = c -> c.equals(code); + } + + /** + * Constructor for the KeyPressEvent. + * @param checker function that take in key code and check if that keycode being pressed mean this key code is pressed. + */ + KeyPress(Function checker) { + this.checker = checker; + } + } + + /** + * Represent math functions to be used in math function block. + */ + public enum MathFunction { + + /** + * Floor function. + */ + floor(num -> Math.floor(num), "Floor"), + + /** + * Ceiling function. + */ + ceiling(num -> Math.ceil(num), "Ceiling"), + + /** + * Sine function. + */ + sin(num -> Math.sin(num)), + + /** + * Cosine function. + */ + cos(num -> Math.cos(num)), + + /** + * Tangent function. + */ + tan(num -> Math.tan(num)), + + /** + * Inverse sine function. + */ + arcsin(num -> Math.asin(num)), + + /** + * Inverse cosine function. + * */ + arccos(num -> Math.acos(num)), + + /** + * Inverse tangent function. + */ + arctan(num -> Math.atan(num)), + + /** + * Absolute function. + */ + abs(num -> Math.abs(num)), + + /** + * Square root function. + */ + sqrt(num -> Math.sqrt(num)), + + /** + * Natural logarithm function. + */ + ln(num -> Math.log(num)), + + /** + * Logarithm (base 10) function. + */ + log(num -> Math.log10(num)), + + /** + * Exponential function. + */ + ePow(num -> Math.pow(Math.E, num), "e^"),; + + private Function func; + private String name; + + /** + * The constructor of MathFunction. + * @param func the function that perform calculation. + */ + MathFunction(Function func) { + this.func = func; + this.name = this.toString(); + } + + /** + * The constructor of MathFunction. + * @param func + * @param name + */ + MathFunction(Function func, String name) { + this.func = func; + this.name = name; + } + + /** + * Perform calculation on the given input. + * @param num + * @return + */ + public double calculation(Double num) { + return func.apply(num); + } + + /** + * + * @return the name of this function. + */ + public String getName() { + return name; + } + } + +} diff --git a/src/smeen/global/SmeenFileChooser.java b/src/smeen/global/SmeenFileChooser.java new file mode 100644 index 0000000..65a1b24 --- /dev/null +++ b/src/smeen/global/SmeenFileChooser.java @@ -0,0 +1,62 @@ +package smeen.global; + +import javafx.stage.FileChooser; +import javafx.stage.Stage; + +import java.io.File; + +/** + * Handle file choosing. The main method should call initialize before doing anything else from this class. + */ +public final class SmeenFileChooser { + + private static Stage primaryStage; + + public static void initialize(Stage primaryStage) { + SmeenFileChooser.primaryStage = primaryStage; + } + + /** + * Launch a file chooser with image filter. + * + * @return a selected image, or null if none is selected. + */ + public static File chooseImage() { + FileChooser fileChooser = new FileChooser(); + fileChooser.setTitle("Open Scene Image"); + fileChooser.getExtensionFilters().addAll( + new FileChooser.ExtensionFilter("image files (*.png, *.jpg, *.jpeg)", "*.png", "*.jpg", "*.jpeg") + ); + return fileChooser.showOpenDialog(primaryStage); + } + + /** + * Laumch a file chooser with smeen project filter. + * + * @return a selected project file, or null if none is selected. + */ + public static File openProject() { + FileChooser fileChooser = new FileChooser(); + fileChooser.setTitle("Open Scene Image"); + fileChooser.getExtensionFilters().addAll( + new FileChooser.ExtensionFilter("Sniff project files (*.sniff)", "*.sniff"), + new FileChooser.ExtensionFilter("Any File (*.*)", "*.*") + ); + return fileChooser.showOpenDialog(primaryStage); + } + + /** + * Launch a file chooser to save project data. + * + * @return a target file to save, or null if not selected. + */ + public static File saveProject() { + FileChooser fileChooser = new FileChooser(); + fileChooser.setTitle("Save"); + fileChooser.getExtensionFilters().addAll( + new FileChooser.ExtensionFilter("Sniff project files (*.sniff)", "*.sniff"), + new FileChooser.ExtensionFilter("Any File (*.*)", "*.*")); + return fileChooser.showSaveDialog(primaryStage); + } + +} diff --git a/src/smeen/global/SmeenSVGs.java b/src/smeen/global/SmeenSVGs.java new file mode 100644 index 0000000..53daa81 --- /dev/null +++ b/src/smeen/global/SmeenSVGs.java @@ -0,0 +1,18 @@ +package smeen.global; + +public final class SmeenSVGs { + + public static final String FLAG_PATH = "M91.15 312.04C272.88 326.11 263.42 222.71 473 173.28 324.26 45.51 208.34 132.39 91.15 30.16v-5.3C91.15 11.13 80.02 0 66.29 0 52.57 0 41.43 11.13 41.43 24.86v445.45H16.3c-8.97 0-16.3 7.33-16.3 16.3v25.14h132.58v-25.16c0-8.92-7.32-16.28-16.28-16.28H91.15V312.04z"; + public static final String PLUS_PATH = "M150,0C67.159,0,0.001,67.159,0.001,150c0,82.838,67.157,150.003,149.997,150.003S300.002,232.838,300.002,150 C300.002,67.159,232.839,0,150,0z M213.281,166.501h-48.27v50.469c-0.003,8.463-6.863,15.323-15.328,15.323 c-8.468,0-15.328-6.86-15.328-15.328v-50.464H87.37c-8.466-0.003-15.323-6.863-15.328-15.328c0-8.463,6.863-15.326,15.328-15.328 l46.984,0.003V91.057c0-8.466,6.863-15.328,15.326-15.328c8.468,0,15.331,6.863,15.328,15.328l0.003,44.787l48.265,0.005 c8.466-0.005,15.331,6.86,15.328,15.328C228.607,159.643,221.742,166.501,213.281,166.501z"; + public static final String IMG_ICON_PATH = "M24 22h-24v-20h24v20zm-1-19h-22v18h22v-18zm-1 16h-19l4-7.492 3 3.048 5.013-7.556 6.987 12zm-11.848-2.865l-2.91-2.956-2.574 4.821h15.593l-5.303-9.108-4.806 7.243zm-4.652-11.135c1.38 0 2.5 1.12 2.5 2.5s-1.12 2.5-2.5 2.5-2.5-1.12-2.5-2.5 1.12-2.5 2.5-2.5zm0 1c.828 0 1.5.672 1.5 1.5s-.672 1.5-1.5 1.5-1.5-.672-1.5-1.5.672-1.5 1.5-1.5z"; + public static final String SUBTASK_PATH = "m281.46 249.66-15.5-101.27c-.57-3.8.47-7.81 3.19-10.93 4.92-5.64 13.5-6.24 19.14-1.32l207.07 180.38 1.53 1.59c4.77 5.76 3.96 14.32-1.8 19.08L288.02 508.53c-2.99 2.41-6.96 3.59-11.03 2.87-7.34-1.32-12.23-8.36-10.91-15.69l15.44-85.83c-17.98-2.09-37.59-6.57-57.77-13.36-52.66-17.69-109.96-51.41-153.32-100.33C26.64 246.79-3.02 181.98.25 102.58 1.42 73.66 7 42.84 17.88 10.23 19.22 4.95 23.7.78 29.43.1c7.44-.88 14.19 4.44 15.06 11.87 11.93 100.08 50.53 158.11 98.25 191.8 42.65 30.12 93.19 41.35 138.72 45.89z"; + public static final String EXPAND_PATH = "M227.133,83.033c8.283,0,15-6.716,15-15V15c0-8.284-6.717-15-15-15H174.1c-8.284,0-15,6.716-15,15 s6.716,15,15,15h16.82l-69.854,69.854L51.213,30h16.82c8.284,0,15-6.716,15-15s-6.716-15-15-15H15C6.717,0,0,6.716,0,15v53.033 c0,8.284,6.717,15,15,15c8.285,0,15-6.716,15-15v-16.82l69.854,69.854L30,190.92V174.1c0-8.284-6.715-15-15-15 c-8.283,0-15,6.716-15,15v53.033c0,8.284,6.717,15,15,15h53.033c8.284,0,15-6.716,15-15c0-8.284-6.716-15-15-15h-16.82 l69.854-69.854l69.854,69.854H174.1c-8.284,0-15,6.716-15,15c0,8.284,6.716,15,15,15h53.033c8.283,0,15-6.716,15-15V174.1 c0-8.284-6.717-15-15-15c-8.285,0-15,6.716-15,15v16.82l-69.854-69.854l69.854-69.854v16.82 C212.133,76.317,218.848,83.033,227.133,83.033z"; + public static final String SPRITE_PATH = "M414.744,368.006c-4.354-13.059-12.239-25.999-23.867-33.668c-22.386-14.854-48.47-22.674-73.685-31.155 c-6.084-2.133-12.264-4.395-17.82-7.701c-4.969-2.953-6.827-8.97-7.979-14.28c-0.507-2.816-0.824-5.678-0.981-8.519 c18.282-25.013,30.413-65.829,30.413-99.3c0-52.24-29.516-66.796-65.926-66.796c-36.408,0-65.922,14.541-65.922,66.776 c0,34.67,13.006,77.204,32.395,101.912c-0.181,1.947-0.41,3.902-0.76,5.842c-1.159,5.303-3.018,11.249-7.975,14.194 c-5.568,3.308-11.749,5.399-17.832,7.532c-25.215,8.489-51.297,15.965-73.677,30.827c-11.636,7.661-19.52,21.277-23.867,34.336 c-4.48,13.551-6.311,30.494-6.035,43.494h164.772h164.773C421.053,398.5,419.219,381.556,414.744,368.006z"; + public static final String COSTUME_PATH = "M295.158,58.839c-0.608-1.706-1.873-3.109-3.521-3.873l-56.343-26.01c-11.985-4.06-24.195-7.267-36.524-9.611 c-0.434-0.085-0.866-0.126-1.292-0.126c-3.052,0-5.785,2.107-6.465,5.197c-4.502,19.82-22.047,34.659-43.251,34.659 c-21.203,0-38.749-14.838-43.25-34.659c-0.688-3.09-3.416-5.197-6.466-5.197c-0.426,0-0.858,0.041-1.292,0.126 c-12.328,2.344-24.538,5.551-36.542,9.611L3.889,54.965c-1.658,0.764-2.932,2.167-3.511,3.873 c-0.599,1.726-0.491,3.589,0.353,5.217l24.46,48.272c1.145,2.291,3.474,3.666,5.938,3.666c0.636,0,1.281-0.092,1.917-0.283 l27.167-8.052v161.97c0,3.678,3.001,6.678,6.689,6.678h161.723c3.678,0,6.67-3.001,6.67-6.678V107.66l27.186,8.052 c0.636,0.191,1.28,0.283,1.915,0.283c2.459,0,4.779-1.375,5.94-3.666l24.469-48.272C295.629,62.428,295.747,60.565,295.158,58.839z "; + public static final String CLOSE_PATH = "M51.111,20.293,37.132,34.272,23.152,20.293l-2.859,2.859,13.979,13.98L20.293,51.111l2.859,2.859,13.98-13.979L51.111,53.97l2.859-2.859L39.991,37.132,53.97,23.152Z"; + public static final String DELETE_PATH1 = "M44,24c0,11.045-8.955,20-20,20S4,35.045,4,24S12.955,4,24,4S44,12.955,44,24z"; + public static final String DELETE_PATH2 = "M29.656,15.516l2.828,2.828l-14.14,14.14l-2.828-2.828L29.656,15.516z"; + public static final String DELETE_PATH3 = "M32.484,29.656l-2.828,2.828l-14.14-14.14l2.828-2.828L32.484,29.656z"; + public static final String HALF_CIRCLE = "M100,2450.9c0-714.6,186.3-1500.6,510.4-2159.1c706.9-1439.4,2072.3-2434.7,3669.9-2682.2c367.5-56.2,1074.4-56.2,1434.3,0c1173.9,183.7,2230.5,763.1,2980.8,1635.9c546.2,638,921.3,1385.8,1087.2,2174.4c68.9,334.3,117.4,760.5,117.4,1046.3v186.3H5000H100V2450.9z"; + +} diff --git a/src/smeen/logic/CodeBlockInputSnapHandler.java b/src/smeen/logic/CodeBlockInputSnapHandler.java new file mode 100644 index 0000000..3c9c512 --- /dev/null +++ b/src/smeen/logic/CodeBlockInputSnapHandler.java @@ -0,0 +1,93 @@ +package smeen.logic; + +import javafx.geometry.Bounds; +import javafx.scene.Node; +import javafx.scene.Parent; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.CodeBlockInputSlot; +import smeen.global.SmeenConstants.Type; +import smeen.views.MainView; + +/** + * Handle snapping of code block input + */ +public class CodeBlockInputSnapHandler implements SnapHandler{ + + private MainView main; + + private CodeBlockInputSlot old; + + /** + * Constructor for the CodeBlockInputSnapHandler + * @param main + */ + public CodeBlockInputSnapHandler(MainView main){ + this.main = main; + } + + @Override + public void update() { + if(main.draggingProperty().get() instanceof CodeBlockInput input){ + CodeBlockInputSlot snappable = null; + for (Node node : main.codeAreaProperty().get().getChildren()) { + snappable = findSnappable(input, node); + if(snappable != null) + break; + } + + if(old != null && snappable != old) + old.hideSnapHint(); + + if(snappable != null) { + snappable.snapHintWidthProperty().set(input.getWidth()); + snappable.showSnapHint(); + } + + old = snappable; + } + } + + @Override + public boolean performSnap() { + boolean snapped = false; + if(old != null){ + old.hideSnapHint(); + old.contentProperty().set(main.draggingProperty().get()); + snapped = true; + } + + old = null; + return snapped; + } + + /** + * Check the node and all its descendants to find any CodeBlockInputSlot that can be snapped + * with the currently dragging node. + * @param node the node to find CodeBlockInputSlot. + * @return CodeBlockInputSlot instance that the currently dragging node can be snapped to, or null if there's none. + */ + private CodeBlockInputSlot findSnappable(CodeBlockInput dragging, Node node){ + if(node instanceof CodeBlockInputSlot slot && check(dragging, slot)) + return slot; + + if(node instanceof Parent parent){ + for(Node child : parent.getChildrenUnmodifiable()){ + CodeBlockInputSlot result = findSnappable(dragging, child); + if(result != null) + return result; + } + } + return null; + } + + private boolean check(CodeBlockInput dragging, CodeBlockInputSlot target){ + if(!dragging.getType().equals(target.getType()) || target.contentProperty().get() != null) + return false; + + Bounds a = dragging.localToScene(dragging.getBoundsInLocal()); + // we must make sure that text field is always present when we call this check function (in other words, the target content is always null) + Bounds b = target.getTextField().localToScene(target.getTextField().getBoundsInLocal()); + return a.intersects(b); + } + +} diff --git a/src/smeen/logic/CodeBlockListSnapHandler.java b/src/smeen/logic/CodeBlockListSnapHandler.java new file mode 100644 index 0000000..77e4c49 --- /dev/null +++ b/src/smeen/logic/CodeBlockListSnapHandler.java @@ -0,0 +1,194 @@ +package smeen.logic; + +import javafx.geometry.Bounds; +import javafx.scene.Node; +import javafx.scene.Parent; +import smeen.component.code.CodeArea; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockList; +import smeen.global.SmeenConstants; +import smeen.views.MainView; + +/** + * A handler for a currently dragging code block to check if the dragging code block can be snapped to other node. + */ +public class CodeBlockListSnapHandler implements SnapHandler { + + private MainView main; + + private CodeBlockList oldList; + + private CodeBlock old; + + private int indexToAdd; + + /** + * Constructor for the CodeBlockListSnapHandler. + * @param main + */ + public CodeBlockListSnapHandler(MainView main) { + this.main = main; + } + + @Override + public void update() { + Node d = main.draggingProperty().get(); + + if (d instanceof CodeBlockList block) { + // find the block in code area that can be snapped + FindSnapResult findResult = findSnap(main.codeAreaProperty().get(), block); + CodeBlockList snappableList = findResult.snappableList; + CodeBlock snappable = findResult.snappable; + int snappableIndex = findResult.index; + boolean snapTop = findResult.snapTop; + + // hide the snap hint of the old snappable + if (old != null && old != snappable) + old.hideSnapHints(); + + if (oldList != null && oldList != snappableList) + oldList.hideSnapHint(); + + // show the snap hint for current snappable. + if (snappable != null) { + snappable.snapHintWidthProperty().set(block.getCodeList().getChildren().get(0).getBoundsInLocal().getWidth()); + if (snapTop) + snappable.showTopSnapHint(); + else + snappable.showBottomSnapHint(); + } else if (snappableList != null) { + snappableList.snapHintWidthProperty().set(block.getCodeList().getChildren().get(0).getBoundsInLocal().getWidth()); + snappableList.showSnapHint(); + } + + old = snappable; + oldList = snappableList; + indexToAdd = snappableIndex; + } + } + + @Override + public boolean performSnap() { + Node d = main.draggingProperty().get(); + + boolean snapped = false; + if (d instanceof CodeBlockList block) { + if (oldList != null) { + oldList.getCodeList().getChildren().addAll(indexToAdd, block.getCodeList().getChildren()); + snapped = true; + } + } + + if (old != null) { + old.hideSnapHints(); + old = null; + } + + if (oldList != null) { + oldList.hideSnapHint(); + oldList = null; + indexToAdd = -1; + } + return snapped; + } + + record FindSnapResult(int index, boolean snapTop, CodeBlock snappable, CodeBlockList snappableList) { + } + + private static final FindSnapResult NO_RESULT = new FindSnapResult(-1, false, null, null); + + private FindSnapResult findSnap(Node node, CodeBlockList dragging) { + if (node instanceof Parent p) { + for (Node child : p.getChildrenUnmodifiable()) { + FindSnapResult res = findSnap(child, dragging); + if (res.index >= 0) + return res; + } + } + + CodeBlock draggingTop = (CodeBlock) dragging.getCodeList().getChildren().get(0); + if (node instanceof CodeBlockList list) { + if (list.getCodeList().getChildren().isEmpty()) { + // check if we can snap dragging code block into the code block list as first element. + if (checkEmptySnap(dragging, list) && !(draggingTop.mustBeFirstBlock() && !(list.getParent() instanceof CodeArea))) + return new FindSnapResult(0, false, null, list); + } else { + // check if we can snap at the top of the code block list. + CodeBlock top = (CodeBlock) list.getCodeList().getChildren().get(0); + if (checkTopSnap(dragging, top) && !top.mustBeFirstBlock() && + // not allow block that must be first to be inserted in inner list + !(draggingTop.mustBeFirstBlock() && !(list.getParent() instanceof CodeArea))) + return new FindSnapResult(0, true, top, list); + + // if the dragging block must be first block, we must not check bottom snapping. + if (!draggingTop.mustBeFirstBlock()) { + + // iterate through each code block in the code block list. + for (int i = 0; i < list.getCodeList().getChildren().size(); i++) { + CodeBlock b = (CodeBlock) list.getCodeList().getChildren().get(i); + // find the one that can be snapped. + if (checkNormalSnap(dragging, b)) + return new FindSnapResult(i + 1, false, b, list); + } + } + } + } + return NO_RESULT; + } + + /** + * Check if dragging blocklist can be snapped into empty code block list + * + * @param dragging + * @param target + * @return + */ + private boolean checkEmptySnap(CodeBlockList dragging, CodeBlockList target) { + Bounds a = dragging.localToScene(dragging.getBoundsInLocal()); + Bounds b = target.localToScene(target.getBoundsInLocal()); + return a.intersects(b); + } + + /** + * Check if the dragging blocklist can be snapped below the target block. + * + * @param dragging + * @param target + * @return + */ + private boolean checkNormalSnap(CodeBlockList dragging, CodeBlock target) { + Bounds a = target.localToScene(target.getContent().getBoundsInLocal()); + Bounds b = dragging.localToScene(dragging.getBoundsInLocal()); + + // the x intersect should be at least 35% of the smaller bounds's width + double l = Math.max(a.getMinX(), b.getMinX()), r = Math.min(a.getMaxX(), b.getMaxX()); + if (Math.max(0, r - l) < 0.35 * Math.min(a.getWidth(), b.getWidth())) + return false; + + // the other CodeBlock should have distance not more than threshold + double dist = b.getMinY() - a.getMaxY(); + return dist > -SmeenConstants.SNAP_THRESHOLD && dist <= SmeenConstants.SNAP_THRESHOLD; + } + + /** + * Check if the dragging blocklist can be snapped above the target block. + * + * @param dragging + * @param target + * @return + */ + private boolean checkTopSnap(CodeBlockList dragging, CodeBlock target) { + Bounds a = target.localToScene(target.getContent().getBoundsInLocal()); + Bounds b = dragging.localToScene(dragging.getBoundsInLocal()); + + // the x intersect should be at least 35% of the smaller bounds's width + double l = Math.max(a.getMinX(), b.getMinX()), r = Math.min(a.getMaxX(), b.getMaxX()); + if (Math.max(0, r - l) < 0.35 * Math.min(a.getWidth(), b.getWidth())) + return false; + + // the other CodeBlock should have distance not more than threshold + double dist = a.getMinY() - b.getMaxY(); + return dist > -SmeenConstants.SNAP_THRESHOLD && dist <= SmeenConstants.SNAP_THRESHOLD; + } + +} diff --git a/src/smeen/logic/CodeExecutionHandler.java b/src/smeen/logic/CodeExecutionHandler.java new file mode 100644 index 0000000..a54f9f0 --- /dev/null +++ b/src/smeen/logic/CodeExecutionHandler.java @@ -0,0 +1,267 @@ +package smeen.logic; + +import javafx.beans.property.*; +import javafx.collections.FXCollections; +import javafx.collections.SetChangeListener; +import javafx.geometry.Point2D; +import javafx.scene.Node; +import javafx.scene.Scene; +import javafx.scene.input.KeyEvent; +import javafx.scene.input.MouseEvent; +import smeen.component.SpriteObject; +import smeen.component.code.CodeArea; +import smeen.component.code.CodeBlock; +import smeen.component.code.CodeBlockList; +import smeen.component.code.block.event.*; +import smeen.global.SmeenConstants; +import smeen.views.MainView; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.concurrent.*; +import java.util.function.Consumer; +import java.util.function.Predicate; + +/** + * A class that handle code blocks execution. + */ +public class CodeExecutionHandler implements HasEvents { + + private MainView main; + + private SmeenContext context; + + private BooleanProperty running; + private SetProperty> runningActions; + + /** + * Constructor for CodeExecutionHandler. + * @param main + */ + public CodeExecutionHandler(MainView main) { + this.main = main; + + context = new SmeenContext(); + + running = new SimpleBooleanProperty(); + runningActions = new SimpleSetProperty<>(FXCollections.observableSet(ConcurrentHashMap.newKeySet())); + + runningActions.addListener((SetChangeListener>) (c) -> { + if (c.wasAdded() && !running.get()) { + c.getElementAdded().cancel(true); + } + }); + } + + /** + * Whether the current state is running. + * @return + */ + public BooleanProperty runningProperty() { + return running; + } + + /** + * + * @return the context to be used by code blocks. + */ + public SmeenContext getContext() { + return context; + } + + /** + * Run all "When Green FLag Clicked" Code Block Lists + */ + public void onGreenFlagClicked() { + // if already running, do not repeat running flag codes. + if (running.get()) return; + + runningActions.clear(); + running.set(true); + runCodesIfTop(top -> top instanceof WhenStartCodeBlock); + } + + /** + * Stop all currently running code block actions + */ + public void onStopButtonClicked() { + // if already stopped, there's nothing to do + if (!running.get()) return; + + for (Future future : runningActions) + future.cancel(true); + runningActions.clear(); + + main.getStageArea().forEachSprite(sprite -> { + // set all sprites to visible + sprite.setVisible(true); + // also hide all speech + sprite.stopSaying(); + }); + main.getAnswerArea().hide(); + main.getStageArea().shownVariableProperty().clear(); + + running.set(false); + } + + /** + * Run all handler for when scene changed + */ + public void onSceneChanged(int order) { + runCodesIfTop(top -> top instanceof WhenSceneChangeToCodeBlock block && block.getPosScene(context) == order); + } + + /** + * Run all the necessary "On Pressed" code block list in the given sprite. + * + * @param sprite + */ + public void onSpritePressed(SpriteObject sprite) { + if (!running.get()) + return; + + forEachCodeBlockList(sprite.getCodeArea(), list -> { + if (list.getCodeList().getChildren().get(0) instanceof WhenClickedCodeBlock) + registerFuture(() -> list.execute(context)); + }); + } + + /** + * Run all the necessary "On Pressed" code block list in the currently shown scene. + */ + public void onStagePressed() { + if (!running.get()) + return; + + forEachCodeBlockList(main.getSceneEditor().getScene(main.getStageArea().shownSceneProperty().get()).getCodeArea(), list -> { + if (list.getCodeList().getChildren().get(0) instanceof WhenClickedCodeBlock) + registerFuture(() -> list.execute(context)); + }); + } + + /** + * @return + * @see https://stackoverflow.com/a/19348417 + */ + public Future broadcast(String name) { + if (!running.get()) + return null; + + return registerFuture(() -> { + List> toWait = new ArrayList<>(); + runIf(list -> list.getCodeList().getChildren().get(0) instanceof WhenReceivedBroadcastCodeBlock cb && cb.getBroadcastName(context).equals(name), list -> toWait.add(registerFuture(() -> list.execute(context)))); + for (Future w : toWait) { + try { + w.get(); + } catch (InterruptedException e) { + return; + } catch (ExecutionException e) { + e.printStackTrace(); + } + } + }); + } + + /** + * Run the given consumer on all interested code area (which is all sprite's code area and + * the currently selected stage's code area) + * + * @param func + */ + private void forEachCodeArea(Consumer func) { + main.getSpriteEditor().forEachSpriteOption(option -> func.accept(option.getSprite().getCodeArea())); + func.accept(main.getSceneEditor().getScene(main.getStageArea().shownSceneProperty().get()).getCodeArea()); + } + + /** + * Run all the code block lists that has their top block pass the predicate and is in the + * interested code area (defined by {@link #forEachCodeArea} + * + * @param pred + */ + private void runCodesIfTop(Predicate pred) { + runCodesIf(list -> pred.test((CodeBlock) list.getCodeList().getChildren().get(0))); + } + + /** + * If the current state is running, run all the code block lists that pass the predicate + * that is in the interested code area (defined by {@link #forEachCodeArea} + * + * @param pred + */ + private void runCodesIf(Predicate pred) { + if (!running.get()) + return; + + runIf(pred, list -> registerFuture(() -> list.execute(context))); + } + + /** + * Run the given consumer on all the interested code block list that pass the given + * predicate (interested code block list is defined by {@link #forEachCodeArea}. + * + * @param pred + * @param toRun + */ + private void runIf(Predicate pred, Consumer toRun) { + forEachCodeArea(codeArea -> forEachCodeBlockList(codeArea, list -> { + if (pred.test(list)) + toRun.accept(list); + })); + } + + /** + * Run the given func on all code block list inside the given code area. + * + * @param area + * @param func + */ + private void forEachCodeBlockList(CodeArea area, Consumer func) { + for (Node child : area.getChildren()) { + if (child instanceof CodeBlockList list) { + func.accept(list); + } + } + } + + /** + * @param r + * @return a new runnable that will run the old runnable and print exception stack trace if there's an exception. + */ + private Runnable withExceptionLogging(Runnable r) { + return () -> { + try { + r.run(); + } catch (Exception e) { + if (e != null && !(e instanceof CancellationException) && !(e instanceof CompletionException ex && ex.getCause() instanceof CancellationException)) { + e.printStackTrace(); + } + } + }; + } + + /** + * Register the given future to be cancelled when the red button is clicked. Also will + * print the stack trace of any error from the given error to the console. + * + * @param r + */ + public Future registerFuture(Runnable r) { + Future[] future = {null}; + future[0] = SmeenConstants.THREAD_POOL.submit(() -> { + withExceptionLogging(r).run(); + if (future[0] != null) + runningActions.remove(future[0]); + }); + runningActions.add(future[0]); + return future[0]; + } + + @Override + public void registerEvents(Scene scene) { + context.registerEvents(scene); + scene.addEventHandler(KeyEvent.KEY_PRESSED, e -> + runCodesIfTop(top -> top instanceof WhenKeyPressedCodeBlock cb && cb.getOptionBox().getValue().checkKeyCode(e.getCode()))); + } +} diff --git a/src/smeen/logic/DraggingHandler.java b/src/smeen/logic/DraggingHandler.java new file mode 100644 index 0000000..f1f10b2 --- /dev/null +++ b/src/smeen/logic/DraggingHandler.java @@ -0,0 +1,61 @@ +package smeen.logic; + +import javafx.scene.Node; +import javafx.scene.input.MouseEvent; +import smeen.views.MainView; + +/** + * A handler to manage movement of currently dragging node from mouse drag event. + */ +public class DraggingHandler { + + private double oldX, oldY; + + private boolean hasOld = false; + + private MainView main; + + /** + * Constructor for DraggingHandler. + * @param main + */ + public DraggingHandler(MainView main) { + this.main = main; + } + + /** + * Perform necessary calculations and move the currently dragging node based on mouse movement. + * + * @param e the mouse drag event. + */ + public void onDrag(MouseEvent e) { + Node d = main.draggingProperty().get(); + if (d == null) + return; + + // calculate delta mouse x and delta mouse y. + double dx = e.getX() - oldX; + double dy = e.getY() - oldY; + + // set the oldPos to calculate in next iteration + oldX = e.getX(); + oldY = e.getY(); + + // first call of the drag event, the calculated delta will not be correct since the old values are not correct. + if (!hasOld) { + hasOld = true; + return; + } + + // move the dragging node by the delta. + d.relocate(d.getLayoutX() + dx, d.getLayoutY() + dy); + } + + /** + * Perform necessary cleanups to be ready for next drag event. + */ + public void onRelease(){ + hasOld = false; + } + +} diff --git a/src/smeen/logic/Executable.java b/src/smeen/logic/Executable.java new file mode 100644 index 0000000..b578d26 --- /dev/null +++ b/src/smeen/logic/Executable.java @@ -0,0 +1,24 @@ +package smeen.logic; + +import smeen.logic.SmeenContext; + +/** + * Represent a class that can be executed, given a context. + */ +public interface Executable { + + /** + * @param shouldBreak whether the outer code block list (that is part of loop) should break out of the loop + */ + record Result(boolean shouldBreak, boolean shouldStop) { + } + + /** + * Execute this object with the given context. + * + * @param context a context to be used. + * @return the execution result + */ + Result execute(SmeenContext context); + +} diff --git a/src/smeen/logic/HasEvents.java b/src/smeen/logic/HasEvents.java new file mode 100644 index 0000000..bbf6e4c --- /dev/null +++ b/src/smeen/logic/HasEvents.java @@ -0,0 +1,17 @@ +package smeen.logic; + +import javafx.scene.Scene; + +/** + * Represent a class that want to register events to JavaFX scene. + */ +public interface HasEvents { + + /** + * Register necessary events to the given scene. + * + * @param scene + */ + void registerEvents(Scene scene); + +} diff --git a/src/smeen/logic/MouseEventsHandler.java b/src/smeen/logic/MouseEventsHandler.java new file mode 100644 index 0000000..ff55c83 --- /dev/null +++ b/src/smeen/logic/MouseEventsHandler.java @@ -0,0 +1,66 @@ +package smeen.logic; + +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.geometry.Point2D; +import javafx.scene.Scene; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.Pane; +import smeen.component.SpriteObject; +import smeen.views.MainView; + +/** + * A class responsible for handling mouse event. Also responsible for broadcasting mouse event + * and checking for when sprite is mouse pressed. + */ +public class MouseEventsHandler implements HasEvents { + + private BooleanProperty mouseDown; + + private ObjectProperty mouseScenePos; + + private MainView main; + + /** + * Constructor for MouseEventsHandler. + * @param main + */ + public MouseEventsHandler(MainView main) { + this.main = main; + + mouseDown = new SimpleBooleanProperty(); + mouseScenePos = new SimpleObjectProperty<>(); + } + + /** + * @return Whether the cursor is being pressed and is hovering over the given sprite. + */ + public boolean isSpritePressed(SpriteObject sprite) { + return mouseDown.get() && sprite.getImageView().localToScene(sprite.getImageView().getBoundsInLocal()).contains(mouseScenePos.get()); + } + + @Override + public void registerEvents(Scene scene) { + scene.addEventHandler(MouseEvent.MOUSE_PRESSED, e -> { + mouseDown.set(true); + mouseScenePos.set(new Point2D(e.getSceneX(), e.getSceneY())); + + main.getStageArea().forEachSprite(sprite -> { + if(isSpritePressed(sprite)) + main.getCodeExecutionHandler().onSpritePressed(sprite); + }); + + Pane stage = main.getStageArea().getStageContent(); + if(stage.localToScene(stage.getBoundsInLocal()).contains(mouseScenePos.get())) + main.getCodeExecutionHandler().onStagePressed(); + }); + scene.addEventHandler(MouseEvent.MOUSE_DRAGGED, e -> { + mouseScenePos.set(new Point2D(e.getSceneX(), e.getSceneY())); + }); + scene.addEventHandler(MouseEvent.MOUSE_RELEASED, e -> { + mouseDown.set(false); + }); + } +} diff --git a/src/smeen/logic/SmeenContext.java b/src/smeen/logic/SmeenContext.java new file mode 100644 index 0000000..ee44af0 --- /dev/null +++ b/src/smeen/logic/SmeenContext.java @@ -0,0 +1,110 @@ +package smeen.logic; + +import javafx.beans.property.*; +import javafx.scene.Scene; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyEvent; +import javafx.scene.input.MouseEvent; +import smeen.global.SmeenConstants; + +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * A class that hold necessary data for code blocks executions. + */ +public class SmeenContext implements HasEvents { + + private Set activeKeys; + + private Map variables; + + private StringProperty currentAnswer; + + private boolean answerChanged; + + /** + * Constructor for SmeenContext. + */ + public SmeenContext() { + activeKeys = ConcurrentHashMap.newKeySet(); + variables = new ConcurrentHashMap<>(); + currentAnswer = new SimpleStringProperty(); + currentAnswer.addListener((prop, oldv, newv) -> { + if (!Objects.equals(oldv, newv)) + answerChanged = true; + }); + } + + /** + * Set the variable value. + * + * @param name the name of variable to set. + * @param value the new value. + */ + public void setVariable(String name, Object value) { + variables.computeIfAbsent(name, n -> new SimpleObjectProperty()).set(value); + } + + /** + * Get the current value of the variable. + * + * @param name the name of the variable to get value. + * @param the java type of the variable value. + * @return the variable value. + */ + public T getVariable(String name) { + return (T) getVariableProperty(name).get(); + } + + /** + * The variable value. + * + * @param name the name of the variable. + * @return + */ + public ReadOnlyObjectProperty getVariableProperty(String name) { + return variables.get(name); + } + + /** + * @param key the key to check. + * @return whether the given key being pressed. + */ + public boolean isKeyActive(SmeenConstants.KeyPress key) { + return activeKeys.stream().anyMatch(code -> key.checkKeyCode(code)); + } + + /** + * The latest answer retrieved from sprite's ask code block. + * + * @return + */ + public StringProperty currentAnswerProperty() { + return currentAnswer; + } + + /** + * @return whether the current answer property has been changed. this will only + * return true once then other call will return false (except if the answer change during + * that period). + */ + public boolean isAnswerChanged() { + boolean result = answerChanged; + if (answerChanged) + answerChanged = false; + return result; + } + + @Override + public void registerEvents(Scene scene) { + scene.addEventHandler(KeyEvent.KEY_PRESSED, e -> { + activeKeys.add(e.getCode()); + }); + scene.addEventHandler(KeyEvent.KEY_RELEASED, e -> { + activeKeys.remove(e.getCode()); + }); + } +} diff --git a/src/smeen/logic/SnapHandler.java b/src/smeen/logic/SnapHandler.java new file mode 100644 index 0000000..1b1bdc5 --- /dev/null +++ b/src/smeen/logic/SnapHandler.java @@ -0,0 +1,22 @@ +package smeen.logic; + +/** + * Represent a class that handle snapping between blocks. + */ +public interface SnapHandler { + + /** + * Perform necessary calculation for the currently dragging node to check + * if there's a node that can be snapped and show the snap hint. + */ + void update(); + + /** + * If there's a node that can be snapped with currently dragging node, + * make it snap, otherwise this method does nothing. Finally, this method will also + * perform necessary resets to be ready for next drag events. + * + * @return whether the snap happened or not. + */ + boolean performSnap(); +} diff --git a/src/smeen/util/Copyable.java b/src/smeen/util/Copyable.java new file mode 100644 index 0000000..fdd2fbd --- /dev/null +++ b/src/smeen/util/Copyable.java @@ -0,0 +1,15 @@ +package smeen.util; + +/** + * Represent class that can be copied + * @param the type to copy to + */ +public interface Copyable { + + /** + * + * @return A copy version of this object, with identical necessary data. + */ + T copy(); + +} diff --git a/src/smeen/util/Resettable.java b/src/smeen/util/Resettable.java new file mode 100644 index 0000000..487a908 --- /dev/null +++ b/src/smeen/util/Resettable.java @@ -0,0 +1,17 @@ +package smeen.util; + +/** + * Represent class in which its data can be cleared and reset. + */ +public interface Resettable { + /** + * Clear all the necessary data + */ + void clearData(); + + /** + * Reset the necessary data back to its default state. + */ + void reset(); + +} diff --git a/src/smeen/util/Savable.java b/src/smeen/util/Savable.java new file mode 100644 index 0000000..8eaf809 --- /dev/null +++ b/src/smeen/util/Savable.java @@ -0,0 +1,198 @@ +package smeen.util; + +import javafx.scene.image.*; +import smeen.component.code.CodeBlockInput; +import smeen.component.code.block.control.FalseCodeBlockInput; +import smeen.component.code.block.control.TrueCodeBlockInput; +import smeen.component.code.block.movement.GetXCodeBlockInput; +import smeen.component.code.block.movement.GetYCodeBlockInput; +import smeen.component.code.block.operator.inputBoolean.*; +import smeen.component.code.block.operator.inputDouble.*; +import smeen.component.code.block.operator.inputString.ContainCodeBlockInput; +import smeen.component.code.block.operator.inputString.JoinCodeBlockInput; +import smeen.component.code.block.operator.inputString.LetterOfCodeBlockInput; +import smeen.component.code.block.sensing.AnswerCodeBlockInput; +import smeen.component.code.block.sensing.KeyPressedCodeBlockInput; +import smeen.component.code.block.sensing.MouseDownCodeBlockInput; +import smeen.component.code.block.sensing.TouchingObjCodeBlockInput; +import smeen.component.code.block.variable.VariableCodeBlockInput; +import smeen.views.MainView; + +import java.util.HashMap; +import java.util.Map; + +/** + * Represents a class that can be serialized to Map. + */ +public interface Savable { + + /** + * Convert current data of this object to Map. + * @return Map data representation of this object. + */ + Map exportData(); + + /** + * Import the data that is a representation of this object into this object. + * @param data the data to import. + */ + void importData(Map data); + + /** + * Export image data into data for saving. + * + * @param image the image to import. + * @return + * @see https://stackoverflow.com/questions/37008675/pure-javafx-convert-image-to-bytes-array-opposit-operation-whats-wrong + */ + static Map exportImageData(Image image) { + PixelReader pr = image.getPixelReader(); + int[] buffer = new int[(int) image.getWidth() * (int) image.getHeight()]; + pr.getPixels(0, 0, (int) image.getWidth(), (int) image.getHeight(), PixelFormat.getIntArgbInstance(), buffer, 0, (int) image.getWidth()); + + Map result = new HashMap<>(); + result.put("width", (int) image.getWidth()); + result.put("height", (int) image.getHeight()); + result.put("buffer", buffer); + return result; + } + + /** + * Convert exported image data back to image instance. + * + * @param data + * @return + */ + static Image importImageData(Map data) { + int width = (int) data.get("width"); + int height = (int) data.get("height"); + int[] buffer = (int[]) data.get("buffer"); + + WritableImage image = new WritableImage(width, height); + PixelWriter pixelWriter = image.getPixelWriter(); + pixelWriter.setPixels(0, 0, width, height, PixelFormat.getIntArgbInstance(), buffer, 0, width); + return image; + } + + /** + * Convert exported code block input data back to code block input instance. + * + * @param data + * @param main + * @return + */ + static CodeBlockInput importCodeBlockInputData(Map data, MainView main) { + switch ((String) data.get("type")) { + case "AndCodeBlockInput": + AndCodeBlockInput and = new AndCodeBlockInput(main); + and.importData(data); + return and; + case "EqualCodeBlockInput": + EqualCodeBlockInput equal = new EqualCodeBlockInput(main); + equal.importData(data); + return equal; + case "GreaterCodeBlockInput": + GreaterCodeBlockInput greater = new GreaterCodeBlockInput(main); + greater.importData(data); + return greater; + case "LessCodeBlockInput": + LessCodeBlockInput less = new LessCodeBlockInput(main); + less.importData(data); + return less; + case "NotCodeBlockInput": + NotCodeBlockInput not = new NotCodeBlockInput(main); + not.importData(data); + return not; + case "OrCodeBlockInput": + OrCodeBlockInput or = new OrCodeBlockInput(main); + or.importData(data); + return or; + case "AddCodeBlockInput": + AddCodeBlockInput add = new AddCodeBlockInput(main); + add.importData(data); + return add; + case "DivideCodeBlockInput": + DivideCodeBlockInput div = new DivideCodeBlockInput(main); + div.importData(data); + return div; + case "FunctionOfCodeBlockInput": + FunctionOfCodeBlockInput func = new FunctionOfCodeBlockInput(main); + func.importData(data); + return func; + case "MinusCodeBlockInput": + MinusCodeBlockInput minus = new MinusCodeBlockInput(main); + minus.importData(data); + return minus; + case "ModCodeBlockInput": + ModCodeBlockInput mod = new ModCodeBlockInput(main); + mod.importData(data); + return mod; + case "MultiCodeBlockInput": + MultiCodeBlockInput multi = new MultiCodeBlockInput(main); + multi.importData(data); + return multi; + case "PowerCodeBlockInput": + PowerCodeBlockInput pow = new PowerCodeBlockInput(main); + pow.importData(data); + return pow; + case "RandomNumberCodeBlockInput": + RandomNumberCodeBlockInput rand = new RandomNumberCodeBlockInput(main); + rand.importData(data); + return rand; + case "RoundCodeBlockInput": + RoundCodeBlockInput round = new RoundCodeBlockInput(main); + round.importData(data); + return round; + case "ContainCodeBlockInput": + ContainCodeBlockInput contain = new ContainCodeBlockInput(main); + contain.importData(data); + return contain; + case "JoinCodeBlockInput": + JoinCodeBlockInput join = new JoinCodeBlockInput(main); + join.importData(data); + return join; + case "LetterOfCodeBlockInput": + LetterOfCodeBlockInput letterOf = new LetterOfCodeBlockInput(main); + letterOf.importData(data); + return letterOf; + case "AnswerCodeBlockInput": + AnswerCodeBlockInput answer = new AnswerCodeBlockInput(main); + answer.importData(data); + return answer; + case "KeyPressedCodeBlockInput": + KeyPressedCodeBlockInput keyPressed = new KeyPressedCodeBlockInput(main); + keyPressed.importData(data); + return keyPressed; + case "MouseDownCodeBlockInput": + MouseDownCodeBlockInput mouseDown = new MouseDownCodeBlockInput(main); + mouseDown.importData(data); + return mouseDown; + case "TouchingObjCodeBlockInput": + TouchingObjCodeBlockInput touching = new TouchingObjCodeBlockInput(main); + touching.importData(data); + return touching; + case "GetXCodeBlockInput": + GetXCodeBlockInput getX = new GetXCodeBlockInput(main); + getX.importData(data); + return getX; + case "GetYCodeBlockInput": + GetYCodeBlockInput getY = new GetYCodeBlockInput(main); + getY.importData(data); + return getY; + case "TrueCodeBlockInput": + TrueCodeBlockInput trueCb = new TrueCodeBlockInput(main); + trueCb.importData(data); + return trueCb; + case "FalseCodeBlockInput": + FalseCodeBlockInput falseCb = new FalseCodeBlockInput(main); + falseCb.importData(data); + return falseCb; + case "VariableCodeBlockInput": + VariableCodeBlockInput varCb = new VariableCodeBlockInput<>(main); + varCb.importData(data); + return varCb; + default: + throw new IllegalStateException("Unknown CodeBlockInput type: " + data.get("type")); + } + } +} diff --git a/src/smeen/util/SmeenLayouts.java b/src/smeen/util/SmeenLayouts.java new file mode 100644 index 0000000..0ad929b --- /dev/null +++ b/src/smeen/util/SmeenLayouts.java @@ -0,0 +1,37 @@ +package smeen.util; + +import javafx.collections.ListChangeListener; +import javafx.scene.Node; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; +import javafx.scene.layout.Region; +import javafx.scene.shape.Rectangle; +import smeen.component.code.CodeBlockList; + +import java.util.function.Consumer; +import java.util.function.Supplier; + +/** + * Utility class for handling UI. + */ +public final class SmeenLayouts { + /** + * Clips the children of the specified {@link Region} to its current size. + * This requires attaching a change listener to the region’s layout bounds, + * as JavaFX does not currently provide any built-in way to clip children. + * + * @param region the {@link Region} whose children to clip + * @throws NullPointerException if {@code region} is {@code null} + * @see source + */ + public static void clipChildren(Region region) { + final Rectangle outputClip = new Rectangle(); + region.setClip(outputClip); + + region.layoutBoundsProperty().addListener((ov, oldValue, newValue) -> { + outputClip.setWidth(newValue.getWidth()); + outputClip.setHeight(newValue.getHeight()); + }); + } + +} diff --git a/src/smeen/views/MainView.java b/src/smeen/views/MainView.java new file mode 100644 index 0000000..890df60 --- /dev/null +++ b/src/smeen/views/MainView.java @@ -0,0 +1,319 @@ +package smeen.views; + +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.geometry.Insets; +import javafx.geometry.Point2D; +import javafx.geometry.Pos; +import javafx.scene.Node; +import javafx.scene.Scene; +import javafx.scene.control.ScrollPane; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; +import javafx.scene.layout.Priority; +import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; +import smeen.component.*; +import smeen.component.code.CodeBlockList; +import smeen.component.code.CodeSelector; +import smeen.component.code.CodeArea; +import smeen.component.code.CodeBlockInput; +import smeen.logic.*; +import smeen.util.Resettable; +import smeen.util.Savable; + +import java.util.HashMap; +import java.util.Map; + +/** + * The root node for all components in Sniff. + */ +public class MainView extends Pane implements Resettable, Savable, HasEvents { + private final TopMenuBar menuBar; + private final CodeSelector codeSelector; + + private final StageArea stageArea; + + private final ObjectProperty codeArea; + + private final ScrollPane codeAreaContainer; + private final SpriteEditor spriteEditor; + private final SceneEditor sceneEditor; + private final ResizeEditor resizeEditor; + private final AnswerArea answerArea; + + private final SnapHandler codeBlockListSnapHandler; + + private final SnapHandler codeBlockInputSnapHandler; + + private final MouseEventsHandler mouseEventsHandler; + + private final CodeExecutionHandler codeExecutionHandler; + + private final DraggingHandler draggingHandler; + + private final ObjectProperty draggingNode; + private final Stage stage; + + /** + * The main view constructor. + * @param stage the primary stage. + */ + public MainView(Stage stage) { + draggingNode = new SimpleObjectProperty<>(); + draggingNode.addListener((obs, oldv, newv) -> { + getChildren().remove(oldv); + if (newv != null) { + getChildren().add(newv); + } + }); + + setMinSize(1024, 640); + + VBox root = new VBox(); + root.prefWidthProperty().bind(widthProperty()); + root.prefHeightProperty().bind(heightProperty()); + + HBox content = new HBox(); + //content.setSpacing(10); + + codeAreaContainer = new ScrollPane(); + HBox.setHgrow(codeAreaContainer, Priority.SOMETIMES); + codeAreaContainer.prefHeightProperty().bind(heightProperty()); + + codeArea = new SimpleObjectProperty<>(); + codeArea.addListener((obs, oldv, newv) -> { + codeAreaContainer.setContent(newv); + }); + + + codeSelector = new CodeSelector(this); + codeSelector.prefHeightProperty().bind(heightProperty()); + + + // componentEditor + stageArea = new StageArea(this); + answerArea = new AnswerArea(this); + StackPane stageAreaWrap = new StackPane(); + stageAreaWrap.getChildren().addAll(stageArea, answerArea); + StackPane.setAlignment(answerArea, Pos.BOTTOM_CENTER); + + HBox groupEditor = new HBox(); + spriteEditor = new SpriteEditor(this); + sceneEditor = new SceneEditor(this); + resizeEditor = new ResizeEditor(this); + + groupEditor.getChildren().addAll(spriteEditor, sceneEditor); + groupEditor.setSpacing(5); + + VBox componentEditor = new VBox(); + componentEditor.getChildren().addAll(stageAreaWrap, groupEditor, resizeEditor); + componentEditor.setSpacing(5); + componentEditor.setPadding(new Insets(0, 10, 0, 0)); + + + content.getChildren().addAll(codeSelector, codeAreaContainer, componentEditor); + HBox.setMargin(codeAreaContainer, new Insets(0, 10, 0, 0)); + + menuBar = new TopMenuBar(this); + + root.getChildren().addAll(menuBar, content); + + getChildren().addAll(root); + + codeExecutionHandler = new CodeExecutionHandler(this); + codeBlockListSnapHandler = new CodeBlockListSnapHandler(this); + codeBlockInputSnapHandler = new CodeBlockInputSnapHandler(this); + draggingHandler = new DraggingHandler(this); + mouseEventsHandler = new MouseEventsHandler(this); + + // handle dragging code block from selector + addEventFilter(MouseEvent.MOUSE_DRAGGED, e -> { + draggingHandler.onDrag(e); + if (draggingNode.get() instanceof CodeBlockList) codeBlockListSnapHandler.update(); + else if (draggingNode.get() instanceof CodeBlockInput) codeBlockInputSnapHandler.update(); + }); + + addEventHandler(MouseEvent.MOUSE_RELEASED, e -> { + Node d = draggingNode.get(); + + boolean snapped = false; + if (draggingNode.get() instanceof CodeBlockList) snapped = codeBlockListSnapHandler.performSnap(); + else if (draggingNode.get() instanceof CodeBlockInput) snapped = codeBlockInputSnapHandler.performSnap(); + + // destroy dragging block when released. + draggingHandler.onRelease(); + draggingNode.set(null); + + // if already snapped, nothing more to be done. + if (snapped) return; + + Point2D mousePos = new Point2D(e.getSceneX(), e.getSceneY()); + if (d instanceof CodeBlockList || d instanceof CodeBlockInput) { + codeArea.get().addIfContains(mousePos, d); + } else if (d instanceof SpriteObject sprite) { + stageArea.addAndRelocate(mousePos, sprite); + }else if (d instanceof VariableDisplayList vd){ + stageArea.addAndRelocate(mousePos, vd); + } + + }); + + this.stage = stage; + + // reset is also initialization + reset(); + } + + /** + * The property of the node that is currently being dragged by user. + * Setting this property will automatically add the node to this MainView's children. + * + * @return node that is currently being dragged + */ + public ObjectProperty draggingProperty() { + return draggingNode; + } + + /** + * + * @return the CodeExecutionHandler of the MainView + */ + public CodeExecutionHandler getCodeExecutionHandler() { + return codeExecutionHandler; + } + + /** + * Get CodeSelector of the MainView + * + * @return CodeSelector of the MainView + */ + public CodeSelector getCodeSelector() { + return codeSelector; + } + + /** + * Get StageArea of the MainView + * + * @return StageArea of the MainView + */ + public StageArea getStageArea() { + return stageArea; + } + + /** + * Get SpriteEditor of the MainView + * + * @return SpriteEditor of the MainView + */ + public SpriteEditor getSpriteEditor() { + return spriteEditor; + } + + /** + * Get SceneEditor of the MainView + * + * @return SceneEditor of the MainView + */ + public SceneEditor getSceneEditor() { + return sceneEditor; + } + + /** + * Get ResizeEditor of the MainView + * + * @return ResizeEditor of the MainView + */ + public ResizeEditor getResizeEditor() { + return resizeEditor; + } + + /** + * Get AnswerArea of the MainView + * + * @return AnswerArea of the MainView + */ + public AnswerArea getAnswerArea() { + return answerArea; + } + + /** + * Get CodeArea of the currently selected Sprite/Scene + * + * @return CodeArea of the currently selected Sprite/Scene + */ + public ObjectProperty codeAreaProperty() { + return codeArea; + } + + /** + * + * @return The MouseEventsHandler of this MainView. + */ + public MouseEventsHandler getMouseEventsHandler() { + return mouseEventsHandler; + } + + /** + * Get Stage + * + * @return Stage + */ + public Stage getStage() { + return stage; + } + + + @Override + public void registerEvents(Scene scene) { + codeExecutionHandler.registerEvents(scene); + mouseEventsHandler.registerEvents(scene); + } + + @Override + public void clearData() { + stageArea.clearData(); + codeSelector.clearData(); + sceneEditor.clearData(); + spriteEditor.clearData(); + } + + @Override + public void reset() { + stageArea.reset(); + codeSelector.reset(); + sceneEditor.reset(); + spriteEditor.reset(); + + sceneEditor.selectedSceneProperty().set(sceneEditor.getScene(1)); + stageArea.shownSceneProperty().set(1); + } + + @Override + public Map exportData() { + Map result = new HashMap<>(); + result.put("sceneEditor", sceneEditor.exportData()); + result.put("codeSelector", codeSelector.exportData()); + result.put("spriteEditor", spriteEditor.exportData()); + result.put("stageArea", stageArea.exportData()); + return result; + } + + @Override + public void importData(Map data) { + clearData(); + + sceneEditor.importData((Map) data.get("sceneEditor")); + codeSelector.importData((Map) data.get("codeSelector")); + spriteEditor.importData((Map) data.get("spriteEditor")); + stageArea.importData((Map) data.get("stageArea")); + + // sprite is not added when imported from sprite editor, so we add them manually here. + spriteEditor.forEachSpriteOption(option -> stageArea.getStageContent().getChildren().add(option.getSprite())); + + sceneEditor.selectedSceneProperty().set(sceneEditor.getScene(1)); + stageArea.shownSceneProperty().set(1); + } +}