From 991d35a6d1dbf4bfa570e178f68a0359e57ea6b7 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 25 Oct 2024 09:39:21 +0200 Subject: [PATCH] update: dummy camera stream integration --- GUI_16_10_staticWorkflow_Multithreading.py | 941 ++++++++++++++++++ GUI_26_09_staticWorkflow_Multithreading.py | 2 +- bjoerntest2.py | 222 +++++ bjoerntest3.py | 181 ++++ compose.yml | 24 + mariadb-test.py | 47 + test.ui | 230 +++++ test2.ui.py | 274 +++++ test_ui.py | 130 +++ testbjoern.py | 189 ++++ testbjoern2.ui | 246 +++++ testbjoern2_ui.py | 139 +++ untitled/.gitignore | 74 ++ untitled/build/Desktop-Debug/.qmake.stash | 23 + .../clangd/index/FILE.h.79AEFC497861DFC5.idx | Bin 0 -> 288 bytes .../index/QApplication.A474B06CEF58703F.idx | Bin 0 -> 174 bytes .../clangd/index/QLocale.01F1E8743C4251DF.idx | Bin 0 -> 166 bytes .../index/QMainWindow.78DB6FD40CBCC891.idx | Bin 0 -> 176 bytes .../index/QTranslator.BF3534267250AC30.idx | Bin 0 -> 170 bytes .../index/__FILE.h.3324F85E382E036A.idx | Bin 0 -> 170 bytes .../index/__fpos64_t.h.23C43F442076149A.idx | Bin 0 -> 210 bytes .../index/__fpos_t.h.ECFBE9EEDAAB6648.idx | Bin 0 -> 210 bytes .../index/__locale_t.h.40EA38A2DCA58618.idx | Bin 0 -> 174 bytes .../index/__mbstate_t.h.6C32CF66236653D7.idx | Bin 0 -> 174 bytes .../index/__sigset_t.h.72131E8056C7E284.idx | Bin 0 -> 208 bytes ...darg___gnuc_va_list.h.957EE2B4DB6A5247.idx | Bin 0 -> 176 bytes .../__stdarg___va_copy.h.11ED534E7AF4A856.idx | Bin 0 -> 174 bytes .../__stdarg_va_arg.h.C38675C0D160CE4C.idx | Bin 0 -> 216 bytes .../__stdarg_va_copy.h.5812F997B3F780A9.idx | Bin 0 -> 172 bytes .../__stdarg_va_list.h.A20C0FFDA235CCCC.idx | Bin 0 -> 238 bytes ..._stddef_max_align_t.h.9A696B9ACA5AF69C.idx | Bin 0 -> 278 bytes .../__stddef_null.h.46DACB2AE1FCBB57.idx | Bin 0 -> 184 bytes .../__stddef_nullptr_t.h.BB76DF7F0265238C.idx | Bin 0 -> 174 bytes .../__stddef_offsetof.h.F032B8137362A473.idx | Bin 0 -> 174 bytes .../__stddef_ptrdiff_t.h.244B2A4B8AE5E0B4.idx | Bin 0 -> 240 bytes .../__stddef_size_t.h.747ED4A2DA41774B.idx | Bin 0 -> 250 bytes .../__stddef_wchar_t.h.E89E65F6312D18C8.idx | Bin 0 -> 148 bytes .../index/algorithm.4283CE8E04B88D2A.idx | Bin 0 -> 298 bytes .../index/algorithmfwd.h.B52ADC7A074104CF.idx | Bin 0 -> 12466 bytes .../clangd/index/align.h.80C2512B8F842646.idx | Bin 0 -> 852 bytes .../aligned_buffer.h.A18F22CAB29234EA.idx | Bin 0 -> 310 bytes .../index/alloc_traits.h.5CF5F0A69C036EAA.idx | Bin 0 -> 8180 bytes .../index/alloc_traits.h.72E7C35C664767C1.idx | Bin 0 -> 670 bytes .../index/alloca.h.793370BF9878CFB6.idx | Bin 0 -> 488 bytes .../allocated_ptr.h.8214ECF4C56E78C2.idx | Bin 0 -> 1046 bytes .../index/allocator.h.D31E7B8BEFD5AE94.idx | Bin 0 -> 4146 bytes .../clangd/index/array.184FFFD3B962987A.idx | Bin 0 -> 11372 bytes .../index/assert.h.9895EEC17E1D2A2B.idx | Bin 0 -> 558 bytes .../index/assertions.h.266799074BAB8854.idx | Bin 0 -> 368 bytes .../clangd/index/atomic.46821F82D327FD81.idx | Bin 0 -> 33348 bytes .../index/atomic_base.h.9272BFEE4EE55D68.idx | Bin 0 -> 8884 bytes ...ic_lockfree_defines.h.2A0580E3C1CF977D.idx | Bin 0 -> 404 bytes ...atomic_wide_counter.h.397D66B6BECC0AA2.idx | Bin 0 -> 174 bytes .../index/atomic_word.h.0B7FB187C2532DE8.idx | Bin 0 -> 224 bytes .../index/atomicity.h.D4655A6FAF2C5588.idx | Bin 0 -> 460 bytes .../index/auto_ptr.h.D1AF7143391B211D.idx | Bin 0 -> 8198 bytes .../index/basic_string.h.636F8FA9AD80474A.idx | Bin 0 -> 57700 bytes .../basic_string.tcc.2D0C76EB3099AFF8.idx | Bin 0 -> 29240 bytes .../index/binders.h.C589B2454DC21565.idx | Bin 0 -> 2442 bytes .../clangd/index/bit.E77EA5629EB3D467.idx | Bin 0 -> 3644 bytes .../index/byteswap.h.E57FF553A16DFAFC.idx | Bin 0 -> 392 bytes .../index/c++allocator.h.20AC450864A96F4F.idx | Bin 0 -> 200 bytes .../index/c++config.h.BF2F33665D7EB4A5.idx | Bin 0 -> 10248 bytes .../index/c++locale.h.53918663E9B050A1.idx | Bin 0 -> 540 bytes .../clangd/index/cctype.7A2E5B928BCF3845.idx | Bin 0 -> 1414 bytes .../clangd/index/cdefs.h.E4D450DF98C1338F.idx | Bin 0 -> 3206 bytes .../clangd/index/cerrno.B65C14291DEB12F2.idx | Bin 0 -> 252 bytes .../index/char_traits.h.263114DAEE0F7CAC.idx | Bin 0 -> 11144 bytes .../index/charconv.h.45DC5854263DB0A4.idx | Bin 0 -> 2162 bytes .../clangd/index/chrono.F95978433952CB73.idx | Bin 0 -> 274 bytes .../index/chrono.h.E832445DA3CBDA93.idx | Bin 0 -> 25954 bytes .../clangd/index/clocale.8BFEF3D6DA37B94B.idx | Bin 0 -> 476 bytes .../index/clock_t.h.65AFE5BA7329BCD4.idx | Bin 0 -> 274 bytes .../index/clockid_t.h.5545878511E5BAF1.idx | Bin 0 -> 282 bytes .../clangd/index/compare.EDA7854AE5DA59D4.idx | Bin 0 -> 150 bytes .../concept_check.h.39429B249CB86886.idx | Bin 0 -> 320 bytes .../index/concurrence.h.368FF763D62F871B.idx | Bin 0 -> 1112 bytes ...okie_io_functions_t.h.5A08066DC7F05542.idx | Bin 0 -> 1056 bytes .../cpp_type_traits.h.D80F5D0FD57269EA.idx | Bin 0 -> 498 bytes .../index/cpu-set.h.B40F3E2869BE4FF9.idx | Bin 0 -> 892 bytes .../index/cpu_defines.h.4E18A129B41E38AC.idx | Bin 0 -> 178 bytes .../clangd/index/cstddef.06546D6D9FEED08D.idx | Bin 0 -> 2238 bytes .../clangd/index/cstdint.91EF72212746155E.idx | Bin 0 -> 2584 bytes .../clangd/index/cstdio.E3D7014BBC7C7170.idx | Bin 0 -> 4372 bytes .../clangd/index/cstdlib.73317090CF3984CF.idx | Bin 0 -> 4492 bytes .../clangd/index/ctime.FD7CD791ADF7455F.idx | Bin 0 -> 1402 bytes .../clangd/index/ctype.h.B268CEA0CECCFC59.idx | Bin 0 -> 3934 bytes .../clangd/index/cwchar.415F3E4D1314A235.idx | Bin 0 -> 6806 bytes .../cxxabi_forced.h.260618EE85312CAA.idx | Bin 0 -> 164 bytes ...xabi_init_exception.h.CA78BEA70589FE17.idx | Bin 0 -> 420 bytes .../clangd/index/debug.h.E107AF16C7F0CBAA.idx | Bin 0 -> 686 bytes ...ble_special_members.h.D0E1B0D83298787A.idx | Bin 0 -> 284 bytes .../index/endian.h.1FC6A4D6D2846204.idx | Bin 0 -> 698 bytes .../index/endian.h.20F8E286A486EE09.idx | Bin 0 -> 336 bytes .../index/endianness.h.F2D2CC6251A4EAFA.idx | Bin 0 -> 214 bytes .../index/erase_if.h.52AC17D898D2345C.idx | Bin 0 -> 774 bytes .../index/errno-base.h.23FC55A99C73A727.idx | Bin 0 -> 940 bytes .../clangd/index/errno.h.063064A523A47758.idx | Bin 0 -> 342 bytes .../clangd/index/errno.h.10013861918E601A.idx | Bin 0 -> 2450 bytes .../clangd/index/errno.h.19BCCCD58DA5623E.idx | Bin 0 -> 620 bytes .../clangd/index/errno.h.33F6986A3C61A3BF.idx | Bin 0 -> 164 bytes .../clangd/index/errno.h.3F8ECD84FB880B64.idx | Bin 0 -> 156 bytes .../error_constants.h.FAB62781508B6283.idx | Bin 0 -> 7540 bytes .../index/error_t.h.58D3895A591B592D.idx | Bin 0 -> 230 bytes .../index/exception.9BD9E09A0A7198C6.idx | Bin 0 -> 2260 bytes .../index/exception.h.60232BC787A23EFB.idx | Bin 0 -> 1600 bytes .../exception_defines.h.E3E83F3521CDDF95.idx | Bin 0 -> 236 bytes .../exception_ptr.h.A3D4E42C18D066BB.idx | Bin 0 -> 1552 bytes .../execution_defs.h.EA0BF88CD36110B9.idx | Bin 0 -> 882 bytes .../features-time64.h.BFBA8D3CA0316037.idx | Bin 0 -> 190 bytes .../index/features.h.5A4ED7C80201A723.idx | Bin 0 -> 2514 bytes .../floatn-common.h.0FE8C4DDCB84E088.idx | Bin 0 -> 1904 bytes .../index/floatn.h.DA21C738CC1B6ABF.idx | Bin 0 -> 408 bytes .../index/functexcept.h.206192DEF17B89F8.idx | Bin 0 -> 324 bytes .../index/functional.1ABC5CEB1A730878.idx | Bin 0 -> 31924 bytes .../functional_hash.h.1DDE07C659671E5C.idx | Bin 0 -> 4926 bytes ...glue_algorithm_defs.h.400B86BACA15F86C.idx | Bin 0 -> 8162 bytes .../glue_memory_defs.h.29B5F90E12B4C61C.idx | Bin 0 -> 1166 bytes .../glue_numeric_defs.h.6191E3EBAF802F7C.idx | Bin 0 -> 1590 bytes .../index/gthr-default.h.7F136A8E758182CE.idx | Bin 0 -> 2112 bytes .../clangd/index/gthr.h.70C66586E0E99D6D.idx | Bin 0 -> 220 bytes .../index/hash_bytes.h.878C140FA90D5822.idx | Bin 0 -> 342 bytes .../index/hashtable.h.44D7678B598CA27C.idx | Bin 0 -> 24908 bytes .../hashtable_policy.h.02AE91A05F6E02C7.idx | Bin 0 -> 10478 bytes .../initializer_list.AFC06A41CFC1543D.idx | Bin 0 -> 1434 bytes .../index/invoke.h.2B1ACA2407CB05E3.idx | Bin 0 -> 760 bytes .../index/ios_base.h.0442D829AE4A2428.idx | Bin 0 -> 14066 bytes .../clangd/index/iosfwd.163CBDA627BDB3A3.idx | Bin 0 -> 3792 bytes .../index/iterator.1BD365EA5EDE5210.idx | Bin 0 -> 370 bytes .../libc-header-start.h.E88219B53B0B0BF5.idx | Bin 0 -> 504 bytes .../clangd/index/limits.507F66A5F268FCAA.idx | Bin 0 -> 56542 bytes .../index/limits.h.1DFE7D0FE6434B13.idx | Bin 0 -> 860 bytes .../index/limits.h.1E7D7771EC751FFB.idx | Bin 0 -> 752 bytes .../index/limits.h.C293B8934AC926BB.idx | Bin 0 -> 444 bytes .../clangd/index/list.7909E1D6E2B739A0.idx | Bin 0 -> 524 bytes .../index/list.tcc.FF41A54BBD49B033.idx | Bin 0 -> 17986 bytes .../index/local_lim.h.2CFD657F256B117E.idx | Bin 0 -> 626 bytes .../index/locale.h.E3C63D05A4E78516.idx | Bin 0 -> 486 bytes .../index/locale.h.F1B51844858762D2.idx | Bin 0 -> 3700 bytes .../locale_classes.h.03600D2B458E75FA.idx | Bin 0 -> 7058 bytes .../locale_classes.tcc.69A59E265193CBC8.idx | Bin 0 -> 6562 bytes .../index/locale_t.h.557516A6B361170F.idx | Bin 0 -> 250 bytes .../index/localefwd.h.8D507D2D246F7EFC.idx | Bin 0 -> 4262 bytes .../index/long-double.h.ACD735A1862B6BF8.idx | Bin 0 -> 170 bytes .../index/main.cpp.2D227B92B66939DB.idx | Bin 0 -> 1344 bytes .../index/mainwindow.cpp.5DBE48AB22A3742A.idx | Bin 0 -> 1032 bytes .../index/mainwindow.h.2DEFA841ACD26463.idx | Bin 0 -> 1058 bytes .../clangd/index/map.67F74A10898EA76A.idx | Bin 0 -> 702 bytes .../index/mbstate_t.h.F9237FB65FF84D5A.idx | Bin 0 -> 250 bytes .../clangd/index/memory.DEB7D2B4EBB93631.idx | Bin 0 -> 1608 bytes .../memory_resource.h.8CBC2A2935956F47.idx | Bin 0 -> 8416 bytes .../index/memoryfwd.h.8339F1696DAE3C08.idx | Bin 0 -> 400 bytes .../clangd/index/move.h.82CE505FF4CFACB8.idx | Bin 0 -> 2368 bytes .../nested_exception.h.5EE3E7707B4F93EB.idx | Bin 0 -> 2116 bytes .../clangd/index/new.41D56A2D69E57DED.idx | Bin 0 -> 4950 bytes .../new_allocator.h.FD7B7B64B2A2207B.idx | Bin 0 -> 1404 bytes .../index/node_handle.h.F46F9F3F43861006.idx | Bin 0 -> 3554 bytes .../clangd/index/numeric.F93D8B803F42F31D.idx | Bin 0 -> 12368 bytes .../numeric_traits.h.8FEF7D9B8E9913D8.idx | Bin 0 -> 448 bytes .../index/os_defines.h.5BE086DD68F6A410.idx | Bin 0 -> 380 bytes .../ostream_insert.h.D2F22116BE7D73E6.idx | Bin 0 -> 828 bytes .../parse_numbers.h.EC5583E0556FCEF1.idx | Bin 0 -> 1934 bytes .../index/posix1_lim.h.D94E4687FC9359FF.idx | Bin 0 -> 1218 bytes .../index/posix2_lim.h.430DA38A1F301F29.idx | Bin 0 -> 582 bytes .../index/postypes.h.BE1513ED32E6A399.idx | Bin 0 -> 2740 bytes .../predefined_ops.h.B15CDC54361DCC11.idx | Bin 0 -> 1508 bytes .../index/pstl_config.h.78EC065511725BA3.idx | Bin 0 -> 1214 bytes .../index/pthread.h.022320E0CE01A46D.idx | Bin 0 -> 24566 bytes ...d_stack_min-dynamic.h.6F432801F0DF58B7.idx | Bin 0 -> 308 bytes .../pthreadtypes-arch.h.9E138C411BE448A0.idx | Bin 0 -> 474 bytes .../index/pthreadtypes.h.BAA8217B62BB6E86.idx | Bin 0 -> 1564 bytes .../index/ptr_traits.h.BC3863E4C7FECDA0.idx | Bin 0 -> 1018 bytes .../index/qalgorithms.h.FD2ECFF5676E6790.idx | Bin 0 -> 29468 bytes .../index/qapplication.h.A93E4553FB9CB7A2.idx | Bin 0 -> 6814 bytes .../index/qarraydata.h.59BE31F3BBA8ED3E.idx | Bin 0 -> 7272 bytes .../index/qatomic.h.F27F4B16AB53D9F8.idx | Bin 0 -> 1928 bytes .../qatomic_cxx11.h.69F2114361242273.idx | Bin 0 -> 7530 bytes .../index/qbasicatomic.h.A2BFD15B643C1404.idx | Bin 0 -> 12620 bytes .../index/qbrush.h.D44E532BF6C7C41E.idx | Bin 0 -> 29368 bytes .../index/qbytearray.h.3E258E5BF8C780EA.idx | Bin 0 -> 40322 bytes .../qbytearraylist.h.E2E8090DE1F836AD.idx | Bin 0 -> 1762 bytes .../clangd/index/qchar.h.AA0A3CD3BD472DA0.idx | Bin 0 -> 41946 bytes .../index/qcolor.h.5684E01578882E86.idx | Bin 0 -> 40978 bytes .../qcompilerdetection.h.7273FAC81D36B620.idx | Bin 0 -> 3746 bytes .../index/qconfig.h.F68B1AFB5E4EF498.idx | Bin 0 -> 1368 bytes .../qcontainerfwd.h.A8D45E2A7296D1C8.idx | Bin 0 -> 772 bytes ...containertools_impl.h.7644E4C51B877567.idx | Bin 0 -> 1968 bytes .../qcoreapplication.h.0A5B8B7796FFF62E.idx | Bin 0 -> 7408 bytes .../index/qcoreevent.h.F3CEEB53B346C550.idx | Bin 0 -> 18484 bytes .../index/qcursor.h.69E8ABF61EB150EC.idx | Bin 0 -> 4164 bytes .../index/qdatastream.h.911D7CBB33217000.idx | Bin 0 -> 22728 bytes .../index/qeventloop.h.634AE2F88E9E40CC.idx | Bin 0 -> 3230 bytes .../index/qflags.h.759D8986082A8255.idx | Bin 0 -> 13772 bytes .../clangd/index/qfont.h.A1BC5EA710C0475E.idx | Bin 0 -> 17334 bytes .../index/qfontinfo.h.2B115D24EC8E4A62.idx | Bin 0 -> 2634 bytes .../index/qfontmetrics.h.1E754D652EDBD45C.idx | Bin 0 -> 9170 bytes .../qgenericatomic.h.D2595E9059CE3E6F.idx | Bin 0 -> 5966 bytes .../index/qglobal.h.80C5986D0C867ACE.idx | Bin 0 -> 22116 bytes .../qglobalstatic.h.B90F9758F0EF15A9.idx | Bin 0 -> 1790 bytes .../qguiapplication.h.B71C26C78EAD409D.idx | Bin 0 -> 7610 bytes .../clangd/index/qhash.h.C345BB5A3DCF91DD.idx | Bin 0 -> 157348 bytes .../qhashfunctions.h.7524BE336D4E70AF.idx | Bin 0 -> 15172 bytes .../clangd/index/qicon.h.F590370864B9ACC9.idx | Bin 0 -> 6926 bytes .../index/qimage.h.B98B60217EC4C94F.idx | Bin 0 -> 17598 bytes .../index/qinputmethod.h.62638013DB836F5C.idx | Bin 0 -> 3630 bytes .../index/qiodevice.h.86919C8F00908C87.idx | Bin 0 -> 6770 bytes .../index/qiterator.h.A52C38FD59FD21C6.idx | Bin 0 -> 8550 bytes .../index/qkeysequence.h.EC0D1C6B79C0D9AF.idx | Bin 0 -> 10512 bytes .../clangd/index/qline.h.08A4D350D9C9644B.idx | Bin 0 -> 14752 bytes .../clangd/index/qlist.h.A54757BEE4315CE6.idx | Bin 0 -> 75666 bytes .../index/qlocale.h.7E7DB33F1A299A16.idx | Bin 0 -> 83466 bytes .../index/qlogging.h.88C32C1FE85F3443.idx | Bin 0 -> 5974 bytes .../index/qmainwindow.h.2825B14DFE1FF1B4.idx | Bin 0 -> 8118 bytes .../clangd/index/qmap.h.8CA468BD1FBCE665.idx | Bin 0 -> 127154 bytes .../index/qmargins.h.C0D077F7860E1277.idx | Bin 0 -> 16514 bytes .../index/qmatrix.h.00820805EF576E4B.idx | Bin 0 -> 8270 bytes .../index/qmetatype.h.541E34D6E6760512.idx | Bin 0 -> 117438 bytes .../index/qnamespace.h.EC3FC28536503AF1.idx | Bin 0 -> 129946 bytes .../index/qnumeric.h.A66D4612F55B13BE.idx | Bin 0 -> 1622 bytes .../index/qobject.h.8D479A7B3FDCD700.idx | Bin 0 -> 19236 bytes .../index/qobject_impl.h.310F998ABFD21C29.idx | Bin 0 -> 2284 bytes .../index/qobjectdefs.h.598B10433A0B063A.idx | Bin 0 -> 592 bytes .../index/qobjectdefs.h.A64CF055117FDFF7.idx | Bin 0 -> 24630 bytes .../qobjectdefs_impl.h.7990AFD078F8EA35.idx | Bin 0 -> 17412 bytes .../index/qpaintdevice.h.4748152C3010F1F9.idx | Bin 0 -> 3890 bytes .../clangd/index/qpair.h.9DEE0C3D7A14D2D0.idx | Bin 0 -> 12514 bytes .../index/qpalette.h.4842B06684DDBDAE.idx | Bin 0 -> 11842 bytes .../index/qpixelformat.h.620C90AEA27BFC2A.idx | Bin 0 -> 16520 bytes .../index/qpixmap.h.D73E0EAB31C7D791.idx | Bin 0 -> 9382 bytes .../index/qpoint.h.A7DD7B4CA031A3A7.idx | Bin 0 -> 15212 bytes .../index/qpolygon.h.4000A0F75B81224E.idx | Bin 0 -> 8944 bytes ...qprocessordetection.h.F5198DD5442AFC6E.idx | Bin 0 -> 422 bytes .../clangd/index/qrect.h.F6CF1537A0B18D4C.idx | Bin 0 -> 37222 bytes .../index/qrefcount.h.6BCA9FE7BAF3DF25.idx | Bin 0 -> 1310 bytes .../index/qregexp.h.8088EF7E18743A13.idx | Bin 0 -> 4964 bytes .../index/qregion.h.56C430EE51273A95.idx | Bin 0 -> 8130 bytes .../clangd/index/qrgb.h.2B6D1755758FF0DF.idx | Bin 0 -> 1918 bytes .../index/qrgba64.h.A8C3238E8B988F3B.idx | Bin 0 -> 7788 bytes .../qscopedpointer.h.447CA7EB36AE21C6.idx | Bin 0 -> 6850 bytes .../index/qshareddata.h.1613C0F5A4F18669.idx | Bin 0 -> 26872 bytes .../qsharedpointer.h.9FB2460B773F76C5.idx | Bin 0 -> 254 bytes ...qsharedpointer_impl.h.901DC4E517036607.idx | Bin 0 -> 60454 bytes .../clangd/index/qsize.h.BEC23C243EFEF7A4.idx | Bin 0 -> 16930 bytes .../index/qsizepolicy.h.118596B94F6E5633.idx | Bin 0 -> 9778 bytes .../index/qstring.h.D18E3F7143B0C176.idx | Bin 0 -> 133700 bytes .../qstringalgorithms.h.BCB989669B8CD32D.idx | Bin 0 -> 5898 bytes .../index/qstringlist.h.B03A2F9985D050E5.idx | Bin 0 -> 14148 bytes .../qstringliteral.h.0A066A3902B9CE30.idx | Bin 0 -> 1348 bytes .../qstringmatcher.h.7D870B6147C84076.idx | Bin 0 -> 2322 bytes .../index/qstringview.h.A67B8B8FF41BFF55.idx | Bin 0 -> 18088 bytes .../index/qsysinfo.h.8EF4D5AF4D751B51.idx | Bin 0 -> 10008 bytes .../qsystemdetection.h.8329D2CD97522D7C.idx | Bin 0 -> 252 bytes .../index/qtabwidget.h.C4E9E0C72F6941B1.idx | Bin 0 -> 7336 bytes .../qtcore-config.h.0C11AA7F7C9F0EA4.idx | Bin 0 -> 1186 bytes .../index/qtgui-config.h.0898F0E1544AC047.idx | Bin 0 -> 1208 bytes .../index/qtguiglobal.h.80A0DFCC7763ABCB.idx | Bin 0 -> 284 bytes .../index/qtransform.h.97E922D9DE075E31.idx | Bin 0 -> 15542 bytes .../index/qtranslator.h.E43F40A38E0AFDC4.idx | Bin 0 -> 2034 bytes .../qtwidgets-config.h.3C31FF7C5B82440C.idx | Bin 0 -> 1926 bytes .../qtwidgetsglobal.h.0D7FCF3A707EDF44.idx | Bin 0 -> 290 bytes .../index/qtypeinfo.h.5160790443A251D4.idx | Bin 0 -> 54132 bytes .../index/qvariant.h.4C476E0F61671237.idx | Bin 0 -> 42666 bytes .../qvarlengtharray.h.7FE8B531C3A3B76F.idx | Bin 0 -> 49216 bytes .../index/qvector.h.D123A02691F2B7AD.idx | Bin 0 -> 103024 bytes .../qversiontagging.h.3C43080618F516BF.idx | Bin 0 -> 436 bytes .../index/qwidget.h.5A43191B86718350.idx | Bin 0 -> 35256 bytes .../index/qwindowdefs.h.434E87C4F63B3C91.idx | Bin 0 -> 1966 bytes .../index/range_access.h.F2D342D0170A00E0.idx | Bin 0 -> 4610 bytes .../clangd/index/ratio.637BCEE78C1EAF1F.idx | Bin 0 -> 16582 bytes .../index/refwrap.h.F7E25ED78261BCB2.idx | Bin 0 -> 3016 bytes .../requires_hosted.h.26268E021F0ECE3C.idx | Bin 0 -> 230 bytes .../clangd/index/sched.h.A585A48500495348.idx | Bin 0 -> 1730 bytes .../clangd/index/sched.h.E8530EF262253892.idx | Bin 0 -> 2246 bytes .../index/select.h.BA57472D13519767.idx | Bin 0 -> 256 bytes .../index/select.h.E19325D0BE3592A0.idx | Bin 0 -> 1390 bytes .../index/setjmp.h.71DEFB3DCC800794.idx | Bin 0 -> 234 bytes .../index/shared_ptr.h.58B2A3F1F22B1E10.idx | Bin 0 -> 23014 bytes .../shared_ptr_atomic.h.D4122DD7C624F18E.idx | Bin 0 -> 19914 bytes .../shared_ptr_base.h.BE69034022EA8FA4.idx | Bin 0 -> 43744 bytes .../index/sigset_t.h.32273C537A103809.idx | Bin 0 -> 292 bytes .../single_threaded.h.918E7314A6EC8DC0.idx | Bin 0 -> 240 bytes .../index/std_abs.h.B5BC80B73AA8AA04.idx | Bin 0 -> 1142 bytes .../index/std_function.h.1DBFFD209E231917.idx | Bin 0 -> 6576 bytes .../index/stdarg.h.32EA7B95DAFCCF99.idx | Bin 0 -> 492 bytes .../index/stdc-predef.h.9EA93D70716BF84B.idx | Bin 0 -> 262 bytes .../index/stddef.h.B10142B5B6E10391.idx | Bin 0 -> 678 bytes .../index/stdexcept.FC9481857B4FA9B4.idx | Bin 0 -> 8240 bytes .../index/stdint-intn.h.EE0939E700184847.idx | Bin 0 -> 434 bytes .../index/stdint-least.h.A0CB5BC401DAC650.idx | Bin 0 -> 690 bytes .../index/stdint-uintn.h.B3EA113168048B57.idx | Bin 0 -> 436 bytes .../index/stdint.h.08597F86630FDE5E.idx | Bin 0 -> 298 bytes .../index/stdint.h.22B451C129B23D79.idx | Bin 0 -> 3698 bytes .../clangd/index/stdio.h.6919C07CB89D47AD.idx | Bin 0 -> 17388 bytes .../index/stdio_lim.h.09E79B5FC5C8DF86.idx | Bin 0 -> 214 bytes .../index/stdlib-float.h.126E8959FAE2A511.idx | Bin 0 -> 170 bytes .../index/stdlib.h.42D90B865E21AB50.idx | Bin 0 -> 3150 bytes .../index/stdlib.h.61AA7B9EED10C430.idx | Bin 0 -> 24972 bytes .../index/stl_algo.h.336B2A99E112B831.idx | Bin 0 -> 49130 bytes .../index/stl_algobase.h.555E5AB59D1CE434.idx | Bin 0 -> 16204 bytes .../index/stl_bvector.h.8AE3CEBB0EAAE7AC.idx | Bin 0 -> 28128 bytes .../stl_construct.h.675F3C756D2CDDFB.idx | Bin 0 -> 1224 bytes .../index/stl_function.h.4312324AADC9200E.idx | Bin 0 -> 25360 bytes .../index/stl_heap.h.A0022ED15B79087D.idx | Bin 0 -> 6350 bytes .../index/stl_iterator.h.70D88ADB523A155E.idx | Bin 0 -> 17970 bytes ...iterator_base_funcs.h.0D39D2E36115557E.idx | Bin 0 -> 2010 bytes ...iterator_base_types.h.1C2D9B2B05C1363B.idx | Bin 0 -> 2958 bytes .../index/stl_list.h.063E636C37F12734.idx | Bin 0 -> 28706 bytes .../index/stl_map.h.EC07165BB825159E.idx | Bin 0 -> 24802 bytes .../index/stl_multimap.h.5B0E5766E75F4152.idx | Bin 0 -> 15002 bytes .../index/stl_numeric.h.936BC0F7F7FAE23C.idx | Bin 0 -> 8078 bytes .../index/stl_pair.h.33E007C18AD1880F.idx | Bin 0 -> 10504 bytes ...tl_raw_storage_iter.h.E907E48D11449F0C.idx | Bin 0 -> 4706 bytes .../index/stl_relops.h.8CD880CC32BA3E47.idx | Bin 0 -> 724 bytes .../index/stl_tempbuf.h.1CFD178B11157DBE.idx | Bin 0 -> 2424 bytes .../index/stl_tree.h.C190197022C6FA1F.idx | Bin 0 -> 43534 bytes .../stl_uninitialized.h.54EDC68402026771.idx | Bin 0 -> 11222 bytes .../index/stl_vector.h.5BE0DC1E083D4239.idx | Bin 0 -> 27930 bytes .../stream_iterator.h.61B56BA0B3239EDE.idx | Bin 0 -> 4196 bytes .../index/streambuf.7FD2D3A2B827E078.idx | Bin 0 -> 9088 bytes .../index/streambuf.tcc.FB7963A391C77967.idx | Bin 0 -> 1064 bytes .../streambuf_iterator.h.2D64BA51BC9EC9AD.idx | Bin 0 -> 7008 bytes .../clangd/index/string.7B4FE7410F5C09C9.idx | Bin 0 -> 1112 bytes .../index/string.h.979B97B48AB27554.idx | Bin 0 -> 9934 bytes .../string_conversions.h.FEDA0A74BBD67E42.idx | Bin 0 -> 998 bytes .../index/string_view.808DF2D0BB7723EB.idx | Bin 0 -> 16568 bytes .../string_view.tcc.3D79C5B861AFBD05.idx | Bin 0 -> 3614 bytes .../index/stringfwd.h.557FE983BB1E2646.idx | Bin 0 -> 902 bytes .../index/strings.h.9EB46A34EB89BB5D.idx | Bin 0 -> 2260 bytes .../index/struct_FILE.h.2B6C435DE91D3DF8.idx | Bin 0 -> 390 bytes ...truct___jmp_buf_tag.h.C41AC0386D4A06C8.idx | Bin 0 -> 222 bytes .../struct_itimerspec.h.7F2AA6FE7224B30F.idx | Bin 0 -> 486 bytes .../index/struct_mutex.h.A62EF32C01DB3505.idx | Bin 0 -> 216 bytes .../struct_rwlock.h.76DF445C3AA414C9.idx | Bin 0 -> 218 bytes .../struct_sched_param.h.B3F662015F7067C8.idx | Bin 0 -> 340 bytes .../struct_timespec.h.0E09B6677A8D6A08.idx | Bin 0 -> 580 bytes .../struct_timeval.h.4A17C4CCB9EE5883.idx | Bin 0 -> 434 bytes .../index/struct_tm.h.472DDF26D5924DB0.idx | Bin 0 -> 976 bytes .../index/stubs-64.h.C743FD695F310B00.idx | Bin 0 -> 322 bytes .../clangd/index/stubs.h.07D09A29AEBA877C.idx | Bin 0 -> 156 bytes .../index/system_error.8A12E1E8FFB1D44A.idx | Bin 0 -> 10230 bytes ...thread-shared-types.h.D988ADBA7666A8DD.idx | Bin 0 -> 338 bytes .../clangd/index/time.h.E3714B647728C2FE.idx | Bin 0 -> 848 bytes .../clangd/index/time.h.EDC06F0AFB6EC7EC.idx | Bin 0 -> 7180 bytes .../index/time64.h.1807D6F5124100A2.idx | Bin 0 -> 232 bytes .../index/time_t.h.CAA645D29A7A0EF9.idx | Bin 0 -> 250 bytes .../index/timer_t.h.3EFB88CBA2B5B801.idx | Bin 0 -> 278 bytes .../index/timesize.h.44719E86E09400E4.idx | Bin 0 -> 186 bytes .../clangd/index/timex.h.F2D36E17192C32F0.idx | Bin 0 -> 2500 bytes .../clangd/index/tuple.778CE823941F84F0.idx | Bin 0 -> 24956 bytes .../index/type_traits.DE435E04D8184E0C.idx | Bin 0 -> 37934 bytes .../index/type_traits.h.833B6807C34CC271.idx | Bin 0 -> 362 bytes .../index/typeinfo.0065C4A406A05D71.idx | Bin 0 -> 2436 bytes .../clangd/index/types.h.E5A59583DBE28918.idx | Bin 0 -> 2198 bytes .../clangd/index/types.h.E5E7FE6DA0F78AF5.idx | Bin 0 -> 3888 bytes .../index/typesizes.h.A6E116B64E63B90B.idx | Bin 0 -> 1134 bytes .../uintn-identity.h.CB86545C6FF94BB3.idx | Bin 0 -> 214 bytes .../index/uio_lim.h.DF584C6AE54BEA07.idx | Bin 0 -> 188 bytes .../uniform_int_dist.h.C54B19F2B43B693B.idx | Bin 0 -> 6216 bytes .../index/unique_ptr.h.A3AB02F93B77F5A0.idx | Bin 0 -> 26802 bytes .../index/unordered_map.CA82C61ED27DA8D6.idx | Bin 0 -> 746 bytes .../unordered_map.h.917859E405C5B5EA.idx | Bin 0 -> 26116 bytes .../uses_allocator.h.258C17386C08195D.idx | Bin 0 -> 1296 bytes ...uses_allocator_args.h.DD2424DE20F3F1C7.idx | Bin 0 -> 168 bytes .../clangd/index/utility.5D04E6A553B4780A.idx | Bin 0 -> 886 bytes .../index/utility.h.15845B2F303871C2.idx | Bin 0 -> 3260 bytes .../clangd/index/variant.0361674085D4F5FD.idx | Bin 0 -> 73990 bytes .../clangd/index/vector.04C1B55C46383484.idx | Bin 0 -> 598 bytes .../index/vector.tcc.9925CCCCF876B8E0.idx | Bin 0 -> 32796 bytes .../index/waitflags.h.8046C5530CD87302.idx | Bin 0 -> 420 bytes .../index/waitstatus.h.D7C4F06852D51050.idx | Bin 0 -> 464 bytes .../clangd/index/wchar.h.27C0562D93BBAA12.idx | Bin 0 -> 210 bytes .../clangd/index/wchar.h.83BD995621576773.idx | Bin 0 -> 15940 bytes .../index/wint_t.h.DAC5928CF0BA7895.idx | Bin 0 -> 252 bytes .../index/wordsize.h.23D8030BEC81E6F1.idx | Bin 0 -> 212 bytes .../index/xopen_lim.h.E4E4BC8C11167D14.idx | Bin 0 -> 510 bytes .../.qtc_clangd/compile_commands.json | 1 + .../Desktop-Debug/qmake_qmake_qm_files.qrc | 5 + untitled/main.cpp | 23 + untitled/mainwindow.cpp | 14 + untitled/mainwindow.h | 23 + untitled/mainwindow.ui | 61 ++ untitled/mainwindow_ui.py | 43 + untitled/untitled.pro | 29 + untitled/untitled_en_US.ts | 3 + vaapitest.py | 43 + 385 files changed, 2966 insertions(+), 1 deletion(-) create mode 100644 GUI_16_10_staticWorkflow_Multithreading.py create mode 100644 bjoerntest2.py create mode 100644 bjoerntest3.py create mode 100644 compose.yml create mode 100644 mariadb-test.py create mode 100644 test.ui create mode 100644 test2.ui.py create mode 100644 test_ui.py create mode 100644 testbjoern.py create mode 100644 testbjoern2.ui create mode 100644 testbjoern2_ui.py create mode 100644 untitled/.gitignore create mode 100644 untitled/build/Desktop-Debug/.qmake.stash create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/QApplication.A474B06CEF58703F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/QLocale.01F1E8743C4251DF.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/QMainWindow.78DB6FD40CBCC891.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/QTranslator.BF3534267250AC30.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__FILE.h.3324F85E382E036A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.957EE2B4DB6A5247.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.11ED534E7AF4A856.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.C38675C0D160CE4C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.5812F997B3F780A9.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.A20C0FFDA235CCCC.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.9A696B9ACA5AF69C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_null.h.46DACB2AE1FCBB57.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_nullptr_t.h.BB76DF7F0265238C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_offsetof.h.F032B8137362A473.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.244B2A4B8AE5E0B4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.747ED4A2DA41774B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_wchar_t.h.E89E65F6312D18C8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/algorithm.4283CE8E04B88D2A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/algorithmfwd.h.B52ADC7A074104CF.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/align.h.80C2512B8F842646.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/aligned_buffer.h.A18F22CAB29234EA.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.5CF5F0A69C036EAA.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.72E7C35C664767C1.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/allocated_ptr.h.8214ECF4C56E78C2.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/allocator.h.D31E7B8BEFD5AE94.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/array.184FFFD3B962987A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/assertions.h.266799074BAB8854.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic.46821F82D327FD81.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_base.h.9272BFEE4EE55D68.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.2A0580E3C1CF977D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_word.h.0B7FB187C2532DE8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomicity.h.D4655A6FAF2C5588.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/auto_ptr.h.D1AF7143391B211D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/basic_string.h.636F8FA9AD80474A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/basic_string.tcc.2D0C76EB3099AFF8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/binders.h.C589B2454DC21565.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/bit.E77EA5629EB3D467.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/byteswap.h.E57FF553A16DFAFC.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/c++allocator.h.20AC450864A96F4F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/c++config.h.BF2F33665D7EB4A5.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/c++locale.h.53918663E9B050A1.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cctype.7A2E5B928BCF3845.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cerrno.B65C14291DEB12F2.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/char_traits.h.263114DAEE0F7CAC.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/charconv.h.45DC5854263DB0A4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/chrono.F95978433952CB73.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/chrono.h.E832445DA3CBDA93.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/clocale.8BFEF3D6DA37B94B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/compare.EDA7854AE5DA59D4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/concept_check.h.39429B249CB86886.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/concurrence.h.368FF763D62F871B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.D80F5D0FD57269EA.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cpu_defines.h.4E18A129B41E38AC.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstddef.06546D6D9FEED08D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstdint.91EF72212746155E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstdio.E3D7014BBC7C7170.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstdlib.73317090CF3984CF.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/ctime.FD7CD791ADF7455F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cwchar.415F3E4D1314A235.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_forced.h.260618EE85312CAA.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_init_exception.h.CA78BEA70589FE17.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/debug.h.E107AF16C7F0CBAA.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/enable_special_members.h.D0E1B0D83298787A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/endian.h.20F8E286A486EE09.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/erase_if.h.52AC17D898D2345C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/errno-base.h.23FC55A99C73A727.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/errno.h.10013861918E601A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/errno.h.33F6986A3C61A3BF.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/errno.h.3F8ECD84FB880B64.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/error_constants.h.FAB62781508B6283.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/error_t.h.58D3895A591B592D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/exception.9BD9E09A0A7198C6.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/exception.h.60232BC787A23EFB.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/exception_defines.h.E3E83F3521CDDF95.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/exception_ptr.h.A3D4E42C18D066BB.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/execution_defs.h.EA0BF88CD36110B9.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/features-time64.h.BFBA8D3CA0316037.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/floatn.h.DA21C738CC1B6ABF.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/functexcept.h.206192DEF17B89F8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/functional.1ABC5CEB1A730878.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/functional_hash.h.1DDE07C659671E5C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/glue_algorithm_defs.h.400B86BACA15F86C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/glue_memory_defs.h.29B5F90E12B4C61C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/glue_numeric_defs.h.6191E3EBAF802F7C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/gthr-default.h.7F136A8E758182CE.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/gthr.h.70C66586E0E99D6D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/hash_bytes.h.878C140FA90D5822.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/hashtable.h.44D7678B598CA27C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/hashtable_policy.h.02AE91A05F6E02C7.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/initializer_list.AFC06A41CFC1543D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/invoke.h.2B1ACA2407CB05E3.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/ios_base.h.0442D829AE4A2428.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/iosfwd.163CBDA627BDB3A3.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/iterator.1BD365EA5EDE5210.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/libc-header-start.h.E88219B53B0B0BF5.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/limits.507F66A5F268FCAA.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/limits.h.1DFE7D0FE6434B13.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/limits.h.1E7D7771EC751FFB.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/limits.h.C293B8934AC926BB.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/list.7909E1D6E2B739A0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/list.tcc.FF41A54BBD49B033.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/local_lim.h.2CFD657F256B117E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/locale.h.E3C63D05A4E78516.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/locale.h.F1B51844858762D2.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.h.03600D2B458E75FA.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.tcc.69A59E265193CBC8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/locale_t.h.557516A6B361170F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/localefwd.h.8D507D2D246F7EFC.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/long-double.h.ACD735A1862B6BF8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/main.cpp.2D227B92B66939DB.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/mainwindow.cpp.5DBE48AB22A3742A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/mainwindow.h.2DEFA841ACD26463.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/map.67F74A10898EA76A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/mbstate_t.h.F9237FB65FF84D5A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/memory.DEB7D2B4EBB93631.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/memory_resource.h.8CBC2A2935956F47.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/memoryfwd.h.8339F1696DAE3C08.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/move.h.82CE505FF4CFACB8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/nested_exception.h.5EE3E7707B4F93EB.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/new.41D56A2D69E57DED.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/new_allocator.h.FD7B7B64B2A2207B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/node_handle.h.F46F9F3F43861006.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/numeric.F93D8B803F42F31D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/numeric_traits.h.8FEF7D9B8E9913D8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/os_defines.h.5BE086DD68F6A410.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/ostream_insert.h.D2F22116BE7D73E6.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/parse_numbers.h.EC5583E0556FCEF1.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/posix1_lim.h.D94E4687FC9359FF.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/posix2_lim.h.430DA38A1F301F29.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/postypes.h.BE1513ED32E6A399.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/predefined_ops.h.B15CDC54361DCC11.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/pstl_config.h.78EC065511725BA3.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/pthread.h.022320E0CE01A46D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/pthread_stack_min-dynamic.h.6F432801F0DF58B7.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes-arch.h.9E138C411BE448A0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes.h.BAA8217B62BB6E86.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/ptr_traits.h.BC3863E4C7FECDA0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qalgorithms.h.FD2ECFF5676E6790.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qapplication.h.A93E4553FB9CB7A2.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qarraydata.h.59BE31F3BBA8ED3E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qatomic.h.F27F4B16AB53D9F8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qatomic_cxx11.h.69F2114361242273.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qbasicatomic.h.A2BFD15B643C1404.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qbrush.h.D44E532BF6C7C41E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qbytearray.h.3E258E5BF8C780EA.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qbytearraylist.h.E2E8090DE1F836AD.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qchar.h.AA0A3CD3BD472DA0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qcolor.h.5684E01578882E86.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qcompilerdetection.h.7273FAC81D36B620.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qconfig.h.F68B1AFB5E4EF498.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qcontainerfwd.h.A8D45E2A7296D1C8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qcontainertools_impl.h.7644E4C51B877567.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication.h.0A5B8B7796FFF62E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qcoreevent.h.F3CEEB53B346C550.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qcursor.h.69E8ABF61EB150EC.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qdatastream.h.911D7CBB33217000.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qeventloop.h.634AE2F88E9E40CC.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qflags.h.759D8986082A8255.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qfont.h.A1BC5EA710C0475E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qfontinfo.h.2B115D24EC8E4A62.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qfontmetrics.h.1E754D652EDBD45C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qgenericatomic.h.D2595E9059CE3E6F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qglobal.h.80C5986D0C867ACE.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qglobalstatic.h.B90F9758F0EF15A9.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication.h.B71C26C78EAD409D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qhash.h.C345BB5A3DCF91DD.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qhashfunctions.h.7524BE336D4E70AF.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qicon.h.F590370864B9ACC9.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qimage.h.B98B60217EC4C94F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qinputmethod.h.62638013DB836F5C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qiodevice.h.86919C8F00908C87.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qiterator.h.A52C38FD59FD21C6.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qkeysequence.h.EC0D1C6B79C0D9AF.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qline.h.08A4D350D9C9644B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qlist.h.A54757BEE4315CE6.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qlocale.h.7E7DB33F1A299A16.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qlogging.h.88C32C1FE85F3443.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qmainwindow.h.2825B14DFE1FF1B4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qmap.h.8CA468BD1FBCE665.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qmargins.h.C0D077F7860E1277.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qmatrix.h.00820805EF576E4B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qmetatype.h.541E34D6E6760512.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qnamespace.h.EC3FC28536503AF1.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qnumeric.h.A66D4612F55B13BE.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qobject.h.8D479A7B3FDCD700.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qobject_impl.h.310F998ABFD21C29.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.598B10433A0B063A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.A64CF055117FDFF7.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs_impl.h.7990AFD078F8EA35.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qpaintdevice.h.4748152C3010F1F9.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qpair.h.9DEE0C3D7A14D2D0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qpalette.h.4842B06684DDBDAE.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qpixelformat.h.620C90AEA27BFC2A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qpixmap.h.D73E0EAB31C7D791.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qpoint.h.A7DD7B4CA031A3A7.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qpolygon.h.4000A0F75B81224E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qprocessordetection.h.F5198DD5442AFC6E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qrect.h.F6CF1537A0B18D4C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qrefcount.h.6BCA9FE7BAF3DF25.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qregexp.h.8088EF7E18743A13.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qregion.h.56C430EE51273A95.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qrgb.h.2B6D1755758FF0DF.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qrgba64.h.A8C3238E8B988F3B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qscopedpointer.h.447CA7EB36AE21C6.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qshareddata.h.1613C0F5A4F18669.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer.h.9FB2460B773F76C5.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer_impl.h.901DC4E517036607.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qsize.h.BEC23C243EFEF7A4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qsizepolicy.h.118596B94F6E5633.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qstring.h.D18E3F7143B0C176.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qstringalgorithms.h.BCB989669B8CD32D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qstringlist.h.B03A2F9985D050E5.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qstringliteral.h.0A066A3902B9CE30.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qstringmatcher.h.7D870B6147C84076.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qstringview.h.A67B8B8FF41BFF55.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qsysinfo.h.8EF4D5AF4D751B51.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qsystemdetection.h.8329D2CD97522D7C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qtabwidget.h.C4E9E0C72F6941B1.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qtcore-config.h.0C11AA7F7C9F0EA4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qtgui-config.h.0898F0E1544AC047.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qtguiglobal.h.80A0DFCC7763ABCB.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qtransform.h.97E922D9DE075E31.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qtranslator.h.E43F40A38E0AFDC4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qtwidgets-config.h.3C31FF7C5B82440C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsglobal.h.0D7FCF3A707EDF44.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qtypeinfo.h.5160790443A251D4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qvariant.h.4C476E0F61671237.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qvarlengtharray.h.7FE8B531C3A3B76F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qvector.h.D123A02691F2B7AD.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qversiontagging.h.3C43080618F516BF.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qwidget.h.5A43191B86718350.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/qwindowdefs.h.434E87C4F63B3C91.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/range_access.h.F2D342D0170A00E0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/ratio.637BCEE78C1EAF1F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/refwrap.h.F7E25ED78261BCB2.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/requires_hosted.h.26268E021F0ECE3C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/sched.h.A585A48500495348.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/sched.h.E8530EF262253892.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/select.h.BA57472D13519767.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/select.h.E19325D0BE3592A0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/setjmp.h.71DEFB3DCC800794.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr.h.58B2A3F1F22B1E10.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_atomic.h.D4122DD7C624F18E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_base.h.BE69034022EA8FA4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/sigset_t.h.32273C537A103809.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/single_threaded.h.918E7314A6EC8DC0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/std_abs.h.B5BC80B73AA8AA04.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/std_function.h.1DBFFD209E231917.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdarg.h.32EA7B95DAFCCF99.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdc-predef.h.9EA93D70716BF84B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.B10142B5B6E10391.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdexcept.FC9481857B4FA9B4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdint-intn.h.EE0939E700184847.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdint-least.h.A0CB5BC401DAC650.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdint-uintn.h.B3EA113168048B57.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.08597F86630FDE5E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.22B451C129B23D79.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdio.h.6919C07CB89D47AD.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdio_lim.h.09E79B5FC5C8DF86.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdlib-float.h.126E8959FAE2A511.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.42D90B865E21AB50.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.61AA7B9EED10C430.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_algo.h.336B2A99E112B831.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_algobase.h.555E5AB59D1CE434.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_bvector.h.8AE3CEBB0EAAE7AC.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_construct.h.675F3C756D2CDDFB.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_function.h.4312324AADC9200E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_heap.h.A0022ED15B79087D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator.h.70D88ADB523A155E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_funcs.h.0D39D2E36115557E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_types.h.1C2D9B2B05C1363B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_list.h.063E636C37F12734.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_map.h.EC07165BB825159E.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_multimap.h.5B0E5766E75F4152.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_numeric.h.936BC0F7F7FAE23C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_pair.h.33E007C18AD1880F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_raw_storage_iter.h.E907E48D11449F0C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_relops.h.8CD880CC32BA3E47.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_tempbuf.h.1CFD178B11157DBE.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_tree.h.C190197022C6FA1F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_uninitialized.h.54EDC68402026771.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stl_vector.h.5BE0DC1E083D4239.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stream_iterator.h.61B56BA0B3239EDE.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/streambuf.7FD2D3A2B827E078.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/streambuf.tcc.FB7963A391C77967.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/streambuf_iterator.h.2D64BA51BC9EC9AD.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/string.7B4FE7410F5C09C9.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/string.h.979B97B48AB27554.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/string_conversions.h.FEDA0A74BBD67E42.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/string_view.808DF2D0BB7723EB.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/string_view.tcc.3D79C5B861AFBD05.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stringfwd.h.557FE983BB1E2646.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/strings.h.9EB46A34EB89BB5D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/struct_FILE.h.2B6C435DE91D3DF8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/struct___jmp_buf_tag.h.C41AC0386D4A06C8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/struct_itimerspec.h.7F2AA6FE7224B30F.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/struct_mutex.h.A62EF32C01DB3505.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/struct_rwlock.h.76DF445C3AA414C9.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/struct_sched_param.h.B3F662015F7067C8.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/struct_timespec.h.0E09B6677A8D6A08.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/struct_timeval.h.4A17C4CCB9EE5883.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/struct_tm.h.472DDF26D5924DB0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stubs-64.h.C743FD695F310B00.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/stubs.h.07D09A29AEBA877C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/system_error.8A12E1E8FFB1D44A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/thread-shared-types.h.D988ADBA7666A8DD.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/time.h.E3714B647728C2FE.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/time.h.EDC06F0AFB6EC7EC.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/time64.h.1807D6F5124100A2.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/time_t.h.CAA645D29A7A0EF9.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/timer_t.h.3EFB88CBA2B5B801.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/timesize.h.44719E86E09400E4.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/timex.h.F2D36E17192C32F0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/tuple.778CE823941F84F0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/type_traits.DE435E04D8184E0C.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/type_traits.h.833B6807C34CC271.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/typeinfo.0065C4A406A05D71.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5A59583DBE28918.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5E7FE6DA0F78AF5.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/typesizes.h.A6E116B64E63B90B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/uintn-identity.h.CB86545C6FF94BB3.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/uio_lim.h.DF584C6AE54BEA07.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/uniform_int_dist.h.C54B19F2B43B693B.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/unique_ptr.h.A3AB02F93B77F5A0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.CA82C61ED27DA8D6.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.h.917859E405C5B5EA.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator.h.258C17386C08195D.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator_args.h.DD2424DE20F3F1C7.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/utility.5D04E6A553B4780A.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/utility.h.15845B2F303871C2.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/variant.0361674085D4F5FD.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/vector.04C1B55C46383484.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/vector.tcc.9925CCCCF876B8E0.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/waitflags.h.8046C5530CD87302.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/waitstatus.h.D7C4F06852D51050.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.27C0562D93BBAA12.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.83BD995621576773.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/wint_t.h.DAC5928CF0BA7895.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/wordsize.h.23D8030BEC81E6F1.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/xopen_lim.h.E4E4BC8C11167D14.idx create mode 100644 untitled/build/Desktop-Debug/.qtc_clangd/compile_commands.json create mode 100644 untitled/build/Desktop-Debug/qmake_qmake_qm_files.qrc create mode 100644 untitled/main.cpp create mode 100644 untitled/mainwindow.cpp create mode 100644 untitled/mainwindow.h create mode 100644 untitled/mainwindow.ui create mode 100644 untitled/mainwindow_ui.py create mode 100644 untitled/untitled.pro create mode 100644 untitled/untitled_en_US.ts create mode 100644 vaapitest.py diff --git a/GUI_16_10_staticWorkflow_Multithreading.py b/GUI_16_10_staticWorkflow_Multithreading.py new file mode 100644 index 0000000..699ba65 --- /dev/null +++ b/GUI_16_10_staticWorkflow_Multithreading.py @@ -0,0 +1,941 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'test.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +########## beim Static workflow funktionieren die Threads ab dem zweiten nicht mehr + +#from PyQt5 import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QProgressBar +from PyQt5 import QtCore, QtGui, QtWidgets +from PyQt5.QtWidgets import QApplication, QComboBox +from PyQt5.QtCore import QTimer, QThread, pyqtSignal, QObject, Qt +from PyQt5.QtGui import QColor + +import serial +import binascii +import math +import mariadb +import time +import threading + + +db_config = { + 'user': 'dbUser', + 'password': 'dbPassword', + 'host': 'localhost', + 'database': 'projectGeislinger', + 'port': 3306 # Standard port for MariaDB +} + +# Establishing the connection +conn = mariadb.connect(**db_config) +# Create a cursor to execute queries +cursor = conn.cursor() + +# Konfiguration der seriellen Schnittstelle +ser = serial.Serial('/dev/ttyUSB0', 9600) +#ser = serial.Serial('/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0', 9600) #dadurch garantiert immer die gleiche Schnittstelle verwendet +# und nicht die Schnittstelle, welche die Bezeichnung ttyUSB0 verwendet (welche sich ändern könnte) +# um die ID der USB-Schnittstelle heraus zu finden im Terminal folgendes eingeben: ls -l /dev/serial/by-id/ + + +waageEingeschwungen = False + + +def wahrscheinlichkeitsDichte(x,mue, var): + # in der Funktion wird der Wahrscheinlichkeitsdichtenwert der Variable x für eine bestimmte Normalverteilung berechnet + standardabweichung = var**0.5 + + result = 1/(standardabweichung * (2*math.pi)**0.5 ) * math.exp(-0.5 * ((x-mue)/standardabweichung)**2) + + return result + +def calcWahrscheinlichkeitFromDichte(x,mue, var): + # in der Funktion wird die Wahrscheinlichkeit via der Wahrscheinlichkeitsdichte berechnet, indem das Verhältnis aus der dem Bauteil zugehörigen Wahrscheinlichkeitsdichte zu der maximalen Wahrscheinlichkeitsdichte berechnet wird + p1 = wahrscheinlichkeitsDichte(x,mue, var) + p_max = wahrscheinlichkeitsDichte(mue,mue, var) + + return p1/p_max + + + +#class Worker(QThread): +class Worker(QObject): + #progress = pyqtSignal(int) + objectDetectionStartSignal = pyqtSignal(str) + objectDetectionFinishedSignal = pyqtSignal(int, object) + + checkWaageStartSignal = pyqtSignal(int, int, str) + checkWaageUpdateSignal = pyqtSignal(int, int) + checkWaageFinishedSignal = pyqtSignal(int) + + waageStoppedSignal = pyqtSignal(int) + stopLoopSignal = pyqtSignal(bool) #das Signal wird verwendet um direkt den stopLoop-Wert zu ändern (also kein Funktionsaufruf) + + stopLoop = False + btTypeIsSet = False + correctBtNr = False + + + def __init__(self): + super(Worker, self).__init__() + stopLoop = False + + + def getDataOfArticleType(self, allArticles, articleType): + # die Funktion geht die Liste mit allen Artikeln durch und gibt jenen Eintrag, welcher mit dem "articleType" übereinstimmt zurück + for i in allArticles: + if i[1] == articleType: + return i + + return -1 + + def waageNichtEingeschwungenOutput(self): + print("Die Waage ist noch nicht eingeschwungen - Ergebnisse sind dadurch noch fehlerhaft.") + + def readWaage(self): + # in folgender Funktion wird die Waage ausgelesen + + #print("connection is open: ", ser.is_open) #Debuggingausgabe + #print("port to which it is connected: ", ser.portstr) #Debuggingausgabe + + + if ser.is_open == False: + ser.open() + + + #an die Waage den Befehl senden, dass sie ausgelesen werden soll + ser.write(b'getWeight\n') + #ser.write(b'tare\n') + serialString = ser.readline().decode('utf-8').rstrip() #Auslesen des Serial-Strings/der Messung der Waage + + # wenn am Ende des Strings kg steht, dann ist die Waage eingeschwungen - das wird hiermit überprüft + lenString = len(serialString)-1 + if serialString[lenString] == "g" and serialString[lenString-1] == "k": + #print("ist eingeschwungen") #Debuggingausgabe + waageEingeschwungen = True + else: + print("die Waage ist noch nicht eingeschwungen") + waageEingeschwungen = False + + #aus dem String werden alle Zeichen, welche nicht zur Darstellung der Zahl benötigt werden entfernt + intString = "" + for i in serialString: + if i=="-" or i=="0" or i=="." or i=="1" or i=="2" or i=="3" or i=="4" or i=="5" or i=="6" or i=="7" or i=="8" or i=="9": + intString = intString + i + print("Wert, welcher von der Waage ausgelesen wurde: " + intString + "kg") + ## Waage auslesen - ENDE + + ser.close() + #print("connection is open: ", ser.is_open) #Debuggingausgabe + + return waageEingeschwungen, intString + + def objectTypeDetectionThread(self, auftragsnummer): + # in dieser Funktion wird der Typ des Bauteils automatisch erkannt + + #print("objectTypeDetectionThread - Running in thread:", threading.current_thread().name) #Debuggausgabe + + # Parameterdefinition + propDensVect = [] + + self.btTypeIsSet = False + + while(self.btTypeIsSet == False and self.stopLoop == False): + + # Auslesen der Waage + waageEingeschwungen, intString = self.readWaage() + if waageEingeschwungen == False: + self.waageNichtEingeschwungenOutput() + else: + + # Datenbankabfrage + sql_query = "SELECT Auftraege.id, EinzelteilID, Auftragsnummer, Anzahl, Einzelteile.id, Bezeichnung, CAST(projectGeislinger.Einzelteile.GewichtMittelwert AS CHAR), CAST(projectGeislinger.Einzelteile.GewichtVarianz AS CHAR) FROM projectGeislinger.Auftraege, projectGeislinger.Einzelteile where projectGeislinger.Auftraege.EinzelteilID = projectGeislinger.Einzelteile.id AND projectGeislinger.Auftraege.Auftragsnummer = " + auftragsnummer + cursor.execute(sql_query) + auftragEinzelteilDaten = cursor.fetchall() + + ''' + # Display data #Debugausgabe + print("Ausgabe der Auftragsdetails des obigen Auftrags, inklusive Einzelteildetails:") + for row in auftragEinzelteilDaten: + print(row) + ''' + + # in der Folge werden alle Wahrscheinlichkeitsdichten der Auftragsbauteile berechnet und in dem Vektor gesammelt + for row in auftragEinzelteilDaten: + propDensVect.append([wahrscheinlichkeitsDichte(float(intString),float(row[6]), float(row[7])), row[1], row[5]]) + + # Jenen Eintrag des propDensVect raussuchen, welcher die größte Wahrscheinlichkeitsdichte beinhaltet + maxpropDens = 0 + einzelteilID = 0 + rowData = None + for row in propDensVect: + if row[0] > maxpropDens: + maxpropDens = row[0] + einzelteilID = row[1] + rowData = row + + # überprüfen, ob das aufliegende Bauteil in der Auftragstabelle vorhanden ist + if(einzelteilID == 0): + print("Es wurde kein Bauteil aus der Auftragsliste (Tabelle) erkannt.") + else: + print("Bei dem Bauteil" , einzelteilID , "wurde die höchste Wahrscheinlichkeitsdichte berechnet.") + + # Wahrscheinlichkeit berechnen, dass das angegebene Bauteil auch wirklich diesem entspricht + prop = 0 + for row in auftragEinzelteilDaten: + if row[1] == einzelteilID: + prop = calcWahrscheinlichkeitFromDichte(float(intString),float(row[6]), float(row[7])) + break + print("Die Wahrscheinlichkeit, dass es das Bauteil ist, beträgt: ", prop) + + # den Bool auf true setzen, damit die Schleife beendet wird - dieser wird auf True gesetzt, wenn ein Bauteiltyp erkannt wird + self.btTypeIsSet = True + + if(self.stopLoop == False): + # ein Signal zurück an den MainThreat senden, mit den Infos/Ergebnissen, der Typenbestimmung + self.objectDetectionFinishedSignal.emit(einzelteilID, rowData) + else: + self.waageStoppedSignal.emit(einzelteilID) + + def checkWaageThread(self, einzelteilID, teileZuViel, auftragsnummer): + + self.correctBtNr = False + prevAnzahl = 0 + anzahl = 0 + einzelteilID = einzelteilID + + while (self.correctBtNr == False and self.stopLoop == False): + + #überprüfen, ob die Waage eingeschwungen ist (und damit korrekte Ergebnisse liefert) + waageEingeschwungen, intString = self.readWaage() + if waageEingeschwungen == False: + self.waageNichtEingeschwungenOutput() + else: + + # Datenbankabfrage - holen der Auftrags- und Bauteilinfos + sql_query = "SELECT Auftraege.id, EinzelteilID, Auftragsnummer, Anzahl, Einzelteile.id, Bezeichnung, CAST(projectGeislinger.Einzelteile.GewichtMittelwert AS CHAR), CAST(projectGeislinger.Einzelteile.GewichtVarianz AS CHAR) FROM projectGeislinger.Auftraege, projectGeislinger.Einzelteile where projectGeislinger.Auftraege.EinzelteilID = projectGeislinger.Einzelteile.id AND projectGeislinger.Auftraege.Auftragsnummer = " + auftragsnummer + cursor.execute(sql_query) + auftragDaten = cursor.fetchall() + + ''' + # Display data - zum Debuggen + print("Ausgabe der Auftragsdetails:") + print("id|EinzelteilID|Auftragsnummer|Anzahl") + for row in auftragDaten: + print(row) + ''' + + #auslesen, wie viele Bauteile des Types laut Auftrag vorhanden sein sollen + anzBauteile_soll = 0 + idVorhanden = False + + for row in auftragDaten: + if row[1] == einzelteilID: + anzBauteile_soll = row[3] + idVorhanden = True + + if(idVorhanden == False): + print("Die gewählte Pos.Nr ist nicht in der Auftragsliste (Tabelle) vorhanden.") + return + + # Berechnen der Wahrscheinlichkeitsdichten - der Betrag aller Wahrscheinlichkeitsdichten werden im propDensVect gespeichert + propDensVect = [] + articleData = self.getDataOfArticleType(auftragDaten, einzelteilID) + for i in range(1,anzBauteile_soll+teileZuViel+1): + # Mathematische Sätze, auf welchen die Berechnung basiert: + # seien X1,..., Xn unabhängige Zufallsvariablen die N(mue_i, sigma_i^2) verteilt sind, dann ist X = X1+...+Xn - N(mue, sigma^2) verteilt mit mue=mue1+...+mue_n, sigma^2 = sigma_1^2+...+sigma_n^2 + mueGes = float(articleData[6])*i # Berechnen des äquivalenten Mittelwert + varGes = float(articleData[7])*i # Berechnen der äquivalenten Varianz + propDensVect.append([wahrscheinlichkeitsDichte(float(intString),mueGes, varGes), i]) + + # durch den propDensVect iterieren und jenen Eintrag mit der höchsten Wahrscheinlichkeitsdichte raussuchen + maxpropDens = 0 + for row in propDensVect: + if row[0] > maxpropDens: + maxpropDens = row[0] + anzahl = row[1] + + # damit nur etwas gemacht wird (zb ein Updatesignal an den Hauptthread zurücksenden), wenn sich die berechnete Anzahl ändert + if prevAnzahl != anzahl: + prevAnzahl = anzahl + + # Die Wahrscheinlichkeit berechnen, dass das obige Ergebnis auch dem Bauteil entspricht + if anzahl > 0: + for row in auftragDaten: + if row[1] == einzelteilID: + prop = calcWahrscheinlichkeitFromDichte(float(intString),float(row[6])*anzahl, float(row[7])*anzahl) + break + print("Die Wahrscheinlichkeit, dass es das Bauteil ist, beträgt: ", prop) + + # wenn genug Bauteile vorhanden sind, dann soll die Schleife beendet werden + if (anzahl == anzBauteile_soll): + self.correctBtNr = True + + # Konsolenausgabe + if maxpropDens > 0: + print("Bei der Anzahl" , anzahl , "des Bauteiltypes", einzelteilID, ",wurde die höchste Wahrscheinlichkeitsdichte berechnet.") + self.checkWaageUpdateSignal.emit(einzelteilID, anzahl) + + else: + print("Von der ausgewählten Bauteiltype liegt die berechnete Wahrscheinlichkeit bei 0, dass zwischen 0 und", anzBauteile_soll+teileZuViel, "Bauteilen auf der Waage liegen.") + print("Falls die korrekte Anzhl an Bauteilen auf der Waage liegt, könnte der Fehler in einer falschen Kalibrierung der Waage liegen (TARE).") + + if(self.stopLoop == False): + self.checkWaageFinishedSignal.emit(einzelteilID) + else: + self.waageStoppedSignal.emit(einzelteilID) + + + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + self.auftragsnummer = "" + self.teileZuViel = 100 # Anzahl an Bauteilen, welche zu viel drinnen sein können - der Parameter kann selbst gesetzt werden ##### + self.correctBtNr = False + self.btTypeIsSet = False + + + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1400, 675) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.btn1 = QtWidgets.QPushButton(self.centralwidget) + self.btn1.setGeometry(QtCore.QRect(700, 45, 111, 25)) + self.btn1.setObjectName("btn1") + # Tabelle zur Darstellung der Auftragsdetails + self.AuftragsdetailsTable = QtWidgets.QTableWidget(self.centralwidget) + self.AuftragsdetailsTable.setGeometry(QtCore.QRect(10, 100, 661, 400)) + self.AuftragsdetailsTable.setObjectName("AuftragsdetailsTable") + self.AuftragsdetailsTable.setColumnCount(7) + self.AuftragsdetailsTable.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(3, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(5, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(4, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(6, item) + + # Tabelle zur Darstellung der Arbeitsschritte + self.ArbeitsschrittTable = QtWidgets.QTableWidget(self.centralwidget) + self.ArbeitsschrittTable.setGeometry(QtCore.QRect(1000, 50, 395, 400)) + self.ArbeitsschrittTable.setObjectName("AuftragsdetailsTable") + self.ArbeitsschrittTable.setColumnCount(2) + self.ArbeitsschrittTable.setRowCount(4) + self.ArbeitsschrittTable.setColumnWidth(0, 100) + self.ArbeitsschrittTable.setColumnWidth(1, 280) + self.ArbeitsschrittTable.setRowHeight(0, 80) + self.ArbeitsschrittTable.setRowHeight(1, 180) + self.ArbeitsschrittTable.setRowHeight(2, 50) + self.ArbeitsschrittTable.setRowHeight(3, 50) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.ArbeitsschrittTable.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.ArbeitsschrittTable.setHorizontalHeaderItem(1, item) + + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(500, 20, 121, 17)) + self.label.setObjectName("label") + self.textEdit = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit.setGeometry(QtCore.QRect(450, 40, 221, 31)) + self.textEdit.setObjectName("textEdit") + self.bauteilTypBtn = QtWidgets.QPushButton(self.centralwidget) + self.bauteilTypBtn.setGeometry(QtCore.QRect(700, 100, 161, 25)) + self.bauteilTypBtn.setObjectName("bauteilTypBtn") + self.checkWaageBtn = QtWidgets.QPushButton(self.centralwidget) + self.checkWaageBtn.setGeometry(QtCore.QRect(700, 150, 161, 25)) + self.checkWaageBtn.setObjectName("checkWaageBtn") + self.stopLoopBtn = QtWidgets.QPushButton(self.centralwidget) + self.stopLoopBtn.setGeometry(QtCore.QRect(700, 350, 161, 25)) + self.stopLoopBtn.setObjectName("stopLoopBtn") + self.waageTareBtn = QtWidgets.QPushButton(self.centralwidget) + self.waageTareBtn.setGeometry(QtCore.QRect(700, 400, 161, 25)) + self.waageTareBtn.setObjectName("waageTareBtn") + self.bauteiltypTextbox = QtWidgets.QTextEdit(self.centralwidget) + self.bauteiltypTextbox.setGeometry(QtCore.QRect(700, 290, 221, 31)) + self.bauteiltypTextbox.setObjectName("bauteiltypTextbox") + self.BezeichnungLabel = QtWidgets.QLabel(self.centralwidget) + self.BezeichnungLabel.setGeometry(QtCore.QRect(700, 270, 181, 20)) + self.BezeichnungLabel.setObjectName("BezeichnungLabel") + self.PosNrLabel = QtWidgets.QLabel(self.centralwidget) + self.PosNrLabel.setGeometry(QtCore.QRect(700, 200, 67, 17)) + self.PosNrLabel.setObjectName("PosNrLabel") + self.PosNrTxtFeld = QtWidgets.QTextEdit(self.centralwidget) + self.PosNrTxtFeld.setGeometry(QtCore.QRect(700, 220, 191, 31)) + self.PosNrTxtFeld.setObjectName("PosNrTxtFeld") + self.teileZuVielLabel = QtWidgets.QLabel(self.centralwidget) + self.teileZuVielLabel.setGeometry(QtCore.QRect(1000, 560, 350, 17)) + self.teileZuVielLabel.setObjectName("teileZuVielLabel") + self.teileZuVielTxtFeld = QtWidgets.QTextEdit(self.centralwidget) + self.teileZuVielTxtFeld.setGeometry(QtCore.QRect(1000, 580, 191, 31)) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1090, 22)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + self.checkBox = QtWidgets.QCheckBox(self.centralwidget) + self.checkBox.setGeometry(QtCore.QRect(1000, 480, 151, 23)) + self.checkBox.setObjectName("checkBox") + self.checkBoxAutoTare = QtWidgets.QCheckBox(self.centralwidget) + self.checkBoxAutoTare.setGeometry(QtCore.QRect(1000, 520, 180, 23)) + self.checkBoxAutoTare.setObjectName("checkBoxAutoTare") + + #self.myTestLambda = lambda: self.worker.checkWaageStartSignal.emit(einzelteilID, self.teileZuViel, self.auftragsnummer) + + ''' + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setVerticalHeaderItem(0,item) + ''' + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.btn1.setText(_translate("MainWindow", "load Auftrag")) + self.btn1.clicked.connect(self.auftragsBtnClicked) + + # Tabelle zur Darstellung der Auftragsdetails + item = self.AuftragsdetailsTable.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "Pos.-Nr")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Matnr mit hoechster Version")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Bezeichnung + Werkstoff")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Soll-Menge")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(4) + item.setText(_translate("MainWindow", "Ist-Menge")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(5) + item.setText(_translate("MainWindow", "Lgort")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(6) + item.setText(_translate("MainWindow", "set Farbe")) + + # Tabelle zur Darstellung der Arbeitsschritte + item = self.ArbeitsschrittTable.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "Arbeitsschritt")) + item = self.ArbeitsschrittTable.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "ToDo:")) + + # Befüllen der Arbeisschritttabelle mit Text + #item = self.ArbeitsschrittTable. + # Ein neues QTableWidgetItem erstellen und den Text setzen + item = QtWidgets.QTableWidgetItem("Auftrag laden") + self.ArbeitsschrittTable.setItem(0, 0, item) + item = QtWidgets.QTableWidgetItem("--> Auftragsnummer eingeben \n--> \"load Auftrag\" Buttonclick") + self.ArbeitsschrittTable.setItem(0, 1, item) + item = QtWidgets.QTableWidgetItem("Bauteiltyp erkennen") + self.ArbeitsschrittTable.setItem(1, 0, item) + item = QtWidgets.QTableWidgetItem("visuell: \n--> ein Bauteil in die Kamera halten\n\nWaage: \n--> ein Bauteil auf die Waage legen\n--> \"Bauteiltyp erkennen\" Buttonclick\n\nmanuell:\n--> Bauteiltypen auswählen\n-->\"ckeck Waage\" Button click") + self.ArbeitsschrittTable.setItem(1, 1, item) + item = QtWidgets.QTableWidgetItem("Bauteilanzahl erkennen") + self.ArbeitsschrittTable.setItem(2, 0, item) + item = QtWidgets.QTableWidgetItem("--> Bauteile auflegen") + self.ArbeitsschrittTable.setItem(2, 1, item) + item = QtWidgets.QTableWidgetItem("Prozess beendet") + self.ArbeitsschrittTable.setItem(3, 0, item) + self.ArbeitsschrittTable.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers) + + #self.ArbeitsschrittTable.item(0,0).setText("test") + + #einzelteilID = int(self.AuftragsdetailsTable.item(i,0).text()) + #self.PosNrTxtFeld.setText(str(self.AuftragsdetailsTable.item(i,0).text())) + #self.bauteiltypTextbox.setText(str(self.AuftragsdetailsTable.item(i,2).text())) + + self.label.setText(_translate("MainWindow", "Auftragsnummer:")) + self.bauteilTypBtn.setText(_translate("MainWindow", "Bauteiltyp erkennen")) + self.bauteilTypBtn.clicked.connect(self.objectTypeDetection) + self.AuftragsdetailsTable.cellClicked.connect(self.onTableCellClick) + #self.AuftragsdetailsTable.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers) + #item = self.AuftragsdetailsTable.verticalHeaderItem(0) + #item.setText(_translate("MainWindow", "test")) + self.BezeichnungLabel.setText(_translate("MainWindow", "Bezeichnung")) + self.PosNrLabel.setText(_translate("MainWindow", "Pos.-Nr:")) + self.teileZuVielLabel.setText(_translate("MainWindow", "Zu prüfende Teileanzahl über Auftragsanzahl:")) + self.teileZuVielTxtFeld.setText(str(self.teileZuViel)) + self.checkWaageBtn.setText(_translate("MainWindow", "check Waage")) + self.checkWaageBtn.clicked.connect(self.checkWaage) + self.stopLoopBtn.setText(_translate("MainWindow", "stop loop")) + self.stopLoopBtn.clicked.connect(self.stopLoopClicked) + self.waageTareBtn.setText(_translate("MainWindow", "Waage tarieren")) + self.waageTareBtn.clicked.connect(self.onTareClick) + self.checkBox.setText(_translate("MainWindow", "static workflow")) + self.checkBox.clicked.connect(self.onCheckboxCheck) + self.checkBoxAutoTare.setText(_translate("MainWindow", "automatisches Tarieren")) + self.checkBoxAutoTare.clicked.connect(self.autoTareCheck) + + self.setRowColor(self.ArbeitsschrittTable, 0,255,165,0) # zum setzen der ersten Spalte der Arbeitsschrittetabelle auf orange + self.checkBoxAutoTare.setCheckState(Qt.Checked) + self.checkBox.setCheckState(Qt.Unchecked) + + + def mousePressEvent(self, event): + print("Das MainWindow wurde angeklickt.") + self.setFocus() + super().mousePressEvent(event) + + + def onTareClick(self): + #Tarieren der Waage + if ser.is_open == False: + ser.open() + ser.write(b'tare\n') + ser.close() + + + def onCheckboxCheck(self): + if self.checkBox.isChecked() == True: + print("static workflow activated") + else: + print("static workflow deactivated") + + def autoTareCheck(self): + if self.checkBoxAutoTare.isChecked() == True: + print("automatisches Tarieren ist aktiviert") + else: + print("automatisches Tarieren ist deaktiviert") + + def getRowNr(self, posNr): + for i in range(0,self.AuftragsdetailsTable.rowCount()): + if(self.AuftragsdetailsTable.item(i,0).text() == str(posNr)): + return i +# brauche ich hier vermutlich nicht mehr - ist in den Worker Thread kopiert worden + def waageNichtEingeschwungenOutput(self): + print("Die Waage ist noch nicht eingeschwungen - Ergebnisse sind dadurch noch fehlerhaft.") + + def onTableCellClick(self): + self.PosNrTxtFeld.setText(self.AuftragsdetailsTable.item(self.AuftragsdetailsTable.currentRow(),0).text()) + self.bauteiltypTextbox.setText(self.AuftragsdetailsTable.item(self.AuftragsdetailsTable.currentRow(),2).text()) + + def setAuftragsnummer(self): + self.auftragsnummer = self.textEdit.toPlainText() + if(not self.auftragsnummer): + self.auftragsnummer = "" + self.textEdit.setText("") + + def checkAuftragsnummerEmpty(self): + if self.auftragsnummer == "": + print("Das Auftragsnummernfeld ist leer.") + return True + else: + return False + + def checkPosNrEmpty(self): + if self.PosNrTxtFeld.toPlainText() == "": + return True + else: + return False + + +# eventuell benötigt man die Funktion hier nicht mehr, da sie zu den Threads kopiert wurde + def getDataOfArticleType(self, allArticles, articleType): + # die Funktion geht die Liste mit allen Artikeln durch und gibt jenen Eintrag, welcher mit dem "articleType" übereinstimmt zurück + for i in allArticles: + if i[1] == articleType: + return i + return -1 + + def updateGUI(self): + self.PosNrLabel.repaint() #GUI aktualisieren + QApplication.processEvents() #GUI aktualisieren + + + def setRowColor(self, tableObject, rowID,r,g,b): + for col in range(tableObject.columnCount()-1): + tableObject.item(rowID, col).setBackground(QtGui.QColor(r,g,b)) + ''' + die alte Version der Programmierung + tableObject.item(rowID, 0).setBackground(QtGui.QColor(r,g,b)) + tableObject.item(rowID, 1).setBackground(QtGui.QColor(r,g,b)) + tableObject.item(rowID, 2).setBackground(QtGui.QColor(r,g,b)) + tableObject.item(rowID, 3).setBackground(QtGui.QColor(r,g,b)) + tableObject.item(rowID, 4).setBackground(QtGui.QColor(r,g,b)) + tableObject.item(rowID, 5).setBackground(QtGui.QColor(r,g,b)) + ''' + +#wird hier vermutlich nicht mehr benötigt - wurde in die Workerklasse kopiert + def readWaage(self): + # in folgender Funktion wird die Waage ausgelesen + + #print("connection is open: ", ser.is_open) #Debuggingausgabe + #print("port to which it is connected: ", ser.portstr) #Debuggingausgabe + self.checkPosNrEmpty() + + if ser.is_open == False: + ser.open() + + + #an die Waage den Befehl senden, dass sie ausgelesen werden soll + ser.write(b'getWeight\n') + #ser.write(b'tare\n') + serialString = ser.readline().decode('utf-8').rstrip() #Auslesen des Serial-Strings/der Messung der Waage + + # wenn am Ende des Strings kg steht, dann ist die Waage eingeschwungen - das wird hiermit überprüft + lenString = len(serialString)-1 + if serialString[lenString] == "g" and serialString[lenString-1] == "k": + #print("ist eingeschwungen") #Debuggingausgabe + waageEingeschwungen = True + else: + print("die Waage ist noch nicht eingeschwungen") + waageEingeschwungen = False + + #aus dem String werden alle Zeichen, welche nicht zur Darstellung der Zahl benötigt werden entfernt + intString = "" + for i in serialString: + if i=="-" or i=="0" or i=="." or i=="1" or i=="2" or i=="3" or i=="4" or i=="5" or i=="6" or i=="7" or i=="8" or i=="9": + intString = intString + i + print("Wert, welcher von der Waage ausgelesen wurde: " + intString + "kg") + ## Waage auslesen - ENDE + + ser.close() + #print("connection is open: ", ser.is_open) #Debuggingausgabe + + return waageEingeschwungen, intString + + def auftragsBtnClicked(self): + databaseQueryWorking = False #wird für die Überprüfung, ob die Datenbankabfrage fehlerhaft ist, verwendet + auftragEinzelteilDaten = [] + + self.setAuftragsnummer() + if(not self.checkAuftragsnummerEmpty()): + + sql_query = "SELECT Auftraege.id, EinzelteilID, Auftragsnummer, Anzahl, Einzelteile.id, Bezeichnung, CAST(projectGeislinger.Einzelteile.GewichtMittelwert AS CHAR), CAST(projectGeislinger.Einzelteile.GewichtVarianz AS CHAR) FROM projectGeislinger.Auftraege, projectGeislinger.Einzelteile where projectGeislinger.Auftraege.EinzelteilID = projectGeislinger.Einzelteile.id AND projectGeislinger.Auftraege.Auftragsnummer = " + self.auftragsnummer + try: + cursor.execute(sql_query) + # Fetch results + auftragEinzelteilDaten = cursor.fetchall() + databaseQueryWorking = True + except: + print("Fehler in der Datenbankabfrage.") + + + + if databaseQueryWorking==True and len(auftragEinzelteilDaten)>0: + ''' + # Display data + print("Ausgabe der Auftragsdetails des obigen Auftrags, inklusive Einzelteildetails:") + for row in auftragEinzelteilDaten: + if str(row[2]) == self.auftragsnummer: + print("passt") + print(row) + ''' + + ### die Auftragsdaten in die Tabelle laden + self.AuftragsdetailsTable.setRowCount(len(auftragEinzelteilDaten)) + self.item = QtWidgets.QTableWidgetItem() + counter = 0 + for row in auftragEinzelteilDaten: + self.item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setItem(counter, 0, self.item) + self.item.setText(str(row[1])) + self.item.setFlags(self.item.flags() & ~QtCore.Qt.ItemIsEditable) + self.item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setItem(counter, 1, self.item) + self.item.setFlags(self.item.flags() & ~QtCore.Qt.ItemIsEditable) + self.item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setItem(counter, 2, self.item) + self.item.setText(str(row[5])) + self.item.setFlags(self.item.flags() & ~QtCore.Qt.ItemIsEditable) + self.item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setItem(counter, 3, self.item) + self.item.setText(str(row[3])) + self.item.setFlags(self.item.flags() & ~QtCore.Qt.ItemIsEditable) + self.item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setItem(counter, 4, self.item) + self.item.setText(str("0")) + self.item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setItem(counter, 5, self.item) + self.item.setFlags(self.item.flags() & ~QtCore.Qt.ItemIsEditable) + + # Dropdown für Farben in die 6. Spalte einfügen + #self.item = QtWidgets.QTableWidgetItem() + #self.AuftragsdetailsTable.setItem(counter, 6, self.item) + combo = QComboBox() + combo.addItems(["Farbe", "Weiß", "Orange", "Grün"]) + combo.currentIndexChanged.connect(lambda index, rowId =counter: self.change_row_color(rowId, index)) + self.AuftragsdetailsTable.setCellWidget(counter, 6, combo) + counter = counter +1 + + self.setRowColor(self.ArbeitsschrittTable, 0,0,255,0) #zum setzen der ersten Zeile der Auftragstabelle auf grün + self.setRowColor(self.ArbeitsschrittTable, 1,255,165,0) #zum setzen der zweiten Zeile der Auftragstabelle auf orange + self.setRowColor(self.ArbeitsschrittTable, 2,255,255,255) #zum setzen der dritten Zeile der Auftragstabelle auf weiß + self.setRowColor(self.ArbeitsschrittTable, 3,255,255,255) #zum setzen der vierten Zeile der Auftragstabelle auf weiß + + # setzen der beiden Felder auf einen leeren String, um Fehler zu Vermeiden, wenn ein neuer Auftrag geladen wird + self.bauteiltypTextbox.setText("") + self.PosNrTxtFeld.setText("") + + + elif(databaseQueryWorking==True and len(auftragEinzelteilDaten)==0): + print("Es wurde in der Datenbank kein Auftrag mit dieser Auftragsnummer gefunden.") + + def change_row_color(self, row, color_index): + if(color_index == 1): + self.setRowColor(self.AuftragsdetailsTable, row,255,255,255) + if(color_index == 2): + self.setRowColor(self.AuftragsdetailsTable, row,255,165,0) + if(color_index == 3): + self.setRowColor(self.AuftragsdetailsTable, row,0,255,0) + + def stopLoopClicked(self): + # damit wird beim Klick auf den Stopbutton der stopLoop-boolWert in der Workerklasse auf true gesetzt -> der Stop des Threads wird initiiert + if hasattr(self, 'objectDetectionWorker'): + self.objectDetectionWorker.stopLoopSignal.emit(True) + + if hasattr(self, 'checkWaageWorker'): + self.checkWaageWorker.stopLoopSignal.emit(True) + + def checkFinished(self): + #die Funktion geht alle Zeilen der Auftragsliste durch und schaut, ob die richtige Anzahl an Teilen vorhanden sind + for i in range(0,self.AuftragsdetailsTable.rowCount()): + if self.AuftragsdetailsTable.item(i,3).text() != self.AuftragsdetailsTable.item(i,4).text(): + return False + return True + + + def checkWaage(self): + #print("Running in thread:", threading.current_thread().name) # Debuggingausgabe + QApplication.processEvents() + + # die Loopvariable des Workers auf False setzten, damit die Schleife durchgelaufen wird (diese wird zum Abbruch der Schleife benötigt -> siehe stopLoop) + #self.checkWaageWorker.stopLoopSignal.emit(False) + + # überprüfen, ob der Auftrag geladen wurde + if(self.AuftragsdetailsTable.item(0,0) == None): + print("Der Auftrag muss zuerst geladen werden.") + return + + # überprüfen, ob ein Bauteiltyp gesetzt wurde + if(self.checkPosNrEmpty()==True and self.checkBox.isChecked() == False): + print("Das Pos.-Nr.-Feld ist leer.") + return + + # den GUI Wert von Textfeld TeileZuViel in die Variable schreiben + self.teileZuViel = int(float(self.teileZuVielTxtFeld.toPlainText())) + self.teileZuVielTxtFeld.setText(str(self.teileZuViel)) + + einzelteilID = -1 # Initialisieren der Variable mit einem Defaultwert, welcher nie eingenommen werden können sollte + if (self.checkBox.isChecked() == False): + #übernehmen der BauteilID aus dem Feld Pos.-Nr - wenn der Workflow dynamisch gewählt wurde + einzelteilID = int(self.PosNrTxtFeld.toPlainText()) + else: + # wenn der Workflow statisch gesetzt wurde, dann soll das erste Item aus der Auftragsliste geladen werden, von welchem noch nicht genug Bauteile auf der Waage liegen + for i in range(0,self.AuftragsdetailsTable.rowCount()): + if self.AuftragsdetailsTable.item(i,3).text() != self.AuftragsdetailsTable.item(i,4).text(): + einzelteilID = int(self.AuftragsdetailsTable.item(i,0).text()) + self.PosNrTxtFeld.setText(str(self.AuftragsdetailsTable.item(i,0).text())) + self.bauteiltypTextbox.setText(str(self.AuftragsdetailsTable.item(i,2).text())) + break + + if einzelteilID == -1: + # den Thread beenden + self.checkWaageThread.quit() + self.checkWaageThread.wait() + try: + self.checkWaageThread.started.disconnect() # Trenne das Signal, damit es beim nächsten Start keine Konflikte gibt + print("Der Thread wurde beendet.") + except: + print("Disconnecting the thread did not work.") + return + + + #zum setzen den Farbe der gesamten Reihe auf Orange + self.setRowColor(self.AuftragsdetailsTable, self.getRowNr(einzelteilID),255,165,0) + self.setRowColor(self.ArbeitsschrittTable, 1,0,255,0) # zum setzen der zweiten Spalte der Arbeitsschrittetabelle auf grün + self.setRowColor(self.ArbeitsschrittTable, 2,255,165,0) # zum setzen der dritten Spalte der Arbeitsschrittetabelle auf orange + + # den Thread starten, welcher die Bauteilanzahl überprüft + self.checkWaageWorker = Worker() + self.checkWaageThread = QThread() + + self.checkWaageWorker.moveToThread(self.checkWaageThread) + + self.checkWaageWorker.checkWaageStartSignal.connect(self.checkWaageWorker.checkWaageThread) + self.checkWaageWorker.checkWaageUpdateSignal.connect(self.checkWaageUpdate) + self.checkWaageWorker.checkWaageFinishedSignal.connect(self.checkWaageFinished) + self.checkWaageWorker.waageStoppedSignal.connect(self.threadStopped) + self.checkWaageWorker.stopLoopSignal.connect(lambda status: setattr(self.checkWaageWorker, 'stopLoop', status)) #wird fürs aktive Stoppen des Threads benötigt + + self.checkWaageThread.started.connect(lambda: self.checkWaageWorker.checkWaageStartSignal.emit(einzelteilID, self.teileZuViel, self.auftragsnummer)) + self.checkWaageThread.start() + + def checkWaageUpdate(self, einzelteilID, anzahl): + # die Funktion updated die (vom Thread) berechnete Bauteilanzahl in der GUI + self.AuftragsdetailsTable.item(self.getRowNr(einzelteilID), 4).setText(str(anzahl)) # in die Tabelle die Anzahl an berechneten Bauteilen reinschreiben + + def checkWaageFinished(self, einzelteilID): + self.setRowColor(self.AuftragsdetailsTable, self.getRowNr(einzelteilID),0,255,0) #zum setzen den Farbe der gesamten Reihe auf Grün + + if self.checkFinished(): # wenn alle Bauteile auf der Waage liegen, soll folgender Code ausgeführt werden + self.setRowColor(self.ArbeitsschrittTable, 2,0,255,0) # zum setzen der zweiten Spalte der Arbeitsschrittetabelle auf orange + self.setRowColor(self.ArbeitsschrittTable, 3,0,255,0) # zum setzen der dritten Spalte der Arbeitsschrittetabelle auf weiß + else: # wenn noch nicht alle Bauteile des Auftrags auf der Waage liegen, soll folgernder Code ausgeführt werden + self.setRowColor(self.ArbeitsschrittTable, 1,255,165,0) # zum setzen der zweiten Spalte der Arbeitsschrittetabelle auf orange + self.setRowColor(self.ArbeitsschrittTable, 2,255,255,255) # zum setzen der dritten Spalte der Arbeitsschrittetabelle auf weiß + if self.checkBoxAutoTare.isChecked(): + self.onTareClick() + + # den Thread beenden + self.checkWaageThread.quit() + self.checkWaageThread.wait() + + # auch wenn die Länge der Liste überschritten wurde + # wenn der statische Workflow aktiviert ist, dann soll die checkwaage-funktion erneut aufgerufen werden + if(self.checkBox.isChecked() == True): + self.checkWaage() + + # GUI updaten + #self.updateGUI() + + def objectTypeDetection(self): + # in dieser Funktion wird der Typ des Bauteils automatisch erkannt + + # wenn der statische Workflow ausgewählt wurde, dann soll die checkWaage Funktion aufgerufen werden, auch wenn die detectBauteiltyp-Funkion aufgerufen wurde + if self.checkBox.isChecked() == True: + self.checkWaage() + return + + ''' + if(self.checkPosNrEmpty()==True): + print("Das Pos.-Nr.-Feld ist leer.") + return + ''' + + # die Loopvariable des Workers auf False setzten, damit die Schleife durchgelaufen wird (diese wird zum Abbruch der Schleife benötigt -> siehe stopLoop) + #self.objectDetectionWorker.stopLoopSignal.emit(False) + + # überprüfen, ob der Auftrag in die Tabelle geladen wurde + if(self.AuftragsdetailsTable.item(0,0) == None): + print("Der Auftrag muss zuerst geladen werden.") + return + + # speichert den Wert, welcher im Textfeld steht in Variablen im Code + self.setAuftragsnummer() + + # starten des Threats, welcher den Bauteiltyp zurück gibt + self.objectDetectionWorker = Worker() + self.objectDetectionThread = QThread() + + self.objectDetectionWorker.moveToThread(self.objectDetectionThread) + + self.objectDetectionWorker.objectDetectionStartSignal.connect(self.objectDetectionWorker.objectTypeDetectionThread) + self.objectDetectionWorker.objectDetectionFinishedSignal.connect(self.objectTypeDetectionFinished) + self.objectDetectionWorker.waageStoppedSignal.connect(self.threadStopped) + self.objectDetectionWorker.stopLoopSignal.connect(lambda status: setattr(self.objectDetectionWorker, 'stopLoop', status)) #wird fürs aktive Stoppen des Threads benötigt + + self.objectDetectionThread.started.connect(lambda: self.objectDetectionWorker.objectDetectionStartSignal.emit(self.auftragsnummer)) + self.objectDetectionThread.start() + + def objectTypeDetectionFinished(self, einzelteilID, rowData): + # wenn der Typ des Objektes erkannt wurde, dann soll die Funktion aufgerufen werden + + # Schreiben der Bauteiltype und Pos.-Nr in die jeweiligen Felder + self.PosNrTxtFeld.setText(str(rowData[1])) + self.bauteiltypTextbox.setText(rowData[2]) + + # setzt den Boolean, um aus der Schleife raus zu gehen + self.btTypeIsSet = True + + #zum setzen den Farbe der gesamten Reihe auf Orange + self.setRowColor(self.AuftragsdetailsTable, self.getRowNr(einzelteilID),255,165,0) + + # den Thread beenden + self.objectDetectionThread.quit() + self.objectDetectionThread.wait() + + ''' + try: + self.objectDetectionThread.started.disconnect() # Trenne das Signal, damit es beim nächsten Start keine Konflikte gibt + except: + print(f"Error while disconnecting: {e}") + print("Disconnecting the thread did not work.") + ''' + + # wenn der Bauteiltyp erkannt wurde, dann soll die GUI aktualisiert werden und anschließend die CheckWaage-Funktion aufgerufen werden + self.updateGUI() + self.checkWaage() + + def threadStopped(self, einzelteilID): + # wenn kein Bauteil erkannt wurde, dann ist die EinzenteilID = 0 + if self.checkFinished() == False: + if(einzelteilID > 0): + self.setRowColor(self.AuftragsdetailsTable, self.getRowNr(einzelteilID),255,255,255) #zum setzen den Farbe der gesamten Reihe auf Weiß + self.setRowColor(self.ArbeitsschrittTable, 2,255,255,255) + self.setRowColor(self.ArbeitsschrittTable, 1,255,165,0) + + # den Thread beenden + if hasattr(self, 'objectDetectionThread'): + self.objectDetectionThread.quit() + self.objectDetectionThread.wait() + print("Der ObjektDetection-Thread wurde beendet.") + + if hasattr(self, 'checkWaageThread'): + self.checkWaageThread.quit() + self.checkWaageThread.wait() + print("Der CheckWaage-Thread wurde beendet.") + + + + + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) + + + + + diff --git a/GUI_26_09_staticWorkflow_Multithreading.py b/GUI_26_09_staticWorkflow_Multithreading.py index 9dc102f..462b7f3 100644 --- a/GUI_26_09_staticWorkflow_Multithreading.py +++ b/GUI_26_09_staticWorkflow_Multithreading.py @@ -27,7 +27,7 @@ import threading db_config = { 'user': 'dbUser', 'password': 'dbPassword', - 'host': 'localhost', + 'host': '127.0.0.1', # 'host': 'localhost', 'database': 'projectGeislinger', 'port': 3306 # Standard port for MariaDB } diff --git a/bjoerntest2.py b/bjoerntest2.py new file mode 100644 index 0000000..e7c38dc --- /dev/null +++ b/bjoerntest2.py @@ -0,0 +1,222 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'testbjoern2.ui' +# +# Created by: PyQt5 UI code generator 5.15.11 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1090, 675) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.btn1 = QtWidgets.QPushButton(self.centralwidget) + self.btn1.setGeometry(QtCore.QRect(900, 80, 111, 25)) + self.btn1.setObjectName("btn1") + self.AuftragsdetailsTable = QtWidgets.QTableWidget(self.centralwidget) + self.AuftragsdetailsTable.setGeometry(QtCore.QRect(10, 10, 661, 192)) + self.AuftragsdetailsTable.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) + self.AuftragsdetailsTable.setObjectName("AuftragsdetailsTable") + self.AuftragsdetailsTable.setColumnCount(5) + self.AuftragsdetailsTable.setRowCount(1) + item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setVerticalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(3, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(4, item) + item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setItem(0, 0, item) + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(900, 20, 121, 17)) + self.label.setObjectName("label") + self.textEdit = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit.setGeometry(QtCore.QRect(860, 40, 221, 31)) + self.textEdit.setObjectName("textEdit") + self.bauteilTypBtn = QtWidgets.QPushButton(self.centralwidget) + self.bauteilTypBtn.setGeometry(QtCore.QRect(60, 340, 161, 25)) + self.bauteilTypBtn.setObjectName("bauteilTypBtn") + self.bauteiltypTextbox = QtWidgets.QTextEdit(self.centralwidget) + self.bauteiltypTextbox.setGeometry(QtCore.QRect(230, 340, 221, 31)) + self.bauteiltypTextbox.setObjectName("bauteiltypTextbox") + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setGeometry(QtCore.QRect(250, 320, 181, 20)) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setGeometry(QtCore.QRect(520, 320, 67, 17)) + self.label_4.setObjectName("label_4") + self.textEdit_3 = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit_3.setGeometry(QtCore.QRect(460, 340, 191, 31)) + self.textEdit_3.setObjectName("textEdit_3") + self.checkBox = QtWidgets.QCheckBox(self.centralwidget) + self.checkBox.setGeometry(QtCore.QRect(70, 410, 151, 23)) + self.checkBox.setChecked(False) + self.checkBox.setObjectName("checkBox") + self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget) + self.graphicsView.setGeometry(QtCore.QRect(800, 280, 256, 192)) + self.graphicsView.setObjectName("graphicsView") + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1090, 22)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.btn1.setText(_translate("MainWindow", "load Auftrag")) + item = self.AuftragsdetailsTable.verticalHeaderItem(0) + item.setText(_translate("MainWindow", "T1")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "Pos.-Nr")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Matnr mit hoechster Version")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Bezeichnung + Werkstoff")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Menge")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(4) + item.setText(_translate("MainWindow", "Lgort")) + __sortingEnabled = self.AuftragsdetailsTable.isSortingEnabled() + self.AuftragsdetailsTable.setSortingEnabled(False) + item = self.AuftragsdetailsTable.item(0, 0) + item.setText(_translate("MainWindow", "I1")) + self.AuftragsdetailsTable.setSortingEnabled(__sortingEnabled) + self.label.setText(_translate("MainWindow", "Auftragsnummer:")) + self.textEdit.setHtml(_translate("MainWindow", "\n" +"\n" +"


