Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
Name: xpra-html5 | Distribution: openSUSE Tumbleweed |
Version: 15.0+git20240730.c5c8cf6 | Vendor: openSUSE |
Release: 1.1 | Build date: Wed Jul 31 17:20:57 2024 |
Group: Unspecified | Build host: reproducible |
Size: 3227798 | Source RPM: xpra-html5-15.0+git20240730.c5c8cf6-1.1.src.rpm |
Packager: https://bugs.opensuse.org | |
Url: https://xpra.org/ | |
Summary: HTML5 client for Xpra |
This is the HTML5 client for Xpra, which can be made available for browsers by the xpra server or by any other web server.
GPL-2.0+ AND BSD-3-Clause AND LGPL-3.0+ AND MIT
* Wed Jul 31 2024 scott.bradnick@suse.com - Update to version 15.0+git20240730.c5c8cf6: * #316 don't try text/html first, honour preferred format * Mon Jul 29 2024 Scott Bradnick <scott.bradnick@suse.com> - Updating UglifyJS from 3.19.0 -> 3.19.1 * Thu Jul 18 2024 scott.bradnick@suse.com - Update to version 15.0+git20240718.bebca92: * #315 also allow password input with 'insecure' option * Wed Jul 17 2024 Scott Bradnick <scott.bradnick@suse.com> - Updating UglifyJS from 3.18.0 -> 3.19.0 * Mon Jul 15 2024 scott.bradnick@suse.com - Update to version 15.0+git20240715.5425c1a: * try harder to prevent password input with insecure settings * Mon Jul 08 2024 scott.bradnick@suse.com - Update to version 15.0+git20240709.bd65758: * version no not bumped in Utilities.js * bump version * version bump + update the release notes * localhost is presumed safe * finish constifying the packet types * cosmetic: remove long commented out code * simplify * add 'warning' class when can't probe the server specified * prevent simple XSS from server menu data * undo terrible formatting changes * preserve disconnection message when failing early * fix state of insecure password related widgets * simplify: shortcut early * fail fast if digest is unsafe * undo more bad formatting * remove debug logging * always reject insecure xor digest * more bad formatting reverted * undo some awful automated formatting * hide aes key input when switching to WebTransport * move 'insecure' checkbox below the encryption options * trigger host_address_changed when we modify ssl flag * #143 add 'webtransport' switch * oops: don't use WebTransport by default * #143 use the same writer, remove debug delay * #143 add WebTransport protocol (disabled for now) * undo ugly line wrapping * there is only one packet encoder now * all browsers we support have Object.hasOwn * Mon Jun 10 2024 Scott Bradnick <scott.bradnick@suse.com> - Updating Uglify-JS to v3.18.0 * Tue May 28 2024 scott.bradnick@suse.com - Update to version 13.0+git20240528.6209443: * #308 don't save 'password' (input element), save 'passwords' values * undo some awful formatting, remvoe IE hasOwn workaround * silence some chrome developer warnings * also trigger the links with the keyboard * shwo keyboard focus on the password prompt dialog * can't use argument for default value * cosmetic: logging and easier to read code * update the release notes * undo more dumb formatting changes * #283 let users choose the prefered clipboard format * #301 ssl makes no difference to Firefox? * #301 need to make top bar bigger * undo some infuriatingly awful automated formatting * #301 add clipboard sync to server button * #301 keep clipboard, disable polling * cosmetic: undo some pointless line wrapping * doh: arrays can't be added in JS * do show the text we got * #226 Safari clipboard should work with ssl enabled * more tools * #273 #298 add clipboard test page * update packaging files * update the release notes * also use dashes in URLs, and replace ALL of them * property names can use dash in connection files * include the display (if specified) in connection files * skip values set to their default * boolean options not saved correctly in connection file * outdated and misplaced docstring * show some server information * simplify: has_session_storage does not change * better client URIs * make the button label match the current action selected * #304 'open-url' wasn't moved to file caps * Thu Apr 18 2024 scott.bradnick@suse.com - Update to version 13.0+git20240408.085e0df: * #298 fix text/html clipboard copy * Fri Mar 29 2024 scott.bradnick@suse.com - Update to version 13.0+git20240329.81692ba: * #292 fix 864dc00808c6caab238578919cc2442488d4c9cf which broke the connect page * version bump * fix: do not convert u8a to string if it's already a string * fix do_keyb_process is not a function error * split record_vcs_info from sdist, add subcommand for it * ignore whitespace when updating vcs info * #294 PR #288 broke offscreen decoding * #292 getparam may return 'undefined' but not 'null' now * remove redundant statement * Update Utilities.js * handle file download * fix downloads: TextDecoder is not the same as String.fromCharCode. * Bugfix URL parameters not being applied * Sun Feb 25 2024 scott.bradnick@suse.com - Update to version 12.0+git20240215.edf32fa: * Bugfix: Update video_max_size when offsceen_api flag is changed * update version string * #282 support custom minifier command * Thu Feb 08 2024 scott.bradnick@suse.com - Update to version 12.0+git20240208.20dddce: * #282 always return a string * add relative pointer coordinates, if available * all supported browsers have the 'wheel' event * remove unused function * Wed Jan 31 2024 scott.bradnick@suse.com - Update to version 12.0+git20240131.f67917a: * bump version * update the release notes * better compatibility with older python versions * also add setuptools to the build dependencies * newer python compatibility: prefer setuptools * linter warning cleanup * forgot to bump year.. * Revert "Update README.md" * update the release notes * #280 detect minifier, default to 'copy' if not found * #273 copy 'text/html' to the server * unescape plain/text clipboard data * remove MSIE workarounds * #273 prefer 'text/html', if available * Update README.md * Bugfix: Prefix the sessionStorage data with pathname * doh: this is an assignment * Add back 'setting-change' capability for compability with v5 servers (#263). * #263 v5 servers need this flag * More consistent positioning of fullscreen windows * Set full range color space hint in videoDecoder.configure * Tue Nov 28 2023 scott.bradnick@suse.com - Update to version 11.0+git20231128.52742e3: * offscreen now requires https with Chrome * newer servers require caps to enable pings * don't show the clock menu entry until we have the time * backticks don't work as expected * bump version * invalid escape sequence * simplify * #227 disable offscreen with webkit * Safari does not support offscreen rendering * Mon Oct 16 2023 scott.bradnick@suse.com - Update to version 10.0+git20231016.60cd4d0: * update release notes * jquery v3.7.1 * jquery ui v1.13.2 * update the release notes * support more encoding options * #266 move some encoding attributes to default settings * simplify: getparam already uses default_settings * add some debug logging * tabs vs spaces * use structured caps * use more readable data structures * bump version * #263 v5 servers need this flag * Thu Aug 31 2023 scott.bradnick@suse.com - Update to version 9.0+git20230830.e5fb000: * workaround 'mv: inter-device move failed' * update release no * update the release notes * #262 use v5 audio caps * #262 use v5 file-transfer caps * move modifier parsing to a dedicated function * move audio parsing to a dedicated function * #262 newer servers don't need these flags * #262 remove bencode remnants and calls to StringToUint8 * #262 remove zlib * add screenshots to home page * Fix encoding issue when using authentication. * Use TextEncoder/TextDecoder to handle string conversion to/from UTF-8. * require less CPU in html5 clients * #227 Safari is the new IE * #258 enable OffscreenCanvas with Firefox>=108 and Safari>=16.4 * use functions from Utilities.js * add function ord() to Utilities.js * load Utilities.js in index.html first * fix Protocol.js * Tue Jun 20 2023 scott.bradnick@suse.com - Update to version 9.0+git20230615.cdd9ea7: * forgot to bump version here * #227 disable offscreen with safari * if an argument is missing, return an empty value * default to non-legacy mode: 'rencodeplus' * simplify * fix path to eye-icon * #249 allow spaces in passwords * Tue May 23 2023 scott.bradnick@suse.com - Update to version 9.0+git20230515.2add797: * #240 honour the 'decorations' flag * #240 don't duplicate the 'decorations' logic * whitespace * remove unnecessary cruft * #246 typo underscore vs dash in capability name * also hide upload if file transfers are disabled client side * fix logging from window * restore console.warn * Mon May 08 2023 scott.bradnick@suse.com - Update to version 9.0+git20230506.58e96fc: * better wording * bump version * update the release notes * Thu May 04 2023 scott.bradnick@suse.com - Update to version 8.0+git20230504.9a7687f: * always use the preferred keywords for variable declaration * use cleaner / simpler for loop syntax * document empty functions * remove unused statements * the keys are strings * use the computed arguments * doh: we want to assign the callback function * make linter happier * we want a loose match here * function must take 5 args * Update README.md * #244 we need a jquery object to call trigger on * hide file upload if not supported by the server * #242 don't show 'shutdown' option when it isn't available * Update README.md - Sonarqube build test * Update README - Test sonarqube * Create build.yml * Create sonar-project.properties * don't overflow the div * #236 disable screenshot when offscreen api is in use * #235 also update call from menu * #235 only request window-close * function is no longer used * #230 when re-connecting, ignore page 'unload' * #230 don't close windows when re-connecting * #232 partial revert of 0e8652e30e2741d3561a78067ad482f54e910fce * remove unused vars * forward port of 6be1053f5650690634685ee7357351acba68a5b6 * Mon Mar 13 2023 scott.bradnick@suse.com - Update to version 8.0+git20230313.4e515ef: * bump version * update the release notes * #226 skip auto-focus and polling when clipboard is disabled * #226 the problem is with Safari, not MacOS * Fri Mar 10 2023 scott.bradnick@suse.com - Update to version 7.0+git20230310.0171476: * forward port 253118c34bbd6b56a3ab91937eaaa793760f97a9 * workaround missing hasOwn in older versions of Safari * Mon Mar 06 2023 scott.bradnick@suse.com - Update to version 7.0+git20230303.19b416b: * if we can't get sensible linting, get rid of it * log the packet data causing the error * re-use the parsed cursor data * bump revision no * fix linter warning, make code less dense * provide more useful name to the server * cosmetic * the close_window function now takes 2 arguments * variables for our windows should not shadow the browser's 'window' object * simplify focus methods, fix window menu actions * make linter happier * make linter happier * #228 correct location for h264 availability check? * #226 don't enable clipboard with Safari and SSL * #228 remove broadway * avoid errors if the window's title is unset * use a more distinct id for windows * #223 catch wheel events on windows * #225 use path relative to index.html instead * only send 'sound-stop' if audio is enabled * silence linter warning: readable is better * #224 use correct window constructor signature * oops: remove debug * fix linter warnings * remove outdated workaround * #222 remove vp9, for now * fix wrong context for logging call * Disable VP9, prefer h264 * Fix #217 * don't spam the console * truncate large clipboard buffers * propagate the video decoding error message * whitespace * Less scaling for offscreen decoding * Tue Dec 27 2022 scott.bradnick@suse.com - Update to version 7.0+git20221227.017148e: * workaround for setuptools breakage in version 61 and later * typo * Linting * firefox cancas flicker * bitmap_options.set() is not defined * throttle fix * Tue Nov 29 2022 scott.bradnick@suse.com - Update to version 7.0+git20221031.f1e0fa1: * forgot to bump version here * #210 brackets change the event handler scope somehow? * Hotfix in OffscreenDecodeWorker * Mon Oct 24 2022 Scott Bradnick <scott.bradnick@suse.com> - Update uglifyjs to '3.17.4' * Tue Oct 18 2022 scott.bradnick@suse.com - Update uglifyjs to '3.17.3' - Update to version 6.0+git20221017.21cabde: * bump version * update the release notes * modernize - require python3 * bump revision * typo: missing '%' * better wording * #204 don't allow modal windows to be minimized * Sat Oct 01 2022 scott.bradnick@suse.com - Update uglifyjs to '3.17.2' - Update to version 6.0+git20220926.c248091: * linting * linting * update release no * fix el9 builds * update the release notes * bump release no * Move paint, add css class * #198 send decode errors to the server * typo * typo * only validate the frame type if it is specified * #198 default to medium quality when upscaling * #198 don't set any 'resize' options when not using scaling * Fri Aug 19 2022 scott.bradnick@suse.com - Updating uglifyjs to '3.17.0' - Update to version 5.0+git20220805.f4e08d5: * update revision no * downmerg * linting * redraw * linting * linting * trailing comma * width/height * resizeQuality * requestAnimationFrame in worker * fix void and scroll * restore compatibility with older servers * use the new keyboard mapping attributes * VPX * XpraImageDecoder * ImageDecoder * 2 spaces * WIP * Tue Jul 19 2022 scott.bradnick@suse.com - Update to version 5.0+git20220718.17c39ca: * Fix for #188 * simplify * fix broken legacy clipboard * use the version agnostic package name * #188 need arrow function to use 'this' * Tue Jun 21 2022 scott.bradnick@suse.com - Update to version 5.0+git20220610.56f906c: * brotli return value needs casting * remove leftover bencode support * more useful error: log protocol flags and packet data * show builds from 'git master' as 'beta' builds * Remove bencode lib * fix sound-data buffer check * these packet encoder workarounds are no longer necessary * fix beep * require 'rencodeplus' and remove bencode + plain rencode * remove zlib * Allow up to 3 repeats of strings * De-index-ify for loops without using `[index, element]` syntax * Format .json files in pre-commit hook * Silence warnings from format script * Extract all packet types into constants * Organize client string constants * Simplify prototype calls with `Object.hasOwn` * Rename image variable for clarity * Simplify trivial (& error-prone) indexing operations * Rename keystring variable for clarity * Downgrade remaining GitHub lint errors to warnings, for future fixing * Simplify confusing function declaration * Flatten nested template string * Fix auto-fixable GitHub lint errors * Add GitHub lint plugin to find & fix code smells * Downgrade remaining unicorn lint errors to warnings, for future fixing * Rename all JS files to PascalCase for consistency * Simplify constructed booleans * Prefer `.querySelector()` for consistency * Remove "use strict" directives to embrace JS modules * Expand abbreviations in variable names * Fix auto-fixable unicorn lint errors * Turn off a rule with broken auto-fix * Turn off a rule that caused problems in the past * Add unicorn lint plugin to find & fix code smells * Simplify duplicate functions to soften redundancy * Simplify boolean expressions * De-duplicate debug/error/log utility methods * Merge trivially-nested if statements * Consolidate url construction into a Window class method * Deduplicate string literals with new constants * Add SonarJS lint plugin to find code smells * Upgrade turned-off (but useful) lint rules to warnings * Lint-ignore sw.js * Undo sw.js formatting from #178 * #189 guard against client being unset, somehow * Wed Jun 01 2022 scott.bradnick@suse.com - Update to version 5.0+git20220601.d52ebb5: * #188 only consume the event when over a window * Tue May 31 2022 scott.bradnick@suse.com - Update to version 5.0+git20220531.9ebe126: * access client via 'this' * fix another non-offscreen paint error * we don't check but we do support these * fixup c534ab0d839c7b5501fd83f96a6da6af69aaea5a * fix challenge response handler * Update VideoDecoder.js * #190 running install is usually enough * #190 make it clearer one can just run install * #183 fix non-decode worker paints * Remove all commented-out code * Wed May 25 2022 Scott Bradnick <scott.bradnick@suse.com> - Adding a few more 'Requires' to cleanup runtime warnings/errors. * Mon May 23 2022 scott.bradnick@suse.com - Updating uglifyjs to '3.15.5'. - Update to version 5.0+git20220516.caf9971: * Last known commit working w/o error(s). * Wed Apr 27 2022 scott.bradnick@suse.com - Update to version 4.5.2+git20220421.ecc3a08: * Added keycloak authentication - Switching UglifyJS source from npmjs source url to github source url. * Tue Apr 19 2022 Scott Bradnick <scott.bradnick@suse.com> - Updating uglifyjs to '3.15.4'. * Tue Apr 19 2022 scott.bradnick@suse.com - Update to version 4.5.2+git20220413.dc3077b: * tell the server to use 'scroll' encoding less * Tue Apr 05 2022 Scott Bradnick <scott.bradnick@suse.com> - Adjusting top copyright comments. * Tue Mar 29 2022 Scott Bradnick <scott.bradnick@suse.com> - Adding 'git-core' as a BuildRequires. * Tue Mar 29 2022 Scott Bradnick <scott.bradnick@suse.com> - Inadvertently left out 'BuildRequires: python3'. * Tue Mar 29 2022 scott.bradnick@suse.com - Update to version git20220322.82199bc: * make debug logging clearer * do log the decode worker instance * reduce the amount of audio codec logging * add GHA * #162 don't use join with a potentially empty root * #162 create install dir if needed * we already lookup cwd just once, do it early * show help if subcommand is invalid * Tue Mar 29 2022 Scott Bradnick <scott.bradnick@suse.com> - Initial version for xpra-html5 pulled out of 'xpra.spec'.
/etc/xpra /etc/xpra/html5-client /etc/xpra/html5-client/default-settings.txt /usr/share/xpra /usr/share/xpra/www /usr/share/xpra/www/clipboard.html /usr/share/xpra/www/clipboard.html.gz /usr/share/xpra/www/connect.html /usr/share/xpra/www/connect.html.gz /usr/share/xpra/www/css /usr/share/xpra/www/css/bootstrap.css /usr/share/xpra/www/css/bootstrap.css.gz /usr/share/xpra/www/css/client.css /usr/share/xpra/www/css/client.css.gz /usr/share/xpra/www/css/icon.css /usr/share/xpra/www/css/icon.css.gz /usr/share/xpra/www/css/menu-skin.css /usr/share/xpra/www/css/menu-skin.css.gz /usr/share/xpra/www/css/menu.css /usr/share/xpra/www/css/menu.css.gz /usr/share/xpra/www/css/signin.css /usr/share/xpra/www/css/signin.css.gz /usr/share/xpra/www/css/simple-keyboard.css /usr/share/xpra/www/css/simple-keyboard.css.gz /usr/share/xpra/www/css/simple-keyboard.css.map /usr/share/xpra/www/css/simple-keyboard.css.map.gz /usr/share/xpra/www/css/slick.css /usr/share/xpra/www/css/slick.css.gz /usr/share/xpra/www/css/spinner.css /usr/share/xpra/www/css/spinner.css.gz /usr/share/xpra/www/default-settings.txt /usr/share/xpra/www/favicon.ico /usr/share/xpra/www/favicon.ico.gz /usr/share/xpra/www/favicon.png /usr/share/xpra/www/icons /usr/share/xpra/www/icons/authentication.png /usr/share/xpra/www/icons/clipboard.png /usr/share/xpra/www/icons/close.png /usr/share/xpra/www/icons/default_cursor.png /usr/share/xpra/www/icons/empty.png /usr/share/xpra/www/icons/eye-slash.png /usr/share/xpra/www/icons/eye.png /usr/share/xpra/www/icons/fullscreen.png /usr/share/xpra/www/icons/materialicons-regular.ttf /usr/share/xpra/www/icons/materialicons-regular.ttf.gz /usr/share/xpra/www/icons/materialicons-regular.woff /usr/share/xpra/www/icons/materialicons-regular.woff.gz /usr/share/xpra/www/icons/materialicons-regular.woff2 /usr/share/xpra/www/icons/materialicons-regular.woff2.gz /usr/share/xpra/www/icons/maximize.png /usr/share/xpra/www/icons/minimize.png /usr/share/xpra/www/icons/noicon.png /usr/share/xpra/www/icons/speaker-buffering.png /usr/share/xpra/www/icons/speaker-off.png /usr/share/xpra/www/icons/speaker.png /usr/share/xpra/www/icons/unfullscreen.png /usr/share/xpra/www/icons/xpra-logo.png /usr/share/xpra/www/index.html /usr/share/xpra/www/index.html.gz /usr/share/xpra/www/js /usr/share/xpra/www/js/Client.js /usr/share/xpra/www/js/Client.js.gz /usr/share/xpra/www/js/Constants.js /usr/share/xpra/www/js/Constants.js.gz /usr/share/xpra/www/js/DecodeWorker.js /usr/share/xpra/www/js/DecodeWorker.js.gz /usr/share/xpra/www/js/ImageDecoder.js /usr/share/xpra/www/js/ImageDecoder.js.gz /usr/share/xpra/www/js/Keycodes.js /usr/share/xpra/www/js/Keycodes.js.gz /usr/share/xpra/www/js/MediaSourceUtil.js /usr/share/xpra/www/js/MediaSourceUtil.js.gz /usr/share/xpra/www/js/Menu.js /usr/share/xpra/www/js/Menu.js.gz /usr/share/xpra/www/js/MenuCustom.js /usr/share/xpra/www/js/MenuCustom.js.gz /usr/share/xpra/www/js/Notifications.js /usr/share/xpra/www/js/Notifications.js.gz /usr/share/xpra/www/js/OffscreenDecodeWorker.js /usr/share/xpra/www/js/OffscreenDecodeWorker.js.gz /usr/share/xpra/www/js/OffscreenDecodeWorkerHelper.js /usr/share/xpra/www/js/OffscreenDecodeWorkerHelper.js.gz /usr/share/xpra/www/js/PaintWorker.js /usr/share/xpra/www/js/PaintWorker.js.gz /usr/share/xpra/www/js/Protocol.js /usr/share/xpra/www/js/Protocol.js.gz /usr/share/xpra/www/js/RgbHelpers.js /usr/share/xpra/www/js/RgbHelpers.js.gz /usr/share/xpra/www/js/Utilities.js /usr/share/xpra/www/js/Utilities.js.gz /usr/share/xpra/www/js/VideoDecoder.js /usr/share/xpra/www/js/VideoDecoder.js.gz /usr/share/xpra/www/js/WebTransport.js /usr/share/xpra/www/js/WebTransport.js.gz /usr/share/xpra/www/js/Window.js /usr/share/xpra/www/js/Window.js.gz /usr/share/xpra/www/js/lib /usr/share/xpra/www/js/lib/FileSaver.js /usr/share/xpra/www/js/lib/FileSaver.js.gz /usr/share/xpra/www/js/lib/StreamSaver.js /usr/share/xpra/www/js/lib/StreamSaver.js.gz /usr/share/xpra/www/js/lib/aurora /usr/share/xpra/www/js/lib/aurora/aac.js /usr/share/xpra/www/js/lib/aurora/aac.js.gz /usr/share/xpra/www/js/lib/aurora/aurora-xpra.js /usr/share/xpra/www/js/lib/aurora/aurora-xpra.js.gz /usr/share/xpra/www/js/lib/aurora/aurora.js /usr/share/xpra/www/js/lib/aurora/aurora.js.gz /usr/share/xpra/www/js/lib/aurora/flac.js /usr/share/xpra/www/js/lib/aurora/flac.js.gz /usr/share/xpra/www/js/lib/aurora/mp3.js /usr/share/xpra/www/js/lib/aurora/mp3.js.gz /usr/share/xpra/www/js/lib/brotli_decode.js /usr/share/xpra/www/js/lib/brotli_decode.js.gz /usr/share/xpra/www/js/lib/detect-zoom.js /usr/share/xpra/www/js/lib/detect-zoom.js.gz /usr/share/xpra/www/js/lib/forge.js /usr/share/xpra/www/js/lib/forge.js.gz /usr/share/xpra/www/js/lib/jquery-transform-draggable.js /usr/share/xpra/www/js/lib/jquery-transform-draggable.js.gz /usr/share/xpra/www/js/lib/jquery-ui.js /usr/share/xpra/www/js/lib/jquery-ui.js.gz /usr/share/xpra/www/js/lib/jquery.ba-throttle-debounce.js /usr/share/xpra/www/js/lib/jquery.ba-throttle-debounce.js.gz /usr/share/xpra/www/js/lib/jquery.js /usr/share/xpra/www/js/lib/jquery.js.gz /usr/share/xpra/www/js/lib/jsmpeg.js /usr/share/xpra/www/js/lib/jsmpeg.js.gz /usr/share/xpra/www/js/lib/lz4.js /usr/share/xpra/www/js/lib/lz4.js.gz /usr/share/xpra/www/js/lib/rencode.js /usr/share/xpra/www/js/lib/rencode.js.gz /usr/share/xpra/www/js/lib/simple-keyboard.js /usr/share/xpra/www/js/lib/simple-keyboard.js.gz /usr/share/xpra/www/js/lib/slick.js /usr/share/xpra/www/js/lib/slick.js.gz /usr/share/xpra/www/js/lib/web-streams-ponyfill.es6.js /usr/share/xpra/www/js/lib/web-streams-ponyfill.es6.js.gz /usr/share/xpra/www/js/lib/wsworker_check.js /usr/share/xpra/www/js/lib/wsworker_check.js.gz /usr/share/xpra/www/mitm.html /usr/share/xpra/www/mitm.html.gz /usr/share/xpra/www/sw.js /usr/share/xpra/www/sw.js.gz
Generated by rpm2html 1.8.1
Fabrice Bellet, Sat Sep 28 23:48:47 2024