")) + self.bauteilTypBtn.setText(_translate("MainWindow", "Bauteiltype erkennen")) + self.bauteiltypTextbox.setHtml(_translate("MainWindow", "\n" +"\n" +"


")) + self.label_3.setText(_translate("MainWindow", "Bezeichnung")) + self.label_4.setText(_translate("MainWindow", "Pos.-Nr:")) + self.checkBox.setText(_translate("MainWindow", "Bauteiltype locked")) + + + +import sys +import cv2 +#from PyQt5 import QtCore, QtWidgets, QtGui + +class CameraStreamApp(QtWidgets.QMainWindow): + def __init__(self): + super().__init__() + self.initUI() + + # OpenCV video capture (0 for the default camera) + self.cap = None # Initialize capture as None (stream starts on button click) + + # Timer for updating the frame + self.timer = QtCore.QTimer(self) + self.timer.timeout.connect(self.update_frame) + + def initUI(self): + self.setWindowTitle("Camera Stream") + + # Create a QGraphicsView widget + self.graphicsView = QtWidgets.QGraphicsView(self) + self.graphicsView.setGeometry(QtCore.QRect(50, 50, 640, 480)) + self.graphicsView.setObjectName("graphicsView") + + # Create a QGraphicsScene to hold the frame + self.scene = QtWidgets.QGraphicsScene() + self.graphicsView.setScene(self.scene) + + # Create a button to start the camera stream + self.startButton = QtWidgets.QPushButton('Start Camera', self) + self.startButton.setGeometry(QtCore.QRect(50, 550, 120, 40)) # Position the button below the view + self.startButton.clicked.connect(self.start_camera) + + # Show the main window + self.setGeometry(100, 100, 800, 600) + self.show() + + def start_camera(self): + # Start OpenCV video capture (only if not already started) + if self.cap is None: + self.cap = cv2.VideoCapture(0) + if not self.cap.isOpened(): + print("Error: Unable to open the camera.") + return + self.timer.start(30) # Start the timer to update the frame every 30ms (about 33 FPS) + + def update_frame(self): + if self.cap: + ret, frame = self.cap.read() # Capture frame from the camera + if ret: + # Convert the frame from BGR (OpenCV format) to RGB + frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) + + # Convert the frame to QImage + h, w, ch = frame.shape + bytes_per_line = ch * w + qt_image = QtGui.QImage(frame.data, w, h, bytes_per_line, QtGui.QImage.Format_RGB888) + + # Add the QImage to a QPixmap + pixmap = QtGui.QPixmap.fromImage(qt_image) + + # Update the scene with the new pixmap + self.scene.clear() + self.scene.addPixmap(pixmap) + + def closeEvent(self, event): + # Release the camera when the application is closed + if self.cap is not None: + self.cap.release() + event.accept() + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/bjoerntest3.py b/bjoerntest3.py new file mode 100644 index 0000000..14b0b6f --- /dev/null +++ b/bjoerntest3.py @@ -0,0 +1,181 @@ +from PyQt5 import QtCore, QtGui, QtWidgets +import cv2 +import sys + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1090, 675) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.btn1 = QtWidgets.QPushButton(self.centralwidget) + self.btn1.setGeometry(QtCore.QRect(900, 80, 111, 25)) + self.btn1.setObjectName("btn1") + self.AuftragsdetailsTable = QtWidgets.QTableWidget(self.centralwidget) + self.AuftragsdetailsTable.setGeometry(QtCore.QRect(10, 10, 661, 192)) + self.AuftragsdetailsTable.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) + self.AuftragsdetailsTable.setObjectName("AuftragsdetailsTable") + self.AuftragsdetailsTable.setColumnCount(5) + self.AuftragsdetailsTable.setRowCount(1) + item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setVerticalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(3, item) + item = QtWidgets.QTableWidgetItem() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(4, item) + item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setItem(0, 0, item) + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(900, 20, 121, 17)) + self.label.setObjectName("label") + self.textEdit = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit.setGeometry(QtCore.QRect(860, 40, 221, 31)) + self.textEdit.setObjectName("textEdit") + self.bauteilTypBtn = QtWidgets.QPushButton(self.centralwidget) + self.bauteilTypBtn.setGeometry(QtCore.QRect(60, 340, 161, 25)) + self.bauteilTypBtn.setObjectName("bauteilTypBtn") + self.bauteiltypTextbox = QtWidgets.QTextEdit(self.centralwidget) + self.bauteiltypTextbox.setGeometry(QtCore.QRect(230, 340, 221, 31)) + self.bauteiltypTextbox.setObjectName("bauteiltypTextbox") + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setGeometry(QtCore.QRect(250, 320, 181, 20)) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setGeometry(QtCore.QRect(520, 320, 67, 17)) + self.label_4.setObjectName("label_4") + self.textEdit_3 = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit_3.setGeometry(QtCore.QRect(460, 340, 191, 31)) + self.textEdit_3.setObjectName("textEdit_3") + self.checkBox = QtWidgets.QCheckBox(self.centralwidget) + self.checkBox.setGeometry(QtCore.QRect(70, 410, 151, 23)) + self.checkBox.setChecked(False) + self.checkBox.setObjectName("checkBox") + self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget) + self.graphicsView.setGeometry(QtCore.QRect(800, 280, 256, 192)) + self.graphicsView.setObjectName("graphicsView") + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1090, 22)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.btn1.setText(_translate("MainWindow", "load Auftrag")) + self.label.setText(_translate("MainWindow", "Auftragsnummer:")) + self.bauteilTypBtn.setText(_translate("MainWindow", "Bauteiltype erkennen")) + self.label_3.setText(_translate("MainWindow", "Bezeichnung")) + self.label_4.setText(_translate("MainWindow", "Pos.-Nr:")) + self.checkBox.setText(_translate("MainWindow", "Bauteiltype locked")) + + +class CameraStreamApp(QtWidgets.QMainWindow): + def __init__(self, ui): + super().__init__() + self.ui = ui + self.cap = None # Initialize capture as None (stream starts on button click) + + # Timer for updating the frame + self.timer = QtCore.QTimer(self) + self.timer.timeout.connect(self.update_frame) + + # Set up the camera stream button + self.ui.btn1.clicked.connect(self.start_camera) + + # Set up the graphics view and scene + self.scene = QtWidgets.QGraphicsScene(self) + self.ui.graphicsView.setScene(self.scene) + + def start_camera(self): + # Start OpenCV video capture (only if not already started) + if self.cap is None: + self.cap = cv2.VideoCapture(0) + if not self.cap.isOpened(): + print("Error: Unable to open the camera.") + return + self.timer.start(30) # Start the timer to update the frame every 30ms (about 33 FPS) + + # def update_frame(self): + # if self.cap: + # ret, frame = self.cap.read() # Capture frame from the camera + # if ret: + # # Convert the frame from BGR (OpenCV format) to RGB + # frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) + + # # Convert the frame to QImage + # h, w, ch = frame.shape + # bytes_per_line = ch * w + # qt_image = QtGui.QImage(frame.data, w, h, bytes_per_line, QtGui.QImage.Format_RGB888) + + # # Add the QImage to a QPixmap + # pixmap = QtGui.QPixmap.fromImage(qt_image) + + # # Update the scene with the new pixmap + # self.scene.clear() + # self.scene.addPixmap(pixmap) + + def update_frame(self): + if self.cap: + ret, frame = self.cap.read() # Capture frame from the camera + if ret: + # Convert the frame from BGR (OpenCV format) to RGB + frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) + + # Convert the frame to QImage + h, w, ch = frame.shape + bytes_per_line = ch * w + qt_image = QtGui.QImage(frame.data, w, h, bytes_per_line, QtGui.QImage.Format_RGB888) + + # Add the QImage to a QPixmap + pixmap = QtGui.QPixmap.fromImage(qt_image) + + # Get the size of the graphicsView and scale the pixmap to fit + view_size = self.ui.graphicsView.size() + scaled_pixmap = pixmap.scaled(view_size, QtCore.Qt.KeepAspectRatio) + + # Update the scene with the scaled pixmap + self.scene.clear() + self.scene.addPixmap(scaled_pixmap) + + def closeEvent(self, event): + # Release the camera when the application is closed + if self.cap is not None: + self.cap.release() + event.accept() + + +if __name__ == "__main__": + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + + # Initialize the CameraStreamApp with the UI + camera_app = CameraStreamApp(ui) + + MainWindow.show() + sys.exit(app.exec_()) diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..8898dfc --- /dev/null +++ b/compose.yml @@ -0,0 +1,24 @@ +# Use root/example as user/password credentials +version: '3.1' + +services: + + db: + image: mariadb + restart: always + environment: + MARIADB_ROOT_PASSWORD: example + MARIADB_USER: dbUser + MARIADB_PASSWORD: dbPassword + MARIADB_DATABASE: projectGeislinger + ports: + - 3306:3306 + # network_mode: host + # volumes: + # - /tmp/mysql.sock:/tmp/mysql.sock + + adminer: + image: adminer + restart: always + ports: + - 8082:8080 diff --git a/mariadb-test.py b/mariadb-test.py new file mode 100644 index 0000000..5171a04 --- /dev/null +++ b/mariadb-test.py @@ -0,0 +1,47 @@ +import mariadb +import sys + +# # Database connection parameters +# host = "127.0.0.1" # host = "localhost" # or the IP of the machine if accessed remotely +# port = 3306 +# user = "root" +# password = "my-secret-pw" # Update with your password +# database = "mydatabase" # Replace with your actual database name + +db_config = { + 'user': 'dbUser', + 'password': 'dbPassword', + 'host': '127.0.0.1', # 'host': 'localhost', + 'database': 'projectGeislinger', + 'port': 3306 # Standard port for MariaDB +} + +try: + # Establish a connection + # conn = mariadb.connect( + # user=user, + # password=password, + # host=host, + # port=port, + # database=database + # ) + + conn = mariadb.connect(**db_config) + + print("Connection successful!") + + # Create a cursor object + cur = conn.cursor() + + # Example query + cur.execute("SELECT VERSION()") + result = cur.fetchone() + print(f"MariaDB version: {result[0]}") + +except mariadb.Error as e: + print(f"Error connecting to MariaDB: {e}") + sys.exit(1) + +finally: + if conn: + conn.close() diff --git a/test.ui b/test.ui new file mode 100644 index 0000000..fb22795 --- /dev/null +++ b/test.ui @@ -0,0 +1,230 @@ + + + MainWindow + + + + 0 + 0 + 1090 + 675 + + + + MainWindow + + + + + + 900 + 80 + 111 + 25 + + + + load Auftrag + + + + + + 10 + 10 + 661 + 192 + + + + QAbstractItemView::NoEditTriggers + + + + T1 + + + + + Pos.-Nr + + + + 8 + + + + + + Matnr mit hoechster Version + + + + 8 + + + + + + Bezeichnung + Werkstoff + + + + 8 + + + + + + Menge + + + + 8 + + + + + + Lgort + + + + 8 + + + + + + I1 + + + + + + + 900 + 20 + 121 + 17 + + + + Auftragsnummer: + + + + + + 860 + 40 + 221 + 31 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + + + + + 450 + 350 + 161 + 25 + + + + Bauteiltype erkennen + + + + + + 620 + 350 + 221 + 31 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + + + + + 640 + 330 + 181 + 20 + + + + Bezeichnung + + + + + + 910 + 330 + 67 + 17 + + + + Pos.-Nr: + + + + + + 850 + 350 + 191 + 31 + + + + + + + 460 + 420 + 151 + 23 + + + + Bauteiltype locked + + + false + + + + + + + 0 + 0 + 1090 + 22 + + + + + + + + diff --git a/test2.ui.py b/test2.ui.py new file mode 100644 index 0000000..21a878b --- /dev/null +++ b/test2.ui.py @@ -0,0 +1,274 @@ + + + MainWindow + + + + 0 + 0 + 1374 + 725 + + + + MainWindow + + + + true + + + + + 30 + 200 + 591 + 371 + + + + false + + + QAbstractItemView::NoEditTriggers + + + + T1 + + + + + Pos.-Nr + + + + 8 + + + + + + Matnr mit hoechster Version + + + + 8 + + + + + + Bezeichnung + Werkstoff + + + + 8 + + + + + + Menge + + + + 8 + + + + + + Lgort + + + + 8 + + + + + + I1 + + + + + + + 9 + 9 + 611 + 151 + + + + Bauteile + + + + + 170 + 30 + 221 + 71 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 31 + 34 + 269 + 76 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> +p, li { white-space: pre-wrap; } +hr { height: 1px; border-width: 0; } +li.unchecked::marker { content: "\2610"; } +li.checked::marker { content: "\2612"; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p></body></html> + + + + + + 31 + 11 + 73 + 17 + + + + Bezeichnung + + + + + + + 420 + 40 + 171 + 71 + + + + + + + Pos.-Nr: + + + + + + + + + + + + 20 + 40 + 161 + 81 + + + + + + + Bauteiltype erkennen + + + false + + + false + + + false + + + false + + + + + + + Bauteiltype locked + + + false + + + + + + + + + + 640 + 20 + 351 + 571 + + + + + + + Auftrag + + + + + 10 + 32 + 331 + 481 + + + + + + + Auftragsnummer: + + + + + + + load Auftrag + + + + + + + + + + + + + + + + + + diff --git a/test_ui.py b/test_ui.py new file mode 100644 index 0000000..59dcc01 --- /dev/null +++ b/test_ui.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/bjoern/git/GeislingerProject/test.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1090, 675) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.btn1 = QtWidgets.QPushButton(self.centralwidget) + self.btn1.setGeometry(QtCore.QRect(900, 80, 111, 25)) + self.btn1.setObjectName("btn1") + self.AuftragsdetailsTable = QtWidgets.QTableWidget(self.centralwidget) + self.AuftragsdetailsTable.setGeometry(QtCore.QRect(10, 10, 661, 192)) + self.AuftragsdetailsTable.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) + self.AuftragsdetailsTable.setObjectName("AuftragsdetailsTable") + self.AuftragsdetailsTable.setColumnCount(5) + self.AuftragsdetailsTable.setRowCount(1) + item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setVerticalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(3, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(4, item) + item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setItem(0, 0, item) + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(900, 20, 121, 17)) + self.label.setObjectName("label") + self.textEdit = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit.setGeometry(QtCore.QRect(860, 40, 221, 31)) + self.textEdit.setObjectName("textEdit") + self.bauteilTypBtn = QtWidgets.QPushButton(self.centralwidget) + self.bauteilTypBtn.setGeometry(QtCore.QRect(450, 350, 161, 25)) + self.bauteilTypBtn.setObjectName("bauteilTypBtn") + self.bauteiltypTextbox = QtWidgets.QTextEdit(self.centralwidget) + self.bauteiltypTextbox.setGeometry(QtCore.QRect(620, 350, 221, 31)) + self.bauteiltypTextbox.setObjectName("bauteiltypTextbox") + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setGeometry(QtCore.QRect(640, 330, 181, 20)) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setGeometry(QtCore.QRect(910, 330, 67, 17)) + self.label_4.setObjectName("label_4") + self.textEdit_3 = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit_3.setGeometry(QtCore.QRect(850, 350, 191, 31)) + self.textEdit_3.setObjectName("textEdit_3") + self.checkBox = QtWidgets.QCheckBox(self.centralwidget) + self.checkBox.setGeometry(QtCore.QRect(460, 420, 151, 23)) + self.checkBox.setChecked(False) + self.checkBox.setObjectName("checkBox") + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1090, 22)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.btn1.setText(_translate("MainWindow", "load Auftrag")) + item = self.AuftragsdetailsTable.verticalHeaderItem(0) + item.setText(_translate("MainWindow", "T1")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "Pos.-Nr")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Matnr mit hoechster Version")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Bezeichnung + Werkstoff")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Menge")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(4) + item.setText(_translate("MainWindow", "Lgort")) + __sortingEnabled = self.AuftragsdetailsTable.isSortingEnabled() + self.AuftragsdetailsTable.setSortingEnabled(False) + item = self.AuftragsdetailsTable.item(0, 0) + item.setText(_translate("MainWindow", "I1")) + self.AuftragsdetailsTable.setSortingEnabled(__sortingEnabled) + self.label.setText(_translate("MainWindow", "Auftragsnummer:")) + self.textEdit.setHtml(_translate("MainWindow", "\n" +"\n" +"


")) + self.bauteilTypBtn.setText(_translate("MainWindow", "Bauteiltype erkennen")) + self.bauteiltypTextbox.setHtml(_translate("MainWindow", "\n" +"\n" +"


")) + self.label_3.setText(_translate("MainWindow", "Bezeichnung")) + self.label_4.setText(_translate("MainWindow", "Pos.-Nr:")) + self.checkBox.setText(_translate("MainWindow", "Bauteiltype locked")) diff --git a/testbjoern.py b/testbjoern.py new file mode 100644 index 0000000..38fb692 --- /dev/null +++ b/testbjoern.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'test2.ui.py' +# +# Created by: PyQt5 UI code generator 5.15.11 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets +import signal + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1374, 725) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setEnabled(True) + self.centralwidget.setObjectName("centralwidget") + self.AuftragsdetailsTable = QtWidgets.QTableWidget(self.centralwidget) + self.AuftragsdetailsTable.setGeometry(QtCore.QRect(30, 200, 591, 371)) + self.AuftragsdetailsTable.setAutoFillBackground(False) + self.AuftragsdetailsTable.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) + self.AuftragsdetailsTable.setObjectName("AuftragsdetailsTable") + self.AuftragsdetailsTable.setColumnCount(5) + self.AuftragsdetailsTable.setRowCount(1) + item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setVerticalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(3, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(4, item) + item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setItem(0, 0, item) + self.groupBox = QtWidgets.QGroupBox(self.centralwidget) + self.groupBox.setGeometry(QtCore.QRect(9, 9, 611, 151)) + self.groupBox.setObjectName("groupBox") + self.frame = QtWidgets.QFrame(self.groupBox) + self.frame.setGeometry(QtCore.QRect(170, 30, 221, 71)) + self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frame.setFrameShadow(QtWidgets.QFrame.Raised) + self.frame.setObjectName("frame") + self.bauteiltypTextbox = QtWidgets.QTextEdit(self.frame) + self.bauteiltypTextbox.setGeometry(QtCore.QRect(31, 34, 269, 76)) + self.bauteiltypTextbox.setObjectName("bauteiltypTextbox") + self.label_3 = QtWidgets.QLabel(self.frame) + self.label_3.setGeometry(QtCore.QRect(31, 11, 73, 17)) + self.label_3.setObjectName("label_3") + self.widget = QtWidgets.QWidget(self.groupBox) + self.widget.setGeometry(QtCore.QRect(420, 40, 171, 71)) + self.widget.setObjectName("widget") + self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget) + self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.label_4 = QtWidgets.QLabel(self.widget) + self.label_4.setObjectName("label_4") + self.verticalLayout_2.addWidget(self.label_4) + self.textEdit_3 = QtWidgets.QTextEdit(self.widget) + self.textEdit_3.setObjectName("textEdit_3") + self.verticalLayout_2.addWidget(self.textEdit_3) + self.widget1 = QtWidgets.QWidget(self.groupBox) + self.widget1.setGeometry(QtCore.QRect(20, 40, 161, 81)) + self.widget1.setObjectName("widget1") + self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.widget1) + self.verticalLayout_3.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_3.setObjectName("verticalLayout_3") + self.bauteilTypBtn = QtWidgets.QPushButton(self.widget1) + self.bauteilTypBtn.setCheckable(False) + self.bauteilTypBtn.setAutoDefault(False) + self.bauteilTypBtn.setDefault(False) + self.bauteilTypBtn.setFlat(False) + self.bauteilTypBtn.setObjectName("bauteilTypBtn") + self.verticalLayout_3.addWidget(self.bauteilTypBtn) + self.checkBox = QtWidgets.QCheckBox(self.widget1) + self.checkBox.setChecked(False) + self.checkBox.setObjectName("checkBox") + self.verticalLayout_3.addWidget(self.checkBox) + self.widget2 = QtWidgets.QWidget(self.centralwidget) + self.widget2.setGeometry(QtCore.QRect(640, 20, 351, 571)) + self.widget2.setObjectName("widget2") + self.verticalLayout = QtWidgets.QVBoxLayout(self.widget2) + self.verticalLayout.setContentsMargins(0, 0, 0, 0) + self.verticalLayout.setObjectName("verticalLayout") + self.groupBox_2 = QtWidgets.QGroupBox(self.widget2) + self.groupBox_2.setObjectName("groupBox_2") + self.widget3 = QtWidgets.QWidget(self.groupBox_2) + self.widget3.setGeometry(QtCore.QRect(10, 32, 331, 481)) + self.widget3.setObjectName("widget3") + self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.widget3) + self.verticalLayout_4.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_4.setObjectName("verticalLayout_4") + self.label = QtWidgets.QLabel(self.widget3) + self.label.setObjectName("label") + self.verticalLayout_4.addWidget(self.label) + self.btn1 = QtWidgets.QPushButton(self.widget3) + self.btn1.setObjectName("btn1") + self.verticalLayout_4.addWidget(self.btn1) + self.graphicsView = QtWidgets.QGraphicsView(self.widget3) + self.graphicsView.setObjectName("graphicsView") + self.verticalLayout_4.addWidget(self.graphicsView) + self.verticalLayout.addWidget(self.groupBox_2) + MainWindow.setCentralWidget(self.centralwidget) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + item = self.AuftragsdetailsTable.verticalHeaderItem(0) + item.setText(_translate("MainWindow", "T1")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "Pos.-Nr")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Matnr mit hoechster Version")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Bezeichnung + Werkstoff")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Menge")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(4) + item.setText(_translate("MainWindow", "Lgort")) + __sortingEnabled = self.AuftragsdetailsTable.isSortingEnabled() + self.AuftragsdetailsTable.setSortingEnabled(False) + item = self.AuftragsdetailsTable.item(0, 0) + item.setText(_translate("MainWindow", "I1")) + self.AuftragsdetailsTable.setSortingEnabled(__sortingEnabled) + self.groupBox.setTitle(_translate("MainWindow", "Bauteile")) + self.bauteiltypTextbox.setHtml(_translate("MainWindow", "\n" +"\n" +"


")) + self.label_3.setText(_translate("MainWindow", "Bezeichnung")) + self.label_4.setText(_translate("MainWindow", "Pos.-Nr:")) + self.bauteilTypBtn.setText(_translate("MainWindow", "Bauteiltype erkennen")) + self.checkBox.setText(_translate("MainWindow", "Bauteiltype locked")) + self.groupBox_2.setTitle(_translate("MainWindow", "Auftrag")) + self.label.setText(_translate("MainWindow", "Auftragsnummer:")) + self.btn1.setText(_translate("MainWindow", "load Auftrag")) + +def signal_handler(sig, frame): + QtWidgets.QApplication.quit() + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + + # Handle Ctrl+C (SIGINT) to close the application + signal.signal(signal.SIGINT, signal_handler) + + # Create a timer that runs in the background to process signals + timer = QtCore.QTimer() + timer.start(100) # Timer set to trigger every 100 ms + timer.timeout.connect(lambda: None) # No-op to keep the event loop running + + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/testbjoern2.ui b/testbjoern2.ui new file mode 100644 index 0000000..40da592 --- /dev/null +++ b/testbjoern2.ui @@ -0,0 +1,246 @@ + + + MainWindow + + + + 0 + 0 + 1090 + 675 + + + + MainWindow + + + + + + 900 + 80 + 111 + 25 + + + + load Auftrag + + + + + + 10 + 10 + 661 + 192 + + + + QAbstractItemView::NoEditTriggers + + + + T1 + + + + + Pos.-Nr + + + + 8 + + + + + + Matnr mit hoechster Version + + + + 8 + + + + + + Bezeichnung + Werkstoff + + + + 8 + + + + + + Menge + + + + 8 + + + + + + Lgort + + + + 8 + + + + + + I1 + + + + + + + 900 + 20 + 121 + 17 + + + + Auftragsnummer: + + + + + + 860 + 40 + 221 + 31 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> +p, li { white-space: pre-wrap; } +hr { height: 1px; border-width: 0; } +li.unchecked::marker { content: "\2610"; } +li.checked::marker { content: "\2612"; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p></body></html> + + + + + + 60 + 340 + 161 + 25 + + + + Bauteiltype erkennen + + + + + + 230 + 340 + 221 + 31 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> +p, li { white-space: pre-wrap; } +hr { height: 1px; border-width: 0; } +li.unchecked::marker { content: "\2610"; } +li.checked::marker { content: "\2612"; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p></body></html> + + + + + + 250 + 320 + 181 + 20 + + + + Bezeichnung + + + + + + 520 + 320 + 67 + 17 + + + + Pos.-Nr: + + + + + + 460 + 340 + 191 + 31 + + + + + + + 70 + 410 + 151 + 23 + + + + Bauteiltype locked + + + false + + + + + + 800 + 280 + 256 + 192 + + + + + + + + 0 + 0 + 1090 + 22 + + + + + + + + diff --git a/testbjoern2_ui.py b/testbjoern2_ui.py new file mode 100644 index 0000000..014d94f --- /dev/null +++ b/testbjoern2_ui.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/bjoern/git/GeislingerProject/testbjoern2.ui' +# +# Created by: PyQt5 UI code generator 5.15.11 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1090, 675) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.btn1 = QtWidgets.QPushButton(self.centralwidget) + self.btn1.setGeometry(QtCore.QRect(900, 80, 111, 25)) + self.btn1.setObjectName("btn1") + self.AuftragsdetailsTable = QtWidgets.QTableWidget(self.centralwidget) + self.AuftragsdetailsTable.setGeometry(QtCore.QRect(10, 10, 661, 192)) + self.AuftragsdetailsTable.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) + self.AuftragsdetailsTable.setObjectName("AuftragsdetailsTable") + self.AuftragsdetailsTable.setColumnCount(5) + self.AuftragsdetailsTable.setRowCount(1) + item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setVerticalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(3, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(8) + item.setFont(font) + self.AuftragsdetailsTable.setHorizontalHeaderItem(4, item) + item = QtWidgets.QTableWidgetItem() + self.AuftragsdetailsTable.setItem(0, 0, item) + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(900, 20, 121, 17)) + self.label.setObjectName("label") + self.textEdit = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit.setGeometry(QtCore.QRect(860, 40, 221, 31)) + self.textEdit.setObjectName("textEdit") + self.bauteilTypBtn = QtWidgets.QPushButton(self.centralwidget) + self.bauteilTypBtn.setGeometry(QtCore.QRect(60, 340, 161, 25)) + self.bauteilTypBtn.setObjectName("bauteilTypBtn") + self.bauteiltypTextbox = QtWidgets.QTextEdit(self.centralwidget) + self.bauteiltypTextbox.setGeometry(QtCore.QRect(230, 340, 221, 31)) + self.bauteiltypTextbox.setObjectName("bauteiltypTextbox") + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setGeometry(QtCore.QRect(250, 320, 181, 20)) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setGeometry(QtCore.QRect(520, 320, 67, 17)) + self.label_4.setObjectName("label_4") + self.textEdit_3 = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit_3.setGeometry(QtCore.QRect(460, 340, 191, 31)) + self.textEdit_3.setObjectName("textEdit_3") + self.checkBox = QtWidgets.QCheckBox(self.centralwidget) + self.checkBox.setGeometry(QtCore.QRect(70, 410, 151, 23)) + self.checkBox.setChecked(False) + self.checkBox.setObjectName("checkBox") + self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget) + self.graphicsView.setGeometry(QtCore.QRect(800, 280, 256, 192)) + self.graphicsView.setObjectName("graphicsView") + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1090, 22)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.btn1.setText(_translate("MainWindow", "load Auftrag")) + item = self.AuftragsdetailsTable.verticalHeaderItem(0) + item.setText(_translate("MainWindow", "T1")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "Pos.-Nr")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Matnr mit hoechster Version")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Bezeichnung + Werkstoff")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Menge")) + item = self.AuftragsdetailsTable.horizontalHeaderItem(4) + item.setText(_translate("MainWindow", "Lgort")) + __sortingEnabled = self.AuftragsdetailsTable.isSortingEnabled() + self.AuftragsdetailsTable.setSortingEnabled(False) + item = self.AuftragsdetailsTable.item(0, 0) + item.setText(_translate("MainWindow", "I1")) + self.AuftragsdetailsTable.setSortingEnabled(__sortingEnabled) + self.label.setText(_translate("MainWindow", "Auftragsnummer:")) + self.textEdit.setHtml(_translate("MainWindow", "\n" +"\n" +"


")) + self.bauteilTypBtn.setText(_translate("MainWindow", "Bauteiltype erkennen")) + self.bauteiltypTextbox.setHtml(_translate("MainWindow", "\n" +"\n" +"


")) + self.label_3.setText(_translate("MainWindow", "Bezeichnung")) + self.label_4.setText(_translate("MainWindow", "Pos.-Nr:")) + self.checkBox.setText(_translate("MainWindow", "Bauteiltype locked")) diff --git a/untitled/.gitignore b/untitled/.gitignore new file mode 100644 index 0000000..4a0b530 --- /dev/null +++ b/untitled/.gitignore @@ -0,0 +1,74 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* +CMakeLists.txt.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + diff --git a/untitled/build/Desktop-Debug/.qmake.stash b/untitled/build/Desktop-Debug/.qmake.stash new file mode 100644 index 0000000..a741931 --- /dev/null +++ b/untitled/build/Desktop-Debug/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 2 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx new file mode 100644 index 0000000000000000000000000000000000000000..9d496f7d2c678ae878944f0a9d1300363de25a5d GIT binary patch literal 288 zcmWIYbaRtnWMFVk@vO*AElFfyU|xvSNlO+>x|CMF@!vg>X9n$!h0i0e6z|+|`)^@svWmv(EmDpDrafbH(e{;p z$$0Dp6L0Rs~;#rZKT9U{DWD5gvaY<2T7?5rT;)*%R9;eTEZoPE&1?K6IvOWV`uORbJaax- z!MQ$B$!UKa8#BX-3A&$)D|3^81~U|;rWHfzoJ0^^T$Efa4q`BY2nb+gnOt{dqmRdW HMkWRT!Cp7i literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/QLocale.01F1E8743C4251DF.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/QLocale.01F1E8743C4251DF.idx new file mode 100644 index 0000000000000000000000000000000000000000..f43a73ae7cc3d579e08beea4e60d02e070e6db62 GIT binary patch literal 166 zcmWIYbaR`>z`)>~;#rZKT9U{DWD5gvaY<38ABYCxiaE(1r_Xq9y>$J$zOLS-^Jl!z zY5ICzUBAJg+uZo#*^_6q*Iw{FuYFZt$M7n@PT@IyudDoDPWtqgBVO80s~;#rZKT9U{DWD5gvaY<2T1dwh7;)*%R9;eTEZoPE&1?K$e9xTW1}Z+OpRV9s zov0U3Z5gpUj*XeY<+847ab<22&}fFD)U;v~;#rZKT9U{DWD5gvaY<2T5Rk40;)*%R9;eTEZoPE`;!QR{GVWo{DCP==z^v|~;#rZKT9U{DWD5gvaY<388<4gF;)*%R9;eTEZoPE^kQ5jcrRF4p7{x`&#oQnUqsbjNtLMei H>I@73`x7@+ literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx new file mode 100644 index 0000000000000000000000000000000000000000..2c2dfba0648db8ac9007ff7f6bc7b2d62a7e9cdb GIT binary patch literal 210 zcmWIYbaOk!z`)>~;#rZKT9U{DWD5gvaY<2T7?55E#1(Vqo(|+{P~c$*&`cSl7fk-py1I0KX!8-R1?9?;W#0=KlJb@x zY51ir?^zO7^_{uyr_HwF%G@NN!3;&IX~p6|`rvN~{gq!%N-%OUF>)};FH7(oOCFvA!O3`{3>aKy>a4Q^m!WM%*Wxwbst literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx new file mode 100644 index 0000000000000000000000000000000000000000..799b102b9a899448f14b0169bdb2d48e8c1c9e42 GIT binary patch literal 210 zcmWIYbaOk!z`)>~;#rZKT9U{DWD5gvaY<2TD3D$Q#1(UrJx-tT+)|UgQUQqC^aV$ j#3(LGE>;FH7(oOCFvA!O3`|p%*^2MSiApgsGBW@G{ck-# literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx new file mode 100644 index 0000000000000000000000000000000000000000..80ca39b621e46888240b2e36b6d97b8a4795967c GIT binary patch literal 174 zcmWIYbaPwAz`)>~;#rZKT9U{DWD5gvaY<38Cy=%S;)*$}2QP9q81S$j&=#%q#h$FwdTLInj$5ACjiuJVzHeyuc)v?Cc>cOC%+q~E zCovRP<|Y9RV<<{ZD;5XRdkumv{Y}cdz{tfY%pt4*k^+OG)SN^Rqqr!!m>a}k6lV!3 L71fcs$G`vp`A;+w literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx new file mode 100644 index 0000000000000000000000000000000000000000..f46650e37ba1e243eeed6ed2ef2d187fde3b11cb GIT binary patch literal 174 zcmWIYbaPwAz`)>~;#rZKT9U{DWD5gvaY<38Cy=%W;)*$}2QP9q81S$j&73=9C|T{JNO literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx new file mode 100644 index 0000000000000000000000000000000000000000..5048503e914350d7be247b357f70d2e4ffef7512 GIT binary patch literal 208 zcmWIYbaOkwz`)>~;#rZKT9U{DWD5gvaY<382avV{;)*$}2NSs(3^>>>#AejiC%H@) z)Vj?w(WABW_dV_H8t)k{#dpk|C7ztudn+nbC;ja-3l*7=QUY>K@*z<{bhPCL% z;>z44pivA(scFSFK>GI?jy+A214Ws*7@0Yk#XwRZz{AKU#ijvaGcfF)wr%_v^d$xc02R7A?EnA( literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.957EE2B4DB6A5247.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.957EE2B4DB6A5247.idx new file mode 100644 index 0000000000000000000000000000000000000000..422cc8f3824f60042810e06248e91af475cb1f68 GIT binary patch literal 176 zcmWIYbaPw5z`)>~;#rZKT9U{DWD5gvaY<38H<0!K;)*%4$4~P%D2T8)NL}hRPd1ij zIWm2X%#W+$h=* z?2-Zu#g(~9K;sySQqzjXf%Kv4g~I(@%({$Rj9eUCVjw9nC`!#q1Tl(>l8d=P48}FR NMX|5{b39~V0013)H9r6V literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.11ED534E7AF4A856.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.11ED534E7AF4A856.idx new file mode 100644 index 0000000000000000000000000000000000000000..223304d1ec6d9ed82ff96079cc4ddc688149c384 GIT binary patch literal 174 zcmWIYbaPwAz`)>~;#rZKT9U{DWD5gvaY<387f2k4E9NA7oIc~Z_0sk0`nr0T&Y$!F zV$IW6O}8*?o?I;S`O??MIcN4fnR97M$lo779!;8ZWYL!&KYnaF^5e;$Ca=9bYz$xa zi!&Ej<|Y9RV<<{ZD;5XR)7b5860dPwXXIk!;@}blNr6F8YEB}EQCyT<%nf2Nmi>JE LNJYZwE&~Gq`)Wa_ literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.C38675C0D160CE4C.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.C38675C0D160CE4C.idx new file mode 100644 index 0000000000000000000000000000000000000000..4c057f1fd0234d410661242274aa74d4aec92b36 GIT binary patch literal 216 zcmWIYbaT7Fz`)>~;#rZKT9U{DWD5gvaY<388<2JY;)*%R9;eTEZoPEGd;=5~;t+xh15L|G1gR-5N-pLGF&I71x!+Je+3v}}006+VMY;e0 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.5812F997B3F780A9.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.5812F997B3F780A9.idx new file mode 100644 index 0000000000000000000000000000000000000000..bee0079264b7f0ea136414159e351b8382b11e8c GIT binary patch literal 172 zcmWIYbaPw6z`)>~;#rZKT9U{DWD5gvaY<382at9I;)*%R9;eTEZoPED zYjI_663{4yqSUlvaUlKWgLm44KcROSxfr=PxcEU*U{I8rlL%rI7bO>SgBXmaA+H?m KkFAkmU;qGhO+h38 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.A20C0FFDA235CCCC.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.A20C0FFDA235CCCC.idx new file mode 100644 index 0000000000000000000000000000000000000000..3f10a76cca57f3792813d34847e6c4dedc8d9745 GIT binary patch literal 238 zcmWIYbaQ*gz`)>~;#rZKT9U{DWD5gvaY<2TAdn6Q;)*%R8$9*&JUw;1wkLa>KI6Id z()H{5x_Xz+pY#D@&C^#+w=is;TrBkY($~g0XZAdqb7@M*-yann+kR|1@?*}KM?!mf z*fhEs8TzNo%wj06%uP}RntE@8T%*Tj^>}UuW(Ec(ZYgd>Fu}kHlw)9EWMpM1N=+-) zLsH4e1yKQ3z`!7||9F(f{)*c`VJ;3X0jMZYS56{`U0jr0%nf2NMK6juU!79^lz{;N DDJM!B literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.9A696B9ACA5AF69C.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.9A696B9ACA5AF69C.idx new file mode 100644 index 0000000000000000000000000000000000000000..17f9e8dd9847d32f0b8dfe1e7fbb143451335615 GIT binary patch literal 278 zcmWIYbaUflWMFVk@vO*AElFfyU|b|Zu!UydhbeICh*Vw;fDL+77}|H-G3Tf zXDF`BO;QBf-t{;8z?^@v#oP=)w=s(|iSvR922KVBCI$vZMplNR)U;wfB$bR@5EVcn v5LkL=&C1NR%@sglE)Fhbh#&({S56{`U0jq5G#dz*S8lz%jcH4&Hv literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_null.h.46DACB2AE1FCBB57.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_null.h.46DACB2AE1FCBB57.idx new file mode 100644 index 0000000000000000000000000000000000000000..78cfd3395b735b2fed4c325cd626c44ee82bade9 GIT binary patch literal 184 zcmWIYbaUIlz`)>~;#rZKT9U{DWD5gvaY<38E0DGW;)*%R9;eTEZoPE}^ z<|Y9RVkk;YD^>;4vbE<5p3FMCg^7oelb2HvBn1Loj3OK&JP~;#rZKT9U{DWD5gvaY<38CrBKKE9S@^cjRkO;9+sFTOyr*?7WGW z~;#rZKT9U{DWD5gvaY<38Cy;gm;)*%R9;eTEZoPEMh&bG8wrT`8oInKvG~(l$w(WViXr87juIcjGO0J MH=8b+zL|jm0J$JQxBvhE literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.244B2A4B8AE5E0B4.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.244B2A4B8AE5E0B4.idx new file mode 100644 index 0000000000000000000000000000000000000000..114645e136af954f8e2c49633721dfc25f832cee GIT binary patch literal 240 zcmWIYbaQ*bz`)>~;#rZKT9U{DWD5gvaY<2TFpv%h;)*%R8$9*&JUu;qHz#|XKI6Id z()H{5x_Xz+pY#D@&C^#+w=is;TrBkY($~g0XZAdqb7@M*-yann+kP}nS~TU%mMuSo z_VTb<%w}X@`6;KuP+XatqzE*(o~2Rc&9!_#ZU$xs1|~sCK_xK3zzLLNU|?iqWhhEb zE7n6&$;bs!0an1kpq>|1Q20#sBT$&1gI@?L3e=U82x1o(B^Psp7)(jhdGn0bs#F*l E0F<&wApigX literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.747ED4A2DA41774B.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.747ED4A2DA41774B.idx new file mode 100644 index 0000000000000000000000000000000000000000..949c5e658d6a866456980d671a11c47ec3172b3a GIT binary patch literal 250 zcmWIYbaVT}z`)>~;#rZKT9U{DWD5gvaY<2T0FVv@;)*%R8$9*&JUu;qHz#|XKI6Id z()H{5x_Xz+pY#D@&C^#+w=is;TrBkY($~g0XZAdqb7@M*-yann+kQMcv+BwZp}jn8 z9LJ8rd-+b1FC^fAZLgyrc=;ET}Vr~$FapMj4ePxa=ml+rUD)~B) literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/algorithm.4283CE8E04B88D2A.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/algorithm.4283CE8E04B88D2A.idx new file mode 100644 index 0000000000000000000000000000000000000000..09c7a80e8130537fdae7c4e57fdc454788af0b7d GIT binary patch literal 298 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 DLOTr6 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/align.h.80C2512B8F842646.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/align.h.80C2512B8F842646.idx new file mode 100644 index 0000000000000000000000000000000000000000..c51d02ab9bbb378f2bee85876b039299334f9dae GIT binary patch literal 852 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

bwC3EnN6ih$D#z5ru0HE(zZ3| zc8@)uSOfvJO0ZrfxZ_ZUPPymj$Glhk)=c8^`Jw2>bpy};uaLw?7{*kZE4XXeRe|Lx zEfpM-%R985JGAX24tpyAR2nNLV6_lfEkt6wIxWd#Sk522uR<&~3m(maIsXlNJP@oywfeT+k7+)00_T`fwp<}9SLlIv5V)vdTQ9hn&?RD2iP!_Po3T)e zsuX+R-8E7=j|ZY3rbVPpZ~{tO2_2y{=-c{8I7wjNf>X5+fZNKkeX1@OqKr6|lK><& zut@6ELIW_tak)rxDv|~g_+l-?Fb6y7f|D2**N{8r~OGVO8FJqzPf+;$VQ4oWt0&nEs@7jSq;9j_2id|8c4 z4J;>JOiOL1j?L5)n-j*R2e!~IrlsdHuUr;nn)(^$b;exJ(Xt$Ed%ZI2&6AvOe)4+= z5&KHuuLK7?5~vqQR59s=YvsV5JuZ;|B-0!^JW+MD7q)zWbW@Ke8i2$P+75pyjJW*Q zLI^1YY?adB!%Tn$3>cKQ9_}Ib^T41q^U#1@JTNFNJajc_@TksLo{p-AThUGK=7`6~ zF0X%Ug27H845PFGahMMy%hu$Tc|3z*{_jEr=|6Z-+Jop}dRXh? zahpq<-s)kl6PcGrT3`IXHvq7k1WQr6nYa{eV?wS}dYE`h(EA`R4I~8LBrM~=gVMsp z$irr$POmmD(Y3MD1wZacSB#x5n|R3+9~Gz^B}0njf}zEsHDs|_a>CvNhp9Sjmwa&U z&>57xv!!r6SPthJu~&Kz_3l4eC)}EL{J-BC8PHLkJldGMaS56V-?CLxti}!3#LgHS v`;qZ7+TxAWz<&XM>^R6Vx!^0w&c@c>y6yk$RcreLpwYCKVj7LL>D&JSwb~$! literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.72E7C35C664767C1.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.72E7C35C664767C1.idx new file mode 100644 index 0000000000000000000000000000000000000000..c39f15765bc3efea34eac20e1af5b147d7d5ed7b GIT binary patch literal 670 zcmWIYbaR`=#K7R3;#rZKT9U}Zz`!63#Kk2=nJz#&4Tvk|Bzv4bN>v`2b%(RF}sn$99?~*flJs3F!C^&D4J-4q(C69>3x<`lcy0-Sd~Fl0W1b2HW(GJ z;V+H0XXIj%<&c$z312VLn0(8AZX^>AlfR0;E=-t*DTp^n48}X^cJauC+W|>HMF9c< z;xJ(zreMBcQ5a9N(q2V%rDhh;US$zwb(rw}#_JB{0$KGyVRJ=uEts%(ubJuGH;wH; zVKYTDJ(%#MzJHzy#na{kg|{*?Y-N;#NgOdXHf6tVxF0BCp=e^Dr3;8pB<2?1UcY za!0WTK)r5~Zptu4*+KDomp;Y62MW82xWa9!5ofNQ$^7pd-XJeZ%}E5AQ(Tl>42~5> Vn5hg5Oxjb^1Uwhb;ACWE006o{j0^w( literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx new file mode 100644 index 0000000000000000000000000000000000000000..2d5f581b94e272f0fbe2d4dc00d67275807bc28a GIT binary patch literal 488 zcmWIYbaQ*a$iU#7;#rZKT9U}Zz`!63#Kk2=nJayQDD>u=4<4~fz{ zHknH*{ZPHM^`%&k?3$NqUH|juawyq7y%XcNsO#+BOy#>DR6a=c2Z_dS45>bB6BW$Q zUK-;mz*92woIh3xa2M5UM?OjWtY@TxZ8=C)Z=)sKZ` z&waE+Gs2JW>+^^AFD;&ElK5xkOslgt@!QVkrJh#%V%6R+e$?{I%~|e60V~x_Cx=)u z6j$aZDFR)4`plc1VRFmY^DwXic_6?p&nqv?z{$kO!o|kO%*s%dnpV66D4sXr;QS+# z^cfhr*u^-+M8Rr-go*7Dt{at6B8)uj@}lz6F!TIpU%Yq3?XxscSd~GQ8>afho7#q# zOW(=^4N>A$;)e+@m(u8GTPsozR4vIM$qN&P8OF#7aTHWM|ESTv!AS+emwPC8| zryg)AUbo^0&}<XSD>Xl|s=B(oVqB$i zYtp1sO(83i*chfeI~Xz)SLP-G4Q41xO)K_iW?-0mrY3Lm6AlJO7A6lK559`-2k*4! zNi>JsZC7h=Wno7XKB9k1`|ZOXbm8ZfojmImcZx9bFd5nyy1@+D#F@^(`8`MuDC{Td zCkGSOdf(UkWTvSKn%OU_r_2#}=cx9a>B^NU6kj&Dx+UZ(vv9!*%Y(q07^vROd0 z)%nyFAtp00Tzywn-W|Q78BMj%(+$aUp4@Lo6VCf|{L_`ti+yOqtS=4s)moeOqY2O2 z6UM)C(($Qi!qE(`oJ3xf%taHP)c4O*p?KPSpaWAGQsrO{9eDZTugEtauP7JxplUjsmpRWiDro9 z1sN%?8`4+Ngqg3*&TxNJdJRoDH9;xv`i5R~;maSRYd4vGxdwEJfu(^1%q87U8%i~w z$=_lD3dof_?wdgn{`gClM4l#YM@*`XB}{kHG*VjKRRbRJZ7Y SO^l)CeP$MBMg~yUhXMeGg>5|m literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/allocator.h.D31E7B8BEFD5AE94.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/allocator.h.D31E7B8BEFD5AE94.idx new file mode 100644 index 0000000000000000000000000000000000000000..dc4a45eaa365ec2d6ae240c04a54ccc8b0d71a8a GIT binary patch literal 4146 zcmZ8k30M?Y67Fio0cKk68F~h}L{ScffTL)lK|w#!2#BI+b`kK32djc8#;mRk;=v&- zAi)?21duGciqS>Qda#~}W<3!%>?rYqRZt@)Sy?rynb&2T<@#mG#^3anX^ZNC;|zT`E^}x8wB#6LutRspOVxXIm*?fB>gS#t zcIMRj_MhucG`5sz+p;1)KW;L zct7L4l=eFXyT1}nt?k=evii{UtXV@pJ9@!u+L3X~W5W~tD~9czd;iYlW<`_cyKgQj zMojwfiz^k4QR1qBqcx)=mVP@gZEv%7_J=cEgO_|fQJ-{i$#AVzPi}a>`tFl&<$LUU zn6&d94|mO$5~l%nK38074&Qc~+Z`35($5nHe7{J&XwSH~Yigs{;5@rSdE<-19V-9o z@x*p}+1OKiY)4u5bRYlk|ANYo`L6F-Vt;LM&Z6iCkM8eCobx>Ed`ic%d6yenDz*(t zizv^WUs@HrOf_|6=ctuwZOuN}m;SIKcGHG?v+pf6x`mh4gpEFbNHHZeo}Yi_N&bcK z+11{+L%eSp4KMb%FZwddLDx;*6~kb+78DhD<$RT3@iN z$F=71le6aSeAVJ4)g))j!r5R=@n_HG{n62i?Y3IpaS$g~ zgR&azB|(syEdA_NhcwPw-oc*}OL_NF-d7R?v3fjt;q!y-E)Kj0dT9X12GB`@AaQMH z4sags{nVTmA^D)ohryB{NaqJXBz1;$`l$K-0i2j9B!*ZPGH0D0raX{f6DV+=zMR+v ziY^c&!P#0tUuPFk_NghjezhagIZ(;_;4y_@QwVmFAV0VM_T9^KRd)mN7=)C8PzE8A zAjo;ooOY{<9}MQCS&Oeg^$MINL68)~jit4kZKKqjH+tC$x~~iYP_|-CnBZ&`JZC9fXGFsqrS-e%THfA|6OFvP5xa~D@)Q62?15Kf-Pfx5eweIs z5X!+#5(N3<7LWCpGEaXbaPHV6CQzF2C?@2i4#xg+Gu1ToPioF9kP{Q!61*%6`8cp+ z&8Y_qpJicXF`8-mY2KEF%-*w-<{X)Svyfdhi&tjx_97Dm8MS{zWZR09CFb@K#7(?v z6Yneug6wZuuIcUdDAn>#SeIO0nTuYSAV^JUBKZB>zKgwgCA_i(AxseD)z=x?v;H^! zf{_g7#3FDj!X{*bAiILrP5%oy8--Hwo4(B*=!BnWa&h~IxQ z{NDH2&Is8Ex{c6Z5(Ft<{$ytG=3ayhKu8|w@({uVK}?Tyzbo(Ba>rakj0jX4kO7$B zY*oms9N6|LPK>m=yXoytGss3P?K z+y3j)<@Ev6-ytG4ZtdU<*kThY&lX z!A#ABCsxM$FfOKJ{norYVBi;ii!mbxJA*f6geV%_nE9F95H+J4M#z*XhjoLV{=?_$ z3e10uU5qPj7cfY>9B`$miM4S*<7!G|^Nl`^p6W@Nc#Tha#ix8fx(JatUW73?U7V;J zT`|I@tJEH@sSMW4S&utHZ9;>{5wSQvHd8o}7_m1#Hd8kRx}l&r_TN)F@~j213Y1l# zCpUsv3(DFz^?d;QKqK2*Ah-o0WxWl8+uqb4g8CtN%Jv>m_sBYp3k-`53Ca)^7<-gW z2#Qyb<^TZ%iLObf(SaV>z#zkfzi)iBv}-{n)-2jC+J!ntK=!lS2rfj7e=c|x<(0m@ z5=&FdbG7{Imx%@rI%Z>r2x4^q`^_a!>+5X|w!O#lhW!(e@)0=uXD7wK#w*LrC}kJ*5u4A6i>0~>2pMH*{(0vl%3&NR$$2b*MMpb>@!HowR~ z^+5xhT4bPcg$6dH$UssjhzaTh7kVS`j+S{PH&hX*i@=4lXRf08JD;`-|3@KaU0Vm9 z#4!Sn1!V)+)0{Bt-VNX{>%R?Mz*IOkf}V0CAZ1!NfrETrE4a3T7m<&E+~d~@A+l}) zR}**U0{&)XP|io9V32k8MK5=mkso5@ zhZC96C!1`~z&!>OADn(-1qzm5I~a?|O#*Zj$GzXE8<@GJlT literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/array.184FFFD3B962987A.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/array.184FFFD3B962987A.idx new file mode 100644 index 0000000000000000000000000000000000000000..318f2650f7571701254b9499fbae7cd500095340 GIT binary patch literal 11372 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 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx new file mode 100644 index 0000000000000000000000000000000000000000..a25d70bc9175fa9617f9228a8b4329425e4e7de3 GIT binary patch literal 558 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 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_base.h.9272BFEE4EE55D68.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_base.h.9272BFEE4EE55D68.idx new file mode 100644 index 0000000000000000000000000000000000000000..06a8a70dc48948aabc97d53031239fff1caabc26 GIT binary patch literal 8884 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 P?IZOPQs;k4>H7Hx*wOZZ literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.2A0580E3C1CF977D.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.2A0580E3C1CF977D.idx new file mode 100644 index 0000000000000000000000000000000000000000..898545ee79d16c157290cc7eea42e20a36830908 GIT binary patch literal 404 zcmWIYbaU%rWMFVk@vO*AElFfyU|y-VlM zc%Res^}OmIW?ICgRO_7lcgdMaNq>(_`g7;ZlOJ>bJbANa(UmJdrd-)_X3v$Ry*z9T zJu0GR48@hXNkGFGic-^x{{m^r_gmy=GB|TEaxofk7|4R8K)^|VvT~}Tg)UIohQmey zECwWm^SheWtfTdS!e$(1iZJ21yX|9Ko4Z_q!bTiMaMfpCwJf(gm7NU~w&t*wgQ?D6 zcs*b}^QK~;umy(&T)5xlos!SVs!E`+C5NR9Om*++SBW0|kLCh}tvIaU4m|bs=5!CU z`I~{lh8%`)VX3{#?k|h(JqQ$*S SgBXm_Q?n-W&s|!=zyJUUr)nbr literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx new file mode 100644 index 0000000000000000000000000000000000000000..ea465753531c5901aea488023b3c85726945ea19 GIT binary patch literal 174 zcmWIYbaPwAz`)>~;#rZKT9U{DWD5gvaY<387m#)Y;)*$}2NSs(6nNMI^i%H7pYXyc zsQ7AvZ-Bep{_lrWPgyg(=S^A?CsFKexi;`<&9U1u%X|8guY_yV2U!G{O5d5L{^!1y zxL|Q*ZW7QihN9H8VsRk7)uozeccptMBNwAEhp;k83Ji);a}q&};-chYZV-bpYW}k~ K;+&jQ85jVUZZntw literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_word.h.0B7FB187C2532DE8.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomic_word.h.0B7FB187C2532DE8.idx new file mode 100644 index 0000000000000000000000000000000000000000..f25658aef95db0ac9ac81c107ce455648c069af1 GIT binary patch literal 224 zcmWIYbaT7Gz`)>~;#rZKT9U{DWD5gvaY<38ACPtd;)*%R9;eTEZoPEz44pn(iUscFToK$b8jtBSeZjv5he^YEhiDgDK1Jb<_0ks=eBlqb$t2B#J~Umsl-Vr literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomicity.h.D4655A6FAF2C5588.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/atomicity.h.D4655A6FAF2C5588.idx new file mode 100644 index 0000000000000000000000000000000000000000..da09b46ae1d349d6d17f6dec87adb8fc98a48e41 GIT binary patch literal 460 zcmWIYbaOkx$iU#7;#rZKT9U}Zz`!63#Kk2=ne{+gA1GHbXKvqFu4V&)mRiaFvX}fy zw%=Tv)Usnbq)+4-?At45^W{P_N3rCL_sOd!GVNnj@McPq-sHUD>*LMr@B9xex{y8R z~|oJ0_(xG1^U8pL39GYkBF@9?YNEX*uStPIQ`F$iFV QF&G#?u>=K7Fa`qy05M;A%m4rY literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/auto_ptr.h.D1AF7143391B211D.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/auto_ptr.h.D1AF7143391B211D.idx new file mode 100644 index 0000000000000000000000000000000000000000..268879c3556b508aee6e608e9266da8c9a786fb7 GIT binary patch literal 8198 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 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/basic_string.h.636F8FA9AD80474A.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/basic_string.h.636F8FA9AD80474A.idx new file mode 100644 index 0000000000000000000000000000000000000000..159e0545c3434ad4bf90a8aa5305ec7c884ba6f5 GIT binary patch literal 57700 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

@*^dEH>GVQFobM?=TF=1<>+0Ca(*k4n%t(R4}C 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 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/basic_string.tcc.2D0C76EB3099AFF8.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/basic_string.tcc.2D0C76EB3099AFF8.idx new file mode 100644 index 0000000000000000000000000000000000000000..e5ff0a005bb8d59a21257962b89f39468ed8375d GIT binary patch literal 29240 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 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/binders.h.C589B2454DC21565.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/binders.h.C589B2454DC21565.idx new file mode 100644 index 0000000000000000000000000000000000000000..8aa56c7d89ad1978ca360b399851c695a414da15 GIT binary patch literal 2442 zcmZ8h30PBC7JfIxu;f8r5{LqhVigcjKpGT5DU6kX3aFz+7Fm?VlrSs_F+pTY0gK8e z3}HzC1C||O)UgQ6pduoRf*>}Cs1*bmWdOA*Rr^A?)^GBCIp@3gKRM?==lnN&U7Vbf z)DdJ`po<_Zh!;Ra5QL6@xx6Sg89%&LLl8kx?*6uPnGH79?J*F*XE2%T*e_O`U7OZa zp6lerHvjrrmWt8LrM8+d+aJ9?OwV)Z2E#wsXq)Wj?{A5DU3DVcJ$$TbucYBs?Xv>U zQrq_rc+27L;}eCu#6FU=2w-@1P+ zmKuJYQYbKPig<_~4AO~xGLyE-Zo>S2R=4($K9Bas`Ayl0$!m9Jd-Z6N{oE4~qAbUV z&Ywbcb(ddrswq50?AZG9Rf~4BQRliL;jVa7*WbJ4zO!hSZ$5*Qao|dt)Y&@Fq9tBE zDA(UX?2x>|v};PNSL-E6FL^LR5>6F9u#|G&ca3#VOnRtn+jVQMnwR}vylcm!Cci9l zMCasu)|v72x@FE||B=X&H#8%4UDBd|?kq^vFfDNyw7Ya_<-FCPKjXSlo|UZ2RJP^z z-!eX}DI<=S+Vu{L-t=`b3$1GRPK)@qydiU66Mglmi!nOZ{WA5GmME*Lv2^d8{JS2^ z)RqXp9a~c0TKtGcii6jyo-~^4NJM|FQ@`*-bnf9*t?c_c@-Sl$dx0zAqDR3M`&eZ9 z<-jdECv)Qs`u~D2tmIf;RkwCU4wkyTxF~vV5wW&hy60GCkt5U1Gu^yY^XaX*ZPN9P zMmO$FMVmFXar7$1BS!4+#xvMQ(mKeI*UwD2v4UbF$*v7mPqtQxm^5N=()Zd|QFl%CvTcrT_s-%(zaUEkAK%ldAcSF;T0ghW<6OJix$qPZh$NBUF# z<(>C9vA2+L+e6PMM5^)|#rSmRQ!WK{nYo(xPCWki--Vl=t2OfT15UPV`Ow^@LKiH1x|1EV{ttgc~S_Bo5PH}Txv39gwoS}W8(U9idY^#VyGfuy{Skddw=iXLjE9Yt1PiYQOBx zoHneExcu)2*$yrT5+C|U>(<PAmFg?M>y?xVyWywS6X#u#-Js#vkDY(to{Y5H~4`zBMbZ}(5P3VsGJZAM>zyX#dl zKfL6XcSrr|R*|LOx%xwIi(CEeDt?hX>$`EhMABN+JnlX{zftZ}=})s*S-Y z)eAjk^r6?iaC_1(Z|6kO{EoXU;}9QP>%Y!M@6i_ZB~O@c9%!zJ^W6H_BPXL>y5GY1 z+|;3UtG;on${4R@2%pP_ORrcPtVZK<&c*}JOSC?OD-1g%2MBWJoKw7K+!=k zF(8QnWziw{--Y7iXIeWHG}o|Ci$K*zun1}deZfGuv9+a5u<1fD4&xbe05u2D7aa^S zyllqsb=we&5omab43K0%Ytg}w&FAF-0xkAQRe~lR!7_kG2A)Of5Hg9ViXdRglD@+? z&1U8cGw?h(6Cp{cwP0WllhKuV==uI^1_8xk9*IX;Fc7{=V}-UO-g#OC1`bDBL^2l) zgo%F9If1OU5@qsuQoI(XFc9{5Sl;6l7FniB(7*|XYJ}1kjDnoX0=bYQOOSVxo?$#a z-efMY%mvnq4(7OL?sl}EicX-2I-a8%5UT-s(II34P}Nd2ImWsf^nIEqODMGB~}9TY1Alrlhtf-w<(v&OK}?v zK6+^;T_!^RuSpcE0^};7{dpr;9nh=;40wi};T04zgF}Grza&%fHmc z(lW3dE?z(O{8;|k`ca^P*{Ip*L)vhA__gwJ!Lh)GaX|T!AOH*C(^bA6$S5j^6Yv$D f7j}j~;PVA+k{flHOI9$z4y68+ux#ICFoOI6|2LYX literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/bit.E77EA5629EB3D467.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/bit.E77EA5629EB3D467.idx new file mode 100644 index 0000000000000000000000000000000000000000..d4c099060b4b372508cc6ef17e4a62f8cdfac56a GIT binary patch literal 3644 zcmd^BZA@Eb6u#&5igYWN&oV>`rKPn6_67R@w}60|6l7*BZf=+@$XFtC#8G}g{D`9= zI55nhGl9u4ZcVL7D!OjTni8`p>$FlvVSIFmvJpOh41!2VoQu6ImwOU^`HK*5a@#)l zdCuGOp7(jrdkYQw_U+&pCg+5q>U3#kG0QMaxc@d*R=m02|84T$RiBsS{^B;+`vwQM zZr;-8ap(8w3k(CV9NJlds`qkA{<-1~3&6a>q`ZYc^Na@@Qa-t#Umup5U;kH1;I!VF zoLifCl3^~J5}z_wpMJwXAX8C#(pVqFFs<%)%fEjR$N&o-)Ot`?)$senq)SmIYubTc z_0$a}kcDR0-VCV%!GaC8+bF&T+${(Z`A5J#qPPoHU6>&9-Nmg1wyu_adR2z6rYpBCUTBfYWd01L&7k1t#a}XihEf~FJs|C&*bAH&R8Q2reh9cB zicKgrAsMe0xmqOpI^^mowxZNZ_3g;DQ@#Va4vM`f^@@5&*3R(X-gzjKvCsqR9?*!T z@Pf_@i6R~X-4MlNARmKGB5y*q2}yh{>S~e1*P*VC;s%sAAc?o4+DhZwQP)oO9jNP| zxD(}_V!S%zn{&R<0f8~qnXZ)V?VT2DOg$lbf42Le<&y7YF<{@z&k_3W< zi>SGXS^?*e{Q7nOQi1|DfFe*4Ay{qDb4u6v)0leAch#|)*)mm)Aq8ZR#-u5Q{K|jc zf6V>--)S3IXoKK32o>hTf*FF$5G-N~C@c^sVms*U)S3>6aX_rdJ0ZwPyav z54ZU+MZ}{h9~G^|!X(NkMSOiz)JWQgiBozB9BAJ47%ie(+Rrz#wNt=^xZhSl&V z#PVg=?}-b!%(MjXD;D1dDj{)x#pGsKu`XYzNDFNic8IrAy#wS9s&_)9Q`8qRGuaVS zm94A#@DXNjDIV=@UG|Kwje5WgF=pxk3j|rH2ka1Rryg@akc0A0P&lc_#z8$!+hY@| zn`pbbhU#k+PvYK5%n&Nl)cDw-G=A3Rui&VJ8I{BeHS}%mn#=hks>5HyW=LqJ|6qdz z8^zP0ng+EnA`9nHbsh<}qsmUP5A{B=VRoIp*|>1R?O68>QgI`DI>fZ2%U?y-VlM zc%Res^}Oou?W?1y>!o|`bix6(*u+G!{Io^0C(jIzS~z=N_^SC+B7@e<4~d)<6*Diw zVbZcmrR(t_S@A?#Tmo3nalaYr>$X>_;Bn1L13(xc| ze4VVz#Kk1bAuA0LWMJT7QsY#Uf${dQJh|`fg$5&L9wucLWkHxQ50ep#5faax#U0M8 zjVwG{8vDhDk&8*3LtFx;WoqEsMYq0MPXbzJ#bJeHofoGU+`4nk&r_1C4nGAd(&o@c tQe?_$3RhH=nv)1JwYVs`SQ*4%1`!Yd3~Cr)GVDLyx%T7-0VYOf1_1I}T3-MF literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/c++allocator.h.20AC450864A96F4F.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/c++allocator.h.20AC450864A96F4F.idx new file mode 100644 index 0000000000000000000000000000000000000000..8e4373a4d4f170a2006c9d45dd9ccc8d6df3cdc9 GIT binary patch literal 200 zcmWIYbaOkvz`)>~;#rZKT9U{DWD5gvaY<2T1dy%;;)*%R9;eTEZoPE?s literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/c++config.h.BF2F33665D7EB4A5.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/c++config.h.BF2F33665D7EB4A5.idx new file mode 100644 index 0000000000000000000000000000000000000000..7615cde09e98ff611e4d19b279d85339afc32f4e GIT binary patch literal 10248 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%0D)6@OcdEkv++-q5gAiEzM?# zk1Lc=LCcM#TJPT03tXZxNERTOUXl-uZ(Q@DGC&0Vp+C{k!B%4F((jr0xLFC!^mwWW zJe00g7hJ&LISbEeTpalHVzIVy%S8;XA-G1Xki0PYr_DjzFXGAOBgm(5z%$o0X4mMh z?3&Q@6Ibcp*ty8GO%*leX>tU4=Ox z<|klqQ_9_>;8~Nl{=&kzL=3zQkhj55ov4!+GBuZ*O|M}PAV2`!N*WB8Yz;rY_qqWV zB||r5ddl3EF}LY)hG%Xl6gL#4%1Qh|&G!AaT=1*xB?42~RPVF)Z??=otIeI21j{0%Th1lfJM?_G_ph9}>-_#b-Z2rgUGzEV7 z#Bk}1p0YO?`AvqnBG2S7@*Mr|`HVbY|N8?*{(ydOsuzB`^ZSuBJmP79)6h@1ZWI2x zb^clL;&cpd2ylajqixTKNqkM3lB0**|>j&3{}ue$aPi;Ny9?li=b4>l}gDvt};2Y03_&7xK3?e zM<;x75C7?p;SWU#tsJyc(T^vGOOxY|=VA!~ECkSu#4~qP=67hZT9Kb0QgkHkE|zeE zgBw(9J1*De^^Al(3?2*cnAU&mgAT`Suf8jSRwcA5$y!!bt|Y!bFRkNljv)aO11TBIc>>5W$(l@F_u zJiw1X3-DPWcMk0vT<4CuzwQB^ZY6?B{VbWM(dN-CdCKbAe1lF_MOZ?#5~68smuc8K zZEb*!2=)rFmlnv4DOF?JC0C2E=sXVc^iM%m8nY@I2cxfj%BmP|k8htCXE}0~lj&!i zkL)%pDWDhwKNa|?NKhvVb;k-1T`j@j9S84d%`@fjfU2EI{|6CDh@e{bA9}ZQ;K^>- zhnX`RoT1KlVoX~71k>pv@L<7%C0^OpJv^+W)5tOmJXPSSvd{(o{FZ}B{T!c)z*m8M zX_79i8Z}Ouzw41GN(mlxyPQzGH>dKisZTH{H$deE#9AL%zV7IaXCk<$Ko{u+*(&D= z3p#b`{tpIypbyzddM}@K`CQF;@$n;oN7TJ{_AEa$yM0k5220QqVqN>O+fMZNNvy(; zeF1!F9k$i&pKoj=ceQKY!rWS)Q z9DJeHd}h6MbYn|UEmr0%3uoyVJX4|4R?vNO-l&Z4pPG+*i5mt31k-iF7maH3n>6fK zeHs41`?!zTa32TzII>baQ=&01p{0@&cWuWn>jGY4ogT^1BN-_>m(R|*(0u;92(p!s zO@Dl%j%qfY7?kk}gGd%4X}KL8e>!fjw)blcj&g96x?aE`VSBJ+a|2c;LXINj!*w3U zGx2hHyqt`=c*mSkPbx>e!4eXbkf0<>8kGI@T7JS45!4G%Pha~kNq+Y+_ZzoH47Q`~ zq@Zg`t=isV$2Q>+ix3p)M|+k=n??5p@@0uWp6{^41|Ayd4=y6?T8wR+Lq+f>`jdpX zYS|N%6uGrUY_H%N=%tcpO4fJk{(kQ<*l!5?4M~rb(L0p8=4Of@T7YPJ4gJ^nMT%2i zmaTZ!6)aTfyOF0_>q&k3;pOn^FIN_|VhK+b@Kj-_GsuE3Yf>W8mWrT4fhrW_mgSGM z+{E5pMt#8G3I|u{E5(e_Yu*@#7Kva48qrlJX!*y69E%l`KjFt-QshOq{Eu94)8`+~ zw_(u0pa!OkuE)o_D@Hu$xzAYnK!8Ac>xQq!)!GcI{Ke!Iz3wlM`-~-ca^Ok#qt>j< zPVDC3FBrT4ctPvc`tqExUSllUF^FbRG(!$!7r9COtm@K4kY|AM=+C91=GI(Q8hdtN xaE#%O(H|ylSn<~~QR9spmT&z3sS$MgOC(Ik)^%O}T$5~X0IWj7QlOy!{U3_?)ZG98 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/c++locale.h.53918663E9B050A1.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/c++locale.h.53918663E9B050A1.idx new file mode 100644 index 0000000000000000000000000000000000000000..c70061833e98414f61b544d389bd660a37dcc369 GIT binary patch literal 540 zcmWIYbaNA7VqkDi@vO*AElFfyU|y-VlM zc%Res^}OmIW?ICgRO_7l_sN_;Pmat9VaqwCrE})dS)Y<(qt9O2C6_;YP5i2wI!)y8 z4*}&bMiLAW#fsY)iYs%IfQB*@rKS}ZF)}dde0q1YVSNibGY^xVhMqY{3IuqV{51TK zcEJH>frg)ZkDToFJhPbBpSxQZwMoc_Rh75)ZFkv1hYX)mL@7&=E ze%5#ye?~4QEe0;?{Ibnan35~CR-vqi>heHQ0T$GxV e2(qZSD7jc1!~n(u3^0lG@2^ik&%2$GkpTb!{%l(S literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cctype.7A2E5B928BCF3845.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cctype.7A2E5B928BCF3845.idx new file mode 100644 index 0000000000000000000000000000000000000000..8e21cb53bbd13f19ebfacdd2bb867dcb87f2dd11 GIT binary patch literal 1414 zcmYk6dq`7J9LMjDo4Mm7pE++*43i!{(kK+EW=`j(Wh=?bY-K)jBg7uuKbb#Iub2&1x#9$jfpj5Yv#a-xb4&Bt>>tMSb zvDKqRAzfKM`s8(**g%Cr2b^5ii2KdIpK0sZ<^iKw#MBYy{OP8Ek3nO zk)Cb%wSI1f__I~l+8VfR+;?exs;girGVQRzE?h;HJxYKt)v?@O-N7 z`tp)1YeXVPAcn?pz;I^S%l^LJ6p_q8AcdxIz$JTg-KEE>G?BO<5J%%UV4YZ6)7i8l zUnI^5#L`#}__1rFS$TNJQIU8dkVq3bKpp&GZ%o7!0Gtq5MOSgai`gry%Ddmyi-aPe zrfLp277=x^ZF^~(NE{J}rqLX5{QEbn`_~gTk+>lcPvbdYUAN2Xj-JuyB5_ARM|Gb6 zhh@&nw%j29rz(+8Pt#g5^d+cDaY%c9cYyVS-Bsd3*!#m6M+`I@Eyj5-ugca2w);yc z33dwhofZNPSHH-|w&bpu10_6-8bApfKbEMiXHWJ7x`hMHW{NR70W@;~V>AI`o^F*& z+ZSI`ZGaMDC36gEGz?sQ6j8RVLW>R8|NNepC>tgYXBZw5jg^ literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx new file mode 100644 index 0000000000000000000000000000000000000000..748f2cc2d593941be55f3bc5083c3ff73ba7ce5a GIT binary patch literal 3206 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 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/charconv.h.45DC5854263DB0A4.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/charconv.h.45DC5854263DB0A4.idx new file mode 100644 index 0000000000000000000000000000000000000000..90e50f373e2559893e2ff14e6e8793607a3b7ec1 GIT binary patch literal 2162 zcmWIYbaTt%U|?`g@vO*AElFfyU|y-VlM zc%Res^}OmIW?ICgRO_7lcgdMaNq?X899i__&mN<_JZwy-g0;QAeD*31?lzkI*t<)p zaTe!m&6PSHty*ae3|~&_O=Kvp%uNCs%}|t@R=ka!fuX@>vSizoVipz_MkjtJfr{=2 z@3iMhG_x=|^E)H)T=-p(c&_}eaNf=Zwsp%GJH?q<7!#EfRS*Vb$Y&@ZcsW8j!Z04U zj6oaw@@y3nw48hP)bLiWpC$=fHdf{5yxcZNlWd>GHNDSLYVtH<u^il&IqORv)}@gu?V0;Y<8YTQc#NzgKv)kQ~6 zq&$S|VAZU&S5aN5nFWkfbv|`PNQ^Qt9Q3j&u{roSn*^t9ox-+0HMa zhXgHB>CZ3RZd%<#b~sEb-;wCVb7B%+zqn6*wjkccXzaT^olJ{NYJt<*NoG*F7YV|TFyGYnRcp5^Bvy6+M1yG=i0eTpUL*V zY{$L_0-JTek!?V0pV+zMGU0#lIClM5p#YM@*${+?4h=2gb-%Q*KmoMV?WMXDw KV1|h@FaQ9G+XiF+ literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/chrono.F95978433952CB73.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/chrono.F95978433952CB73.idx new file mode 100644 index 0000000000000000000000000000000000000000..20d8636e822e081d1b3478a6d438abdd1f752d0b GIT binary patch literal 274 zcmWIYbaUfkWMFVk@vO*AElFfyU|y-VlM zc%Res^}OmIW?ICgRO_7lcgdMaNq?X8Ec&yjW-kw0l8E?Hv1w^yOT~_-KM|k4WSPJ< zR>QfB4D2^_QW=UXbCZBZG8Cnz6~_VTxTg16N==?dj6BRX3^ocNDG<=Cv{zAGshI^7 zw&Jr=ga|S)eDDrVTq1TQmywHEjzdlyCOoO{pQl3cwD~~QOQjf=O3A?_ic)hDLG0q9 eK(6#=eauhQW{;-U)>ygoLC) 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 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/clocale.8BFEF3D6DA37B94B.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/clocale.8BFEF3D6DA37B94B.idx new file mode 100644 index 0000000000000000000000000000000000000000..0ddc981135f8535af54e1e93bc7c5fb01e7c1448 GIT binary patch literal 476 zcmWIYbaT7H$iU#7;#rZKT9U}Zz`!63#Kk2=nMFW)D-c)AN#5Xj?xerp8PBcB9;boi zrR&%Ab@eWtKjVE))7SH=f0$_zlTxj7a_tJMHK!DUsw5*+wRO%sI_pzXZ1mYnyX5j` zuZg_Ar*t&iK2HAp`I6D)#yiz{=Jl7Y6G zCoKQ^$M>y}3;;ySl?ea< literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx new file mode 100644 index 0000000000000000000000000000000000000000..8c93363d6422770296936fc4b0d3d0e65d86e28b GIT binary patch literal 274 zcmWIYbaUfkWMFVk@vO*AElFfyU|c3%ed1kif9{k+;MpqvD{oU%r0z?(Y6#{CQHbS8&i*ZJjfZ&ia%T z8-4cDF1h^K>+57A@2;=jTHHb1UyVGjF67_Jxk8wsc$?8ehT_WHBt@WY3#KmIzpW;? zlAD2lgjke7v2Jg#iF<@=+=P literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx new file mode 100644 index 0000000000000000000000000000000000000000..7f0ebde7dfb3f07c86f578f5bbb10f84aee34bf0 GIT binary patch literal 282 zcmWIYbaNA8WMFVk@vO*AElFfyU|_ zOrmC31h;prliqaXP3ML!XK&c7I`e4hua3vFeJ}pAzx1nm`+?V`TdcQSvAk4VnVX~t zwDo<=w-`aes-@fvObiSxY$9y3V1j{@fdS}VMiy3vqSUlvJ)lbc>k^tPe!S{sgDClSOhE=n#I2QipI1O%{LGux21p#BI4BQpa4P;XVg literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/compare.EDA7854AE5DA59D4.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/compare.EDA7854AE5DA59D4.idx new file mode 100644 index 0000000000000000000000000000000000000000..68074f8d9c75b08cd1571f3a16a62e75a5fa2ff6 GIT binary patch literal 150 zcmWIYbaU%tU|?`g@vO*AElFenvW0=TxTGl42uN!HamAcukJD#7w_dt_U0+x4()lyq z=QMpiulk3X7BMN+Iw${q^5;&|kwqbF4F6<#oQf-RlYp8Sic-^x#esDFaU-T>7C)>Q mxfta*SgBXk{kDaUR)O24nFaQA3mn*&i literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/concept_check.h.39429B249CB86886.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/concept_check.h.39429B249CB86886.idx new file mode 100644 index 0000000000000000000000000000000000000000..bfd55dc89c47c343ae8fc5baef80f8446cb47cba GIT binary patch literal 320 zcmWIYbaS&{WMFVk@vO*AElFfyU|y-VlM zc%Res^}OmIW?ICgRO_7lcgdMaNq?XG+4JN|)1)6ydagXl*~`P0Q>CSI=FwT7l47IJ zUfLy>KYJPSHhySKTbjCznU|5Fs7!4oLvdwp63_yMqSUnFE+E~;p7F(E&lhG!E=GM0 zePxgo2&_HT&VIc1u`5tmjzdlYBFMlnG4j^*V-DvcfWn3xhKev@KeZoo_lN2&1PU8* z7{P^i=cxZ*B<^((C~UxCpa4@XxnG?BS`+I>ps+EAFY^0-SX#^%y68Ix5NdN@>wl8)G$*Mrcu?}erRB-dx^T zk2!Mjgh3wl-F~a7uUCpX^o1jc?V*1(RQlPbCIVs=S>^wN2nk5*?p8G;8;EU?!`K002jkFC zVC6av=F=jTq%w`kjKs)M18Lx>nKWO<;yorBJ)?To8-5N zWkteyuU1x{dyxeaNP1klFcP*4J3mSn2kk)q8{RPMnab{rAEv`?f@l-=NAv;`1ZfbI zjO|!##|p+yEOs&;?E9_Du(*clG;f{w8d z#6HMl><6)*amSgm^;<}i-1j~pKA!zR{5;PCnddnGB*60~&=cqC*)g$W zj-8k|d3Isq;&}v<5uPV7nP5zBR-+-jc#FBpq76IrmPIT&;vhtdk5)7p#+2Wpqhc^b OBg|4U%%%T|i2VWh4aoKY literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx new file mode 100644 index 0000000000000000000000000000000000000000..54cae7cbb680d9ed547329d18d83ac2880c27f83 GIT binary patch literal 1056 zcmWIYbaRtnVPJ4h@vO*AElC728H9njxTGl4l8J%g6i}dI&eUMv{L2mkZ!7DM-pR<2 zDs~8E-Oi@$D$45>6gnsDpTuqNH<8))9*5VbUz1+m!lshWHn^Y^{_&(?0^`26%! z-NbVYdi!3;KYlIEJvB?PDtBt|tOJ=9ze{(v)x4juU-E8acEFPeZ6#OJ7g{1puYy89 zu$($%<@^4r)m@)uN;Nur3_aepe%(^|Z^t9ITsEa8pXBGfJiPp*&zg&_p=k3 zoKYR_diQG@-vn)DX$O1;=PaeDIl zeuH^io+=!zJa*>FzQ=EL^fzT1iJRVZ`@N0lonzkvU1Mz_#Wttu5@mHpryj0cy1s|o z|G0Kf!Ef1=T9o6F-rh*Qo77tQuzo^t3h_i@GB9~1uD zd{RhdnELVeg6EGPIxPQiH(H%fO8MmvciDAy3jEvTopcV#*PRL6)xG&)-_?TU>9cen zeee?6;al6JcA_V*Xh&HC@El77|r zyncN0>i-PImAOevfho!Dv*3?EuWpNRGjK96@aXX9D1iwO5176fd01ICq}`YDdo0V% zzy(yGETpUnCO`^U!3s|B-T1cf^utVU1`ePCDIqBhFac7)3|5d*_)b`LI@ero26mtV z8zviZFac5kOuj%X!XBP-h}`k+9XA6TP=P*=zA~5qDPROEU?@sWD}D}it%>ast{at6 zB1}9y(pu66FspfZRJ2tLVJ?MviHQs16`(#4;Nh`ivXX$Xfi^?E1yls`6HJ(g$CAlX z62?2Fo%tkZu~iTw7mpB!kUC5lW-U-J$h$CM9v%xO3%CU^Ujy}mybMzW^D9s<$fGb} o9v*8ZYq-5Y|K=ouq>77@i@{pCVG4o%xVUb{ECH9c>n+a literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.D80F5D0FD57269EA.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.D80F5D0FD57269EA.idx new file mode 100644 index 0000000000000000000000000000000000000000..73346059b84e38eae3c08bf72140906ec5bda8d4 GIT binary patch literal 498 zcmWIYbaQ*f$iU#7;#rZKT9U}Zz`!63#Kk2=nQ=h628b)>Bzv4bN>v`2b%(RF}sn$99?~*fCt2aolRta5oGDqL$ncm|eOGa1ZW7P}hN9H8Vr!r)f@6$#TDE*tV&h~y z#LRn$S+Jt}!8`4F63sk}N0~*BGE0IKg8&cXVHVB9EV>XLgl}?~#R9=U&Z2jm#R$Pa z&7yf4p+2tZeU?&_rx7C$qZ@;p0!-Q0o!i|v*3XP!WMN#yqP2)c8)m;|rM-&kO3f^w zdKW$yMVR{EAM#^&$aS}O)=XJUu(8~Y{)-0^+h1Jr+qh2;*5 z1WaO5-#<@<;%W1N5)WAz96B-&QRO-hz|zLJrX@hY>-Rc5$TF5HRcnIG7BnURZ8 nfkQzGrXCoEIf)=naZz%yIEcXnA|QaVsZ)egoxNZcBNGDv_E(8J literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx new file mode 100644 index 0000000000000000000000000000000000000000..6dbe681116feeb4c5f581b464bad76ec84babcbf GIT binary patch literal 892 zcmWIYbaN|VW?*nm@vO*AElFfyU|~vPIgMWl)(PI~bbKEk4-}nwZJ>4{ct<+xc zi>u4zwwU6LQ$PIUNqkZJFl+n&@WV&6e#rfwmsiZs@k;3_Lvdwpl04A1_UJSBS2lG0 z=VoAHU|`l{(&Ppc44e!Mj6i9IqSUnFWk9Ku8KSnoz6)|Paxp7$C<%b1K%jZTT@%($ zJ6@o$E~l<2M38~O#P$f+jmjtyCLZPz*%D=#Fb{K?N|_dnmryOVKlqcTG*GW4hb1T& zz`%d@#d}BGK1(z5Fjq2Ea>ImUe*V2LcX6&ZP;~)Efe=i1|H_m5-d<=h0@|d*q9X_s z=3x$E34-%lob+185G1BHtiig;nd(JT8(mWyj|0@@_QAp`d+&?XfPJ(!{&eR{=K z6AvE%+N8{(4EHM2%#8~JI9(3`g+(|-;9jlPG0Nb&n|&B4oWzj?H_|EN^0d8t7UzM& z!JNTjFthtCcfD(~bG`@^cHnS;$4pAb?t&LioAh)2fplo-y+*9zZU*DQ5+e&2BoRWzfr-ep#15tiXaIW| mJXUy^%Vo>eU~)yNIf)>4aZz$HIOQ;#E&RUqy7fLk1_l7YV8Xiq literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cpu_defines.h.4E18A129B41E38AC.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cpu_defines.h.4E18A129B41E38AC.idx new file mode 100644 index 0000000000000000000000000000000000000000..700f1d23d7db8a07d084ce505c075fcffda8e5f6 GIT binary patch literal 178 zcmWIYbaPw9z`)>~;#rZKT9U{DWD5gvaY<38ACPtd;)*%R9;eTEZoPE4kgj&0;~s9Pf0~htQI11S1|$UrMX5Q7AVzUfaxpiE Q!8k{jDe2?M+Drxp0Kn!vb^rhX literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstddef.06546D6D9FEED08D.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstddef.06546D6D9FEED08D.idx new file mode 100644 index 0000000000000000000000000000000000000000..cd269f0aec5cd7cfdece020561573a64a9be3a1a GIT binary patch literal 2238 zcmY*Z4OCNQ82;YNK!zVN)vcMEGkVrMHxs(~CZyW?E;9KhyGG@2S=6uYGwg@LYC-B>(wvd0$t}p2o-bpB)%J z{^x?Ib-miY=?y>5-FrJ=W>TM3J}VV8CfomipAt1502l97_j9F7VA~yGgcp`ryit~+=IUh)j&=`aOdwzeTcger} zz&MOX5J4?)wIquWkl2TO=E#zNac=gd$o?4^4I`prQ89KtkXS52Qpc)te~MdnUe+G3 z=9Hs}=g7rJ_(brIVf>uKyqa3q?qyh-i;v~rkF%2WHRiRE+GvJ!kvcb|kI~07 zE>V-HWhiM@QVc_eXhSSRDbXozC^af|HsjLb(sT?NBaE{cN{>xXV8|3{a+^zrCc|y? zd9&wfm~y^u{_6}alrIcqXpwx88!GlImb+}pmq<$d87c+8Qjoih!dpOM0e^X|x3M$ODJX#rI(N7`ge-4^6(%E*%gZjXOb2cgVb;;zCsgxA)O%T`wD!M75 z+5GG+D=aff2N>%;R!MWwz6N4vKcl%ymOq)0p4^i`)G^*M3aX|nCTCV?ZB$?ReAU^e zfkkFAQ%75*uc^bxN`)>*2@(G;kXu2woLZMGN$7M;Xo1NVm`VjA{vZS%1Qo4q{f+_s zNb|0D$iN+dIv|)%m70?bEwn|J@hI>|K|$9-H=C?UXpK}z8zb2Rp(|1X738d5>=?&f eu*5vd@rMt8`@;OJM_D|l2t=;kLMYHd3fKSVR@Mpt literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstdint.91EF72212746155E.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstdint.91EF72212746155E.idx new file mode 100644 index 0000000000000000000000000000000000000000..d0f750121e3acd78c09d4e17db0d7b1894a52eb5 GIT binary patch literal 2584 zcmYk83s96*6vsdA%Io?77EruCK*&HL1r&L>z%0m1Kv^JKl?g!}60+!`0g^8aSypAD z978}bFx1o;HzGwtMNuItt&t&XDaRZq&`@y#ratq)5l4YWDlRhjoREE_#HKqq~iMgs#Wx|i)}>ffvqj!Go!6OcOHn2{;s*q zFne?C{8YBn} zl|xWMWY14@nr48 z{)w7gM$A!IKo(ki|KNJVq!AfizHq{K^4Lf^06xKaO=owMi>flG)~yb>JuZEjX>25gQaj zX{b;k-J-pAjVAXrBTgtRrAq}t?SEO8lvLlr$OIJpslTIXqYe%x&w6!u)<(M^B_lZdX@?H5I6}cMwwy zY@S|dKeu!D(B$8!1zWsq$wQqZEvm6>?^P(m-y;xXoPsT; z4~8gU9-e5^6OX=E)V{h0Ma0^es9=i|#2f`Iw$#+IyOZ8D=trT5SXm%RTUlB&Fx_IUo)yF@llg0~}l{sVzO{e%Dj literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstdio.E3D7014BBC7C7170.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstdio.E3D7014BBC7C7170.idx new file mode 100644 index 0000000000000000000000000000000000000000..b0d2d69ab7aaa50bfdc5462b2ac49ab99e54b82f GIT binary patch literal 4372 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 X$R9%sl~=)n`%R71NU2bws!;q7@Ix}s literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstdlib.73317090CF3984CF.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/cstdlib.73317090CF3984CF.idx new file mode 100644 index 0000000000000000000000000000000000000000..ad5a62531e7d5bad5ba7298ea6d9c9c415b1da5f GIT binary patch literal 4492 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 W!PS1Z-=v-CAO5H}wwxt0SK%MwPpCKm literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx new file mode 100644 index 0000000000000000000000000000000000000000..c15c43dcee500913e289797cbbeb950c26758d94 GIT binary patch literal 3934 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

(Clk#WdY@yEi=@d9khM2+M*4KvF6K@e4&zyJX{w z-~llQA-=Mu#^1WMDecyh-vHo~3dYyzJLp`lYQtdwxUfY)+qKJ&%d<<;Af{5cikdq_ z?+!7>a>J<$mZmI?S0$M{{C!IA*hZ;sztI3F^8yfz6IQ*3vNcpD(Udm>^jO8sfP*J^RH_3UHvv$-t~I^y`d(g>UIoeVX$_Z$ z(OyWM!`ba;0OKU*YIh?+!|QURMpg`UL$Ib5Y-VPdrqRN zB-->Gqt2XSx&7xF2&8Q0wT^~qx9^uc1weWCY|ZXI$Tan1BcK#yI0Qp#%6fen^|Gj7 z!0H!}+GN#aS$!QMszdVn+D%ovo9k=-kgTM|{x+{5kW%1Ryt?zYyKhaReLVH|F@>R*Vd9DQ+e2Mc9m3!E`;T4S3H3iJ)?()b6M-SMO8t-sE< S*t)c$g@JzKe}X~;#rZKT9U{DWD5gvaY<38J&-m9;)*%R9;eTEZoPE0^*{$t84>sT-3aK4G$ zS!J}O`f2F*>ksE=e}1xjvhcMuz3kt;dnLnt=j>NH#OShZw)FGs?vWqcdi2qO=poxGhYND2gA*st=O=q6~*#Kow| zp(zIuWMJT7bQ5#af$`o+P2B&R`?4D&7o!%3mNHD(x4z!!(kk{ips+lLyaG(vR_WQn zDW6uXU{VfRlh!kFG8%Ij3s!VLc&9y2qM3)$ r)xy;grl=@2ClSOhE=n#2yMYNN!@$7!HsjGVttm@xGchwUFeAhPlb&y% literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/debug.h.E107AF16C7F0CBAA.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/debug.h.E107AF16C7F0CBAA.idx new file mode 100644 index 0000000000000000000000000000000000000000..261cf7e00e023ed4ac131f09f369ec78258339fc GIT binary patch literal 686 zcmWIYbaPwA#K7R3;#rZKT9U}Zz`!63#Kk2=na)5u0f;N+Bzv4bN>v`2b%(RF}sn$99@02S`E|vT}^61f(MU&3_*^{)Fhiy?wgXe-IhAZxJ^BIaO zbCZC^FchVx6$=9Ga>|;`zdz|QFC!O|52ue2ND2fV7BUGiEp*cW3VU*TYC{AW7}9hu z2f0fo^#Ob6C6E0C+R#4HA;s6wO<#g4D3D?dROs}Xd zb^;0qat5lwgr$30k_#1nx&Vb;I9=eX9Ru$u1>KD3V&q}6SF$&RsZQe5NWLt&aV}7` zAE%!JOxW}71`|%ZISYZpUYuTV2MWnvj&nBQUkVg<<8)JkspjNyOFVUieHBpHk<$@w z$cKvS)7`qWRs)4YI74(`s`~>c$<@AMz;GyeI z_YB{CJ^~c>=JbZUWKYlD;OYL0?*fGbI0N7=`EvHKTV(a>dqCk}&R`9gl~c?8KCapp z`w}P|#2Ew+Sn)*bvp&+hKLdqjIb>B~s!toOlvR8!`V%PZ&*={r=G`A}7`o)ZU!brv zr?VzZ_49SBHMJdH{RaxWbGpOL2BwUhM39=|qU2(65Q7m!Kmb#=Rw={V;?Vnyj0^xm CGN2Ry literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/enable_special_members.h.D0E1B0D83298787A.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/enable_special_members.h.D0E1B0D83298787A.idx new file mode 100644 index 0000000000000000000000000000000000000000..7d00b639adc861b3f4fe24391e237db73b81457d GIT binary patch literal 284 zcmWIYbaNA7WMFVk@vO*AElFfyU|7PcG4DtuH0*fnilYka66s4vW#{ucMruSJ& zO`b-KJdA1#Y6>7J5YVi&S5aN5nFSP9;ZsqB2r@8C>ig%ZP&{ouPv0If)=8#YM@*;vfbi=Z-xxo%<$RGcqwSfdn7`0MkoQn*aa+ literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx new file mode 100644 index 0000000000000000000000000000000000000000..635180217538957d4e0aa776bd88c836cd139517 GIT binary patch literal 698 zcmWIYbaUIp#K7R3;#rZKT9U}Zz`!63#Kk2=nJGZ}0T5TrnR+get3iRM;h|niHD{-u z@T|>jMo#9JZeM5AdGYgkbA88@0!9X1$&T$y7#S@mJpL$AWw=QAY(!kq+_zcklRLJ~ znk#DK$#|dT^wV?kFNzoYPl>n@;2<{X+XZO}7C(*R%G@NNH4H_mX~nk~85nkbin+@c zXvfLO#VEufBnXlM0kPwg%@$Tp;sOe*ajC(DmHIxZ7o9sG4iwhm(t!&fSbq6l_v))^ zKw(WTO}Man-IXVg6{qR|g^jt4;lescyv`e~*y_#5!>B5%ssgc)fkD3UK<}10dwqeb zWjSR*;Q|Ja(l$B!JX_@l6xQa_h8uGDWvkmN{m+RYLs(Ve!j86i4^+Hgr2|##ap}Q@ z?JhpL_Q58+5hyIpDGfJU?7v`ag8$sDKw&9PDKVIp&-Bbo?kdOa0SfDK>B0>$`=NIF zwsgh;ps)<54BQZt=VFCcuV-Hb3L9`4z*Tn|T*7yc7kziiIm*1JqR zjFRkMKn5Uo8%N z3KUl7Qilr{rRF4pd{kVNTx<y-VlM zc%Res^}M=%gF&~s@x`+z&uFi`;Co*Cs{bh+&1?Q=y-)g_xqLc7A=EoAtI#k&nqf_w z%7^00+$5k;3`MDF#p{8zMce7{;`EfFnc7;ojd)w8r8JqiQrmFJL$8+rI;tJ^C5&xwpc z)ht>9Fx8)2&rU6HSKk0sEzBV-1`}p+%87U$-T4nFtj?(}4HE{sJ0}suDK1Jb2HVeA Tp?>!L@1koKj7$tnaAgbt_Ze0P literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx new file mode 100644 index 0000000000000000000000000000000000000000..8b680101480c0873cdbc09bb8896c0080d33ea5d GIT binary patch literal 214 zcmWIYbaOk$z`)>~;#rZKT9U{DWD5gvaY<383y`(|;)*%R9;eTEZoPE70023fKOO)8 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/erase_if.h.52AC17D898D2345C.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/erase_if.h.52AC17D898D2345C.idx new file mode 100644 index 0000000000000000000000000000000000000000..bed83fb2fd1140679585affc1dba29caf7961787 GIT binary patch literal 774 zcmWIYbaVU1#K7R3;#rZKT9U}Zz`!63#Kk2=nGry`6o@P4Bzv4bN>v`2b%(RF}sn$99?~*fAjijy8@ zvl^iZ$2GmrQfl%vV&q}eV9-ziIT8fU1c_|hdUitqn(8$>x9a>B^NU6kj&Dx+UZ(vv z9!>b_yQ=c;=oQUq!ah$oB+q$rza33D@6+*5S3)oLp$W6TG~8EfZQ73}JZn!F|H?_n zr=kf*GrV#Vc~LSKO?d9ri*t6w%$&!_#VE%iCk^o<1H+`gf1V1()8+#`@5bOJ2NUMe za8fzBZPHpaLn0nzZ?1oEZatbXx6YO`by*H4(S(_=%+7FsRC*0fI5j~j?)rvabm5)3 zb4r-{j=V)v9V5)!ut}r)J({q^bb;pE1^fP^2^Xd2B!c`Qb)85=)#uQPsdM2#!}fy~d_9ob{UnS{yVM69B{1?p2~Ty_qd1Gk>ep=;_rU-$q~}AFtdRy q0~vKUHHovr-i>>a0U+3)#=oVk!1v&E6gmHCfPC5FzIr^ljIqCa<+^PE literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx new file mode 100644 index 0000000000000000000000000000000000000000..d6f1b50e665050ff231a35413b6603218bb5390f GIT binary patch literal 342 zcmWIYbaV4#WMFVk@vO*AElFfyU|y-VlM zc%Res^}KriwMTZXQ+&kkUz9zujc72Gw=H?|5>zEnd^vD)6 z6j$aZ0S#g(N=+-?0i;b7X}KeaH@cu0R|^t zP1xUPuvZ!=Y`|$C1QXWbVEfsT)2q+O#U#uj3^(Laq`*G6NkZK~)e4*naMhee+V>`? z&fE(W*5T9n_6#cSH1(P*5J?(hY1&@<|KmH#YM@* XU_oHW!2pv|$Pw$Mk-ZMAI}q^d`Ne_atd5rA9BRNt()x74nFpwAiz(uz4(Y z?XFW=Y!YfEl`N5?^4KU_wrtpAk=^gwGvD5G?wNCb^PTVY|KI44prG=}3=@zRB9o*S zh*cPd(Zg3-kiXIge`E2LRi_5GcZAg6?&%Tm9d37Zgx#DS5pq{(fAemHurrK*BmAC_ zZ+D};CnD57@@{*IRj5;xIb&2};VqR*mSX}YKRrYG0T{-4&&g6|{{*9?u51NXTI^r! zQ{8tm(PhY1895LFwf{qgDe;M{o^s0{kY~V*sR}--e4vjb_Rv5EfGG;zvNtPSb&|gp z@^V;C{I`$t@Jt^U9b^lzAfDM}b3|TeuZJ8D@l-PVPoDMdyjGT_Ak|gmmWT%2Pb-z` zBTt9vlqBCY$uB*qlVxkLCN3&$(t4^FY>4azZaRu2j%$rVt9d^eBYT1;@rGt@P7e3D zDRLU5(UjMRtC~t28(EftjG`B%wN>rhP-up%13FYP_PtZ51WZB0SP6!ru&tw{^ke|*%e%g=l@Zl?(ud#AK4HL>Cnuhi_cU{ znh+o_fCUtN%&3hw9CyM6IR;{=WU}#~wBcpDC$bu-QG=cWU!H+utuJyA1ko|bRV4+g z)te%bdBCISD*fH7Kj`mZITm8+bQ-7pGNUEpNi?zvm{2FWi89O3mT57_reI3EXJ;Je zz(U7Z6Z z4gdULgNbkBxCD6)%%M&Sa-)_iUrowI4udd5#qj&TcC9PZ+|P0fq)^EL{)5+3W@zLg zn}az`8Gfbr`1$HJMaZ*ZHg%$B;(BZ|M2lFUenC=z%ea1>TvI96!w4~EbGJfi z??&Ws2&XBfTIMm{M#8Pg5fDL_ZQpfudF?+7%8*^ag*y2yUi(teZrvToIgmpqUz__P zA))YE1#&2a(!L!Z)Cn|1mAjC|ASUh^ZPb3?0c_{&})UJWFN8_m{CbT zj*>%!?(~Dm3t=G*Kl@#*^RHW;vYZHs)XAX#5!Xq^ZAX#q!JdZqe;t2cd{yHFvJd#s zsva7@jJn0!#j*!@5O)dGGB34Ce?S(2h}f$Cz?+%heD@=ACS+2{6}-d;=7Mu|$d2Gh z(X*^BOzRQNsz+W5OQ~iEJs5$UCnL9shP{oV;Ye4L7(=0@b%}??M-_ck>|sFYH)Hs?_rhAewK@% zi1=W}oR+?$*DfKaLpt$u>t4~j;8jh?!4OO(lcVKU3(MEByaHCxp`E>WI>24MpJh9+ zBR-yYvbJM%+ZALEaA^2tmyL3U9r!KC8IVEI_d~l{HEi5lk&_^aqMZ+XYp|(&eH-#( zSWHs}n?!l``^aw~uYy&?WkRiHdEZl(g&?FPks5C0mp^XmL{<|C| literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx new file mode 100644 index 0000000000000000000000000000000000000000..610ef91241c781a0186c0fd67acc2807287434f9 GIT binary patch literal 620 zcmWIYbaP8#VqkDi@vO*AElFfyU|+#hls+8}kku@VJ;h*S28y zxU!I=Yr%_4@h8GW*mN&X3y3uGIOX?m-=^Ca-=3)6q5SU5YUO8B?w>g;{6*F6z?H_9 z!mh99Y`C7tZ8_AUd{F4h;YZD%XPXtuNw`M@@F|}C*}coyp;xF$(lSBXlVPTV$3mY5 z*UueNGRJ-}gb27^yNxS?rn=-IxkthbsNX+ z2{AgdH`gA!`F_*90Pe|u8sF&cB^Kl^xAXxOJ|iz zhI>E1vPSvc%SXnq`Tw$U)$}tJSLP-;0e$Sp7w3C6%6%y>11FFN0<1c`Iw~L@6ALpV zBWn%YL?MZsn$^4vTo8E%R$X3QEwFO1f}+&4;`2Z$lhudzU-oQZXXIiP;}8>oDrWGX zeevEAx6jgyJgmkH#@sOB?(b==vR!Y(fx_w>>Vhy~mV|tb^GZ2YKw%Xf6?>TQaw&~| zwzVSlKw(7&MP8V&$&VLR;vG7RfL5w~;#rZKT9U{DWD5gvaY<38H;|43;)*%R9;eTEZoPE%3*}6lAbncyTF;_QUzs1SicD=|F!F7xb xtzPod48@hXNkHQmic-^xA#_e6h%PQlE*1wdnA8dnhfchH{|O@_10zTP0sxi~;#rZKT9U{DWD5gvaY<383y=;0;)*%R9;eTEZoPEPHPG3KraA4V@Lx*(kopBLg6JTz;KE!^bh4?x~hI8Vw48@hX pNkC&5ic-^xA#_e6h%PQlE*1wdm_P&sFe>fNljv*TyPc7V0RXM6G4KEY literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/error_constants.h.FAB62781508B6283.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/error_constants.h.FAB62781508B6283.idx new file mode 100644 index 0000000000000000000000000000000000000000..d8343deb255c3edb8754ffb650e7c81f3d770ee3 GIT binary patch literal 7540 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 wS21!i33Ccdf#rb&%mAP;NHBZ zey(Aj^Z&Z_rPWtgQeN6EZ^4%hS-VO`MypaE7AeAE8Z!j>#*5jEbqCAPkXa=P`b zk#VHH2#dhB8hyDb)^qw6G%ktSUwHOeAf=9(6D?oGQZ^L{PHD@6FEN!X8`piY@Vvh4 z=y?6CRyWSJ^wnGj7v}Q7 z*b8;wiDa+Xricwi9XeftV>0_kC(l~%NA%U=;}gaw7q{t|^(FS@nbawQjLx9u$c1_A zncUdsaBxQlVfV#ZDg^A4xjVs+O)(Y0S$Zg zxd+lhgBotp7Hu_B8CY2Y$zhrAJj4Fbck?#Q)4zX}q3Tf>n`r5~;}><&Y~8%pM}h4BZJtqO>sLIqV8`x>2Qjbn%OmFgq{*&u=|7ghm~~-eY` z;7@pwR^bkJdDEIlT;CrotoZ1nY<1$sdnIR{ZYeW9^|(=xEza0#P;!Qv6!BEPPxgEd z>T&VKii*DPWgzR4QYZRQrzzDO@xR^f>GzEX)iHvjACTpiy7Vp%JmKz=p$^&p@UV+j zzt0kFc>mn8yJXK->)Sjo&pNkxV1shc)p288Nn2B7X+ZbztiIz$esu0$yjtKphf`g9 zS2*~5$X_KCbol>TWfbpO;5IwvPFG^tDd(ekBTpQbXO8m@(KGHac(qkiL$fM1DJ8Az zAMN=(P8m6T=JLxw?u`CADy2Ujncui!6ZKxlhbI>sYVPB`7w$A{zAyK)zwur!|MIZa z?a{rzoa~?eAoI*$`du#=>a_2o5}&=AvO4fy^>#;&s`GSj+=Nv}esifxvo@s`17QEP zRl7LF{#0uc%MB1hnvi2YfDHif=3rLTe;9)=Jlh+EjwF^lAc81CEb{^2oijatf~!$N z>M0QpT-@GR2q|0Y25iV=x`zXdKlbE4>!1$^!vPODD6N$&U`r-X@pgm`6B~c%t=}n6 z#(^ht&{%7nO%6x_;Dih z0c?S32pFGK>#e)BXYnx{c%cGX%u0(no0?>B+0aEC_?2L6EcQ4KW*`?iNA3Y^sU$nT zX^L^~FJ1Q^x3@D%0@Q<;BBr4ptXCE|OD9^oa4;RkD>w=mPbS-%jLtQ|g@q z!@gBcTX8cj=p#;u>_h}Y(sMznul03aBxs&4624g?05~CLiFpVm6^V{SQ6GqJXg2YT%$YIGi#9(rhQaJH!7(u?HzFT;n@C6A54uvX zd~D;QfM%JsjET$wO{k|=tw0Iq;4>iGZy%h{VQd}7M;HkP!w8d5&=!zTD0H(xP*R+b zljQ741rTyi`5X&UkQ8jhZfVKu=ozX5pTijrVc-zPMFo+s`j@PkQD$c)qk z%_bG029MYzG&OM#+=lsuu0n5QM&+TmNmMAww*$F{dRnjdKw7voE(i63lm@3X$qaep zgoGq(l=9PAdFtjDiz!thh!X zt)eF@oiQXRR({B?TNPm;7$OicHhC$5DmzsbVk$uFo6pgw{`^iNW!h9HXE50d0Mk%? M0GutaPL|hy0ck1WNdN!< literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/exception.h.60232BC787A23EFB.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/exception.h.60232BC787A23EFB.idx new file mode 100644 index 0000000000000000000000000000000000000000..df37c4757b67e6efee41b1424f4c46421b950af1 GIT binary patch literal 1600 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 literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/execution_defs.h.EA0BF88CD36110B9.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/execution_defs.h.EA0BF88CD36110B9.idx new file mode 100644 index 0000000000000000000000000000000000000000..a4612c257c5714bb37dfc7b90c6521ccc3756026 GIT binary patch literal 882 zcmWIYbaTsMW?*nm@vO*AElFfyU|y-VlM zc%Res^}OmIW?ICgRO_7lx9QO&nZH-Mt~|Lk>CB%!Kc-ySlC+nHjcJyb7I)BN?=B%@ z?=DFOP8Io6#g(~9Km!?yQqzi0Gchp8pYSpIv->b7BM)OIBTFZv7Dy5Vb}>j*rVB`> zu<$VEGUN(E1Q{5381oqNka+nF`AED1h5|URr_plO>cVeXOgxO;j3M2Okq9HEF=k8y znhFJXZq7NXwDUy~D+^sn1!*@y)pp7t97gONAMaMgBls55&Tw0&sN4D7=Nm% z2J_-2vMszkj8alkDllOlMp+SAIRsB$N*+m0Nkj=rPDM%uNlslv9ZAkW$^c2uSi~4f z&Q!`2NzOvV0!c1aDiujCLnH%94%zEk+dgDJe=ubYFjA&4vP@wVfjRm1D~GOi32BEJ zxfr=PxKv@n@(~lizfgI47^r?4qtG-)X_!R$pSK&+r>i~};9<0qvQmZ#^Dx?q*vcY! zZc=VYa-JfdNOIm%-biwOB7R760a5`-a={|ONOI9q(MWP}B5_D^2~r72a>*jeNOH)L x&clct={$_6k~;#rZKT9U{DWD5gvaY<2TB#@p6#1(UrJx-tT+y}3;=%LIl%w` literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx new file mode 100644 index 0000000000000000000000000000000000000000..85d9c529c4a3b07236e4320083746b9976117dda GIT binary patch literal 2514 zcmY+G3s6*57{~AV&f@O5++7};IV!s98W@_B`3Nx;U&yFaI`|kf#s`mdq$!rv8cW0# z)5VZLlMyTxup@3+5m&iDPl^PTVR zCcianN(slU4D>q`8Wg@u!ExMJdh5f(_6E`KQhFas{Nl8aCPFJHhTpRtcWw-cUQzYh zTH!Jo3GkYR|1huaHyo|`Awj`^7g&BsIO3mr?y=jBgeAu{8{Koa z;n=t>b#c3m@P4)T6=lPWR4d~X;>Svt(v(Vkt5f>H|tnX2AT+b(SniBLnCE}qD zlR7-r4(-?M-mbe5=>|KnVU-QP`toOvQ)ld-xidXgO+gtVWk>=Yg@%%A8V@H5;(?Ec z3F3@wH#ffjPj43ro&b3Q<3unwu>Qit`7INHhg_t}MfP<3dkIjB6}8w&v@>fK-nkx7 zHkq#As&bWvz39L6+}r(EE#_emkwNr|IG%?X;A3FCXbX^uy)&_|Xm>R}$to_~H(kL) zB#=muO*{+ySvHY}dLZ?3{tO(Sfu#9;<68fNtFm=eK^yRGFiG?vz%VF>Sq{Ew`qY=q zpEeT-@B+_yfftDbEhXwU-2%<)R9Xd)3YaK@0+Tu4_E*F_y0i%q6OxIER45`9F5*D* zl=Vj5r{9Za;UOXq*@p1&2*@KAtN<}s8G|LU*KHpz^Ij9XjC!a6QX^O04UXL`_{uKV z#=|+;E9k&`h}=VyMb`ox#mb{tiaG6<(!PS6G+!#F1^5=WV#xBP)18LbZlE9%lSnpW zsmVO@4w<)^g4;lDGx^5n!47VxY+I?%^O&5+uFR(ytIb$SNBY$pB?sQF-$n;EAku(l zuz_({8HcBdwu7bU$d1^O?bKBkCRtb~g1GIbY&?*%YYY!nh*Yrz3ebi$ZF0F!k@_i; zZSnweA3zJlg#?HI=Lnd>>=WR8g4ud+zW-;_t=%+&R;+4eXUdWva`S4s%RX9<<%pEa zBWOjMR(S-YNIfc#APUq`tnB>!t}e{<%KVsmC;?K!j+zH=${#Y`H&8GFWQ6T)TG^^T zUvo|r1vU_D;3fv2;qDN=EeL;0K|Ch$ERUhS{VOU)W+zh6416<_chK@vvgYiJA1SEB zq!P~*m&!L!h->)XDTRVFn4Do1$Uz`VFh!au=tHEB>AL*)sgzls_wAq?tGd~4r-09c zfQ*JL3NjGMKvKA2meN7Xx^vmI3?2Y^z^a~yP7pd-VbyS2>UhV( z_rF^Umw)4Vs70h!e&9Ngrh^41Kq|PVf;7=?>r&xOQLX^R;9SfyDS#Q4nPENSji78~ zdm}&-jA;U?tqIT$%62*L096NTLW|EuoZOt9Q$Tx(LE&UjNcEPuuX1|nu?;t=w2O#b zL=uQjd)#upZ%N@;9;y+kMpA30u8>DNlDd%qN#KzLlFdUhkYrXZ0$c&lE3lYJ$pfc6 zRssU#!HhhZ$9NIA6oFQ5>x$qlW}87Uv--8CYN{FDV7wfJayc&tZ8^+kyb6RWIj;h3 zm7G_DP%Y=xpskj3D+pFOw}RHnctPi$(_ej%QAsme3Z#_nK|o#6mn*f0Ee^ES5vlzD ziJjFd&*%VB56FvW6uFPedqxzvM}gEsE))l^Tb%5ChkES9s!lAm`Jv56QWA%cTPcXf zBpOTQ(&)0%kmp~~M%$MK5sSQT+mWVS?m7uHNlYvcmw;SiP1?S>E?4B6SqSPvc5)ss z9~b7;ueDLlRz$4wDr!dRX4a)>D?!92=ZT<9lshtF!HA_kT2sBrt#_TDjY_+Q$u%s! zUuF*mNBuq&+C@PRIQFp6Pi@@k;MpD6N8foTft+OfLjT49sgv8i;MmK$L0HiKUH0P9 qhwagO+aDb4A1^N~K5!h|7_ZCqH2Q8;Anc&v?ElsNyO8+6asL2m1m5rf literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx new file mode 100644 index 0000000000000000000000000000000000000000..0afe620773c3f78318f78043d695b716fd1148b6 GIT binary patch literal 1904 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 W#9#su5Wv{{wvu_t@_kzwnHT^$UU3Nk literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/hashtable.h.44D7678B598CA27C.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/hashtable.h.44D7678B598CA27C.idx new file mode 100644 index 0000000000000000000000000000000000000000..a40ffe3564943535c37c055a2e8a008cd0abaf52 GIT binary patch literal 24908 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 PshPR380!_nMpV literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/hashtable_policy.h.02AE91A05F6E02C7.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/hashtable_policy.h.02AE91A05F6E02C7.idx new file mode 100644 index 0000000000000000000000000000000000000000..8a928adc5916b2e9e4a8140cf45119ef14f63b98 GIT binary patch literal 10478 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 WDpB|l!h=jEUbo0(l=Q7!di)dj!XM!P literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/initializer_list.AFC06A41CFC1543D.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/initializer_list.AFC06A41CFC1543D.idx new file mode 100644 index 0000000000000000000000000000000000000000..7759100ab3342b82d73eb9af052f9d859ef06c82 GIT binary patch literal 1434 zcmY*X4NO~A6uy1*_r2H0gSNDtwV`7$*d{+^gtBg+7Rwk_9EP+)n6?Gx80ctmwk3!< z7Q=LN)^x!^R9sNVW@5;g%*`yb>Wm^A(gbt?$uvliF=3d9k<9xpIZn1JQ zSFW~H?A)UNiRp{4PPvZ1c=mYZj~8Z_ zoN<>I%#p*{@4L&p=TD8s63aXhr{RT~*rC>!KG@vSdyU%VJ3$BgXkXVeA9c^O;RSg>!`rHN>;X!(;j{JHI2mRt4KjEeZ~5&Pw%i;WBQ@8VmSIkOse1{Lurf+3(C7=l_i0)+9dG96~<1h&AP z1W&*rSRM`wUVsaL32;fl0dSh-@}>D4{6T4aNbmuKSGmb39TJuC_N>KfgGetw_V XuN6Mx1z3N$p2@OC^+j}26p#J^1X%O{ literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/invoke.h.2B1ACA2407CB05E3.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/invoke.h.2B1ACA2407CB05E3.idx new file mode 100644 index 0000000000000000000000000000000000000000..fbd09b3266e9992d63dc7f93713bc81511c1cf19 GIT binary patch literal 760 zcmWIYbaVT_#K7R3;#rZKT9U}Zz`!63#Kk2=nO;D;1&Ax=Bzv4bN>v`2b%(RF}sn$99?~*fV2XGcophXx5j;;(PZ=bhv8NS+7a|fOjo`(b#oHoy30w(+2wt96 zo*{yl&y|lPSHx2!jF2nlDTeb>Q#HG?KKNw<{gEq@D+^PkS!u7Lx>7R>D6Gk+sR;A+ z&l&#=FZ^;V0t#pFW~jncPwM;UsZcy^K2UfTBf~64IhguTr-m1wju}4#N~B4pX~ERT zMKX5vO}g?8C~T%{26uIhICJex=6~OYOyCuz<|Kl=T3nP|tPElRQx^;{)~~cY&D^dp O&cw{bzzh>*U;qH&jRCa) literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/ios_base.h.0442D829AE4A2428.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/ios_base.h.0442D829AE4A2428.idx new file mode 100644 index 0000000000000000000000000000000000000000..48eae730252981b3ff5f814bab937fbd7330acfb GIT binary patch literal 14066 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 H{qO$)^Qj+G literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/iosfwd.163CBDA627BDB3A3.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/iosfwd.163CBDA627BDB3A3.idx new file mode 100644 index 0000000000000000000000000000000000000000..db990126fdb2131c8cb1377f5f0d54c0ed38f04d GIT binary patch literal 3792 zcmYjS3s96t5}sN1XJ!81Cz0JXAS@4gC@!!lx(X!fDTpG7FAyIDID&`>sDOG#0$zzI z1&CT$J}@XA5EG+_a4`@#hy)Bd6wj#TD_H1>LA_GX$mw1GJKJ!7)mCp!fBj9*O!wD| zgXhj|8$rnIxZup>_)RfNLWni|(l@0gen|YUfKk-7sp@I_QmBWEhF=CiO_T3 z-=cIvcK`CVlY3)RXZ?K6@=R@Nm81Gd#-uN%uRT`~oZq5Iy-o&mmlqW-_$D3e0dpZ}^A-C2hxyq(YnKs`ObsN4O6pKaUCoAA5uzc4DulT+s!u+1yiP^p z2cUAQE2r*eBZJ18KyzH1R=sH3C#V!2flw6i8RA*I9kCh)r9r5r@ay(1wI)_p zrfn>Qz}%}Zy}Ccpi6jJAYN=x_^)MTmWel(gf_R|2@C)0Yyi^K3vLv%)+o5EQna&q# zI|8SO`X_Vb+Nu}&tmT&kr)A#PaX0hVQyrQ2q2{}Ccd}f>q}M( zRSFl}Y8%_8#)K8Zeo{?6yAFqoBp6s4saqqRYBn;SpcAB>edWQ+{hp&6H{KYbwKl&dmBVD7eHsI{Tb?HHZlkr znpy}=Z^M3HwBvP(NP+-#o;sd~OXNldjRKHT2zmU#ci+a9e^x0bbjg@XZ84yC`O-cd6zpkxT=YUDS3LwKp4? z1w;}q@xY32NVKu0MkKQV)J7fKARlgIkS%~zLfw5s(U$Ee>qIgGK!>QyA?jl`GRVf1 z^oHVF?Iji)|0ZDGc@Mhe|AV&ZxghxM|+}Pyo*DjI( z03D_-haqWhWYCAEd}3Y+p1`}2a zk?vO?23_sFqf)pdU(#&1~}^gF-m)z~lRm8cseD$t+0p zD0Mzcz05{VRBKA~FUOBe>&aF>6Uj#a+D&!4;hngVLCkb7x2Sz`lz#8;BAE%G3aYDs zy5U9!jWgX#TKpf=qhJc6s#0dw(#-t({S%LAa!^UZ!DSR3sGb&9Ce_4c2}*$-qIPxW zDv>}KSR=JV&G7elbn(XD%T(0Lu!HTe!!VRuV3Q>lmnC>3c9`1X^GP5MteM)OZlC}| zc3gHb5JeaGWU<9%2}+*rqSn|A66gp!L#O+%>o5kQ`~sgWySOaD)3Bq|7GF(* z8fUH47R!J2=g-zTeje;YC4(pN1ZChKYBg-bg&O%#pTWUZ8680`O?%4xg69KKHyz(i zeUS>q8WNL58u1c5Bderpd{+qsigi&nY8O5SY{c~&15viY!NnRKc;(>W0*wx3LF1d< z?$4J(YSmO#O`(_g=bjbl>{98z4jdClOoW!_AKo<(aV!-b0Gf{vq`?OO z2Ok;e!0o}orv*ANPjK+jfR5sV_rVV72am(n?V%?1RQ*PpaW$A9DH)1 z13LyBd|IFbhXkZ14+mV9K+0GJ)u75rAo;A5YH%805da?_7#N5EaPT344%8TM@WFr% z91DBZl801xMWzU zUuZ;@8K>ZJC}Hn?6JSV{j|1d(oAbIZo;A>*Gbd^_>u( Hq1FEZ*!;_x literal 0 HcmV?d00001 diff --git a/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/iterator.1BD365EA5EDE5210.idx b/untitled/build/Desktop-Debug/.qtc_clangd/.cache/clangd/index/iterator.1BD365EA5EDE5210.idx new file mode 100644 index 0000000000000000000000000000000000000000..8d1442a96fe068d86419e903753be0459d030367 GIT binary patch literal 370 zcmWIYbaTsMWMFVk@vO*AElFfyU|h+GA${Mr)Q;)+J$@fx^`W1jXv@0;O~k|rF1LihD=7WGi9m=&i*r!eZwcPLrX-z zbB?>p)wgSBI&VokKDBFoZKPw&2QR%@4`vp|ae2da` z*4t(tZ8Piqt5aw6O~}$W*?)`il!)TW+$5lr7>ZKUid}(p+~jX}=R25~Fmkb*bC^ql zq(Hzi@QzZ@&4?~W9(H>cdyr?qpkUqHvh(e)rvg>Gak?qOgn_2zB!W1_MajkSAO