bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#69614: 30.0.50; General Emacs slowdown


From: Pedro A. Aranda
Subject: bug#69614: 30.0.50; General Emacs slowdown
Date: Thu, 7 Mar 2024 17:08:39 +0100
User-agent: Mozilla Thunderbird

Hi,

In different situations, I have experienced a drastic
slowdown in Emacs. Here is a profiler example when deleting
a line in a table in an org-mode buffer:

         650  43% + redisplay_internal (C function)
         521  35% - command-execute
         470  31%  - byte-code
         470  31%   - read-extended-command
         470  31%    - read-extended-command-1
         470  31%     - completing-read-default
         443  29%      + redisplay_internal (C function)
          11   0%      - timer-event-handler
          11   0%       - apply
           7   0%        + jinx--timer-handler
           4   0%        + org-element--cache-sync
          51   3%  - funcall-interactively
          34   2%   + org-kill-line
          17   1%   + next-line
         200  13%   Automatic GC
          57   3% + ...
          57   3% + timer-event-handler

It looks like redisplay-internal is the culprit

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.33, cairo version 1.16.0) of 2024-03-03 built on 3c4cb1333c59
Repository revision: 7f8717c6fd3e19b41048ce9a391d59540886cdee
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12201001
System Description: Ubuntu 22.04.4 LTS

Configured using:
 'configure --prefix=/usr --program-suffix=30 --with-x
 --with-x-toolkit=gtk3 --with-cairo --with-compress-install
 --with-modules=yes --with-threads --with-included-regex --with-zlib
 --with-json --with-rsvg --with-small-ja-dic --with-native-compilation
 --with-tree-sitter=no 'CFLAGS=-g -O2
 -ffile-prefix-map=/home/paag/emacs=. -flto=auto -ffat-lto-objects
 -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat
 -Werror=format-security' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'
 'LDFLAGS=-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects
 -flto=auto -Wl,-z,relro''

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBSELINUX LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG
SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XINPUT2 XPM
GTK3 ZLIB

Important settings:
  value of $LC_MONETARY: es_ES.UTF-8
  value of $LC_NUMERIC: es_ES.UTF-8
  value of $LC_TIME: es_ES.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8

Major mode: Lisp Interaction

Minor modes in effect:
  yas-global-mode: t
  yas-minor-mode: t
  global-company-mode: t
  company-mode: t
  global-tab-line-mode: t
  tab-line-mode: t
  electric-pair-mode: t
  server-mode: t
  override-global-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
~/.emacs.d/lisp/rst hides /usr/share/emacs/30.0.50/lisp/textmodes/rst
/home/paag/Devel/org-mode/lisp/org-loaddefs hides /usr/share/emacs/30.0.50/lisp/org/org-loaddefs /home/paag/Devel/org-mode/lisp/ob-sass hides /usr/share/emacs/30.0.50/lisp/org/ob-sass
/home/paag/Devel/org-mode/lisp/ox hides /usr/share/emacs/30.0.50/lisp/org/ox
/home/paag/Devel/org-mode/lisp/ob-forth hides /usr/share/emacs/30.0.50/lisp/org/ob-forth /home/paag/Devel/org-mode/lisp/ol-mhe hides /usr/share/emacs/30.0.50/lisp/org/ol-mhe /home/paag/Devel/org-mode/lisp/ox-publish hides /usr/share/emacs/30.0.50/lisp/org/ox-publish /home/paag/Devel/org-mode/lisp/ob-core hides /usr/share/emacs/30.0.50/lisp/org/ob-core /home/paag/Devel/org-mode/lisp/org-indent hides /usr/share/emacs/30.0.50/lisp/org/org-indent /home/paag/Devel/org-mode/lisp/org-attach-git hides /usr/share/emacs/30.0.50/lisp/org/org-attach-git /home/paag/Devel/org-mode/lisp/ol-eww hides /usr/share/emacs/30.0.50/lisp/org/ol-eww /home/paag/Devel/org-mode/lisp/org-colview hides /usr/share/emacs/30.0.50/lisp/org/org-colview /home/paag/Devel/org-mode/lisp/org-cycle hides /usr/share/emacs/30.0.50/lisp/org/org-cycle /home/paag/Devel/org-mode/lisp/ob-perl hides /usr/share/emacs/30.0.50/lisp/org/ob-perl /home/paag/Devel/org-mode/lisp/ob-maxima hides /usr/share/emacs/30.0.50/lisp/org/ob-maxima /home/paag/Devel/org-mode/lisp/oc-biblatex hides /usr/share/emacs/30.0.50/lisp/org/oc-biblatex /home/paag/Devel/org-mode/lisp/ol-man hides /usr/share/emacs/30.0.50/lisp/org/ol-man /home/paag/Devel/org-mode/lisp/org-crypt hides /usr/share/emacs/30.0.50/lisp/org/org-crypt /home/paag/Devel/org-mode/lisp/ob-C hides /usr/share/emacs/30.0.50/lisp/org/ob-C /home/paag/Devel/org-mode/lisp/ox-ascii hides /usr/share/emacs/30.0.50/lisp/org/ox-ascii /home/paag/Devel/org-mode/lisp/org-inlinetask hides /usr/share/emacs/30.0.50/lisp/org/org-inlinetask /home/paag/Devel/org-mode/lisp/ol-gnus hides /usr/share/emacs/30.0.50/lisp/org/ol-gnus /home/paag/Devel/org-mode/lisp/ox-man hides /usr/share/emacs/30.0.50/lisp/org/ox-man /home/paag/Devel/org-mode/lisp/ob-plantuml hides /usr/share/emacs/30.0.50/lisp/org/ob-plantuml /home/paag/Devel/org-mode/lisp/org-list hides /usr/share/emacs/30.0.50/lisp/org/org-list /home/paag/Devel/org-mode/lisp/ob-latex hides /usr/share/emacs/30.0.50/lisp/org/ob-latex /home/paag/Devel/org-mode/lisp/ob-shell hides /usr/share/emacs/30.0.50/lisp/org/ob-shell /home/paag/Devel/org-mode/lisp/org-goto hides /usr/share/emacs/30.0.50/lisp/org/org-goto /home/paag/Devel/org-mode/lisp/ob-eshell hides /usr/share/emacs/30.0.50/lisp/org/ob-eshell /home/paag/Devel/org-mode/lisp/ob-java hides /usr/share/emacs/30.0.50/lisp/org/ob-java /home/paag/Devel/org-mode/lisp/ox-beamer hides /usr/share/emacs/30.0.50/lisp/org/ox-beamer /home/paag/Devel/org-mode/lisp/ob-org hides /usr/share/emacs/30.0.50/lisp/org/ob-org /home/paag/Devel/org-mode/lisp/ob-makefile hides /usr/share/emacs/30.0.50/lisp/org/ob-makefile /home/paag/Devel/org-mode/lisp/org-attach hides /usr/share/emacs/30.0.50/lisp/org/org-attach /home/paag/Devel/org-mode/lisp/ob-scheme hides /usr/share/emacs/30.0.50/lisp/org/ob-scheme /home/paag/Devel/org-mode/lisp/oc-basic hides /usr/share/emacs/30.0.50/lisp/org/oc-basic /home/paag/Devel/org-mode/lisp/ob-awk hides /usr/share/emacs/30.0.50/lisp/org/ob-awk /home/paag/Devel/org-mode/lisp/ob-gnuplot hides /usr/share/emacs/30.0.50/lisp/org/ob-gnuplot /home/paag/Devel/org-mode/lisp/ob-groovy hides /usr/share/emacs/30.0.50/lisp/org/ob-groovy /home/paag/Devel/org-mode/lisp/ob-octave hides /usr/share/emacs/30.0.50/lisp/org/ob-octave /home/paag/Devel/org-mode/lisp/ob-lilypond hides /usr/share/emacs/30.0.50/lisp/org/ob-lilypond /home/paag/Devel/org-mode/lisp/org-duration hides /usr/share/emacs/30.0.50/lisp/org/org-duration /home/paag/Devel/org-mode/lisp/ob-lob hides /usr/share/emacs/30.0.50/lisp/org/ob-lob /home/paag/Devel/org-mode/lisp/ob-matlab hides /usr/share/emacs/30.0.50/lisp/org/ob-matlab /home/paag/Devel/org-mode/lisp/ox-koma-letter hides /usr/share/emacs/30.0.50/lisp/org/ox-koma-letter /home/paag/Devel/org-mode/lisp/oc-natbib hides /usr/share/emacs/30.0.50/lisp/org/oc-natbib /home/paag/Devel/org-mode/lisp/ob-ditaa hides /usr/share/emacs/30.0.50/lisp/org/ob-ditaa /home/paag/Devel/org-mode/lisp/ox-icalendar hides /usr/share/emacs/30.0.50/lisp/org/ox-icalendar /home/paag/Devel/org-mode/lisp/ox-latex hides /usr/share/emacs/30.0.50/lisp/org/ox-latex /home/paag/Devel/org-mode/lisp/org-footnote hides /usr/share/emacs/30.0.50/lisp/org/org-footnote /home/paag/Devel/org-mode/lisp/ob-fortran hides /usr/share/emacs/30.0.50/lisp/org/ob-fortran /home/paag/Devel/org-mode/lisp/org-mouse hides /usr/share/emacs/30.0.50/lisp/org/org-mouse /home/paag/Devel/org-mode/lisp/ol-eshell hides /usr/share/emacs/30.0.50/lisp/org/ol-eshell /home/paag/Devel/org-mode/lisp/org-habit hides /usr/share/emacs/30.0.50/lisp/org/org-habit /home/paag/Devel/org-mode/lisp/ob-table hides /usr/share/emacs/30.0.50/lisp/org/ob-table /home/paag/Devel/org-mode/lisp/oc-bibtex hides /usr/share/emacs/30.0.50/lisp/org/oc-bibtex /home/paag/Devel/org-mode/lisp/ob-clojure hides /usr/share/emacs/30.0.50/lisp/org/ob-clojure /home/paag/Devel/org-mode/lisp/ob-comint hides /usr/share/emacs/30.0.50/lisp/org/ob-comint /home/paag/Devel/org-mode/lisp/org-fold-core hides /usr/share/emacs/30.0.50/lisp/org/org-fold-core /home/paag/Devel/org-mode/lisp/ob-exp hides /usr/share/emacs/30.0.50/lisp/org/ob-exp /home/paag/Devel/org-mode/lisp/org-refile hides /usr/share/emacs/30.0.50/lisp/org/org-refile /home/paag/Devel/org-mode/lisp/org-protocol hides /usr/share/emacs/30.0.50/lisp/org/org-protocol /home/paag/Devel/org-mode/lisp/ob-js hides /usr/share/emacs/30.0.50/lisp/org/ob-js /home/paag/Devel/org-mode/lisp/ob-lua hides /usr/share/emacs/30.0.50/lisp/org/ob-lua /home/paag/Devel/org-mode/lisp/org-archive hides /usr/share/emacs/30.0.50/lisp/org/org-archive /home/paag/Devel/org-mode/lisp/org-keys hides /usr/share/emacs/30.0.50/lisp/org/org-keys /home/paag/Devel/org-mode/lisp/ob-calc hides /usr/share/emacs/30.0.50/lisp/org/ob-calc /home/paag/Devel/org-mode/lisp/ob-tangle hides /usr/share/emacs/30.0.50/lisp/org/ob-tangle /home/paag/Devel/org-mode/lisp/ob-sqlite hides /usr/share/emacs/30.0.50/lisp/org/ob-sqlite /home/paag/Devel/org-mode/lisp/org-fold hides /usr/share/emacs/30.0.50/lisp/org/org-fold /home/paag/Devel/org-mode/lisp/ob-ref hides /usr/share/emacs/30.0.50/lisp/org/ob-ref /home/paag/Devel/org-mode/lisp/org-pcomplete hides /usr/share/emacs/30.0.50/lisp/org/org-pcomplete /home/paag/Devel/org-mode/lisp/ob-eval hides /usr/share/emacs/30.0.50/lisp/org/ob-eval /home/paag/Devel/org-mode/lisp/org-macs hides /usr/share/emacs/30.0.50/lisp/org/org-macs /home/paag/Devel/org-mode/lisp/oc-csl hides /usr/share/emacs/30.0.50/lisp/org/oc-csl /home/paag/Devel/org-mode/lisp/org-capture hides /usr/share/emacs/30.0.50/lisp/org/org-capture /home/paag/Devel/org-mode/lisp/ox-md hides /usr/share/emacs/30.0.50/lisp/org/ox-md /home/paag/Devel/org-mode/lisp/ol-bibtex hides /usr/share/emacs/30.0.50/lisp/org/ol-bibtex /home/paag/Devel/org-mode/lisp/org-agenda hides /usr/share/emacs/30.0.50/lisp/org/org-agenda /home/paag/Devel/org-mode/lisp/org hides /usr/share/emacs/30.0.50/lisp/org/org /home/paag/Devel/org-mode/lisp/ol-irc hides /usr/share/emacs/30.0.50/lisp/org/ol-irc /home/paag/Devel/org-mode/lisp/ob-haskell hides /usr/share/emacs/30.0.50/lisp/org/ob-haskell
/home/paag/Devel/org-mode/lisp/oc hides /usr/share/emacs/30.0.50/lisp/org/oc
/home/paag/Devel/org-mode/lisp/ob-lisp hides /usr/share/emacs/30.0.50/lisp/org/ob-lisp /home/paag/Devel/org-mode/lisp/ox-org hides /usr/share/emacs/30.0.50/lisp/org/ox-org /home/paag/Devel/org-mode/lisp/org-entities hides /usr/share/emacs/30.0.50/lisp/org/org-entities /home/paag/Devel/org-mode/lisp/ob-julia hides /usr/share/emacs/30.0.50/lisp/org/ob-julia /home/paag/Devel/org-mode/lisp/ob-ocaml hides /usr/share/emacs/30.0.50/lisp/org/ob-ocaml /home/paag/Devel/org-mode/lisp/ob-ruby hides /usr/share/emacs/30.0.50/lisp/org/ob-ruby /home/paag/Devel/org-mode/lisp/ob-python hides /usr/share/emacs/30.0.50/lisp/org/ob-python /home/paag/Devel/org-mode/lisp/org-mobile hides /usr/share/emacs/30.0.50/lisp/org/org-mobile /home/paag/Devel/org-mode/lisp/ob-css hides /usr/share/emacs/30.0.50/lisp/org/ob-css /home/paag/Devel/org-mode/lisp/org-datetree hides /usr/share/emacs/30.0.50/lisp/org/org-datetree /home/paag/Devel/org-mode/lisp/org-tempo hides /usr/share/emacs/30.0.50/lisp/org/org-tempo
/home/paag/Devel/org-mode/lisp/ob hides /usr/share/emacs/30.0.50/lisp/org/ob
/home/paag/Devel/org-mode/lisp/ob-processing hides /usr/share/emacs/30.0.50/lisp/org/ob-processing /home/paag/Devel/org-mode/lisp/org-faces hides /usr/share/emacs/30.0.50/lisp/org/org-faces /home/paag/Devel/org-mode/lisp/org-feed hides /usr/share/emacs/30.0.50/lisp/org/org-feed /home/paag/Devel/org-mode/lisp/ob-sed hides /usr/share/emacs/30.0.50/lisp/org/ob-sed /home/paag/Devel/org-mode/lisp/org-macro hides /usr/share/emacs/30.0.50/lisp/org/org-macro /home/paag/Devel/org-mode/lisp/org-element hides /usr/share/emacs/30.0.50/lisp/org/org-element /home/paag/Devel/org-mode/lisp/org-compat hides /usr/share/emacs/30.0.50/lisp/org/org-compat /home/paag/Devel/org-mode/lisp/ob-dot hides /usr/share/emacs/30.0.50/lisp/org/ob-dot /home/paag/Devel/org-mode/lisp/ol-w3m hides /usr/share/emacs/30.0.50/lisp/org/ol-w3m /home/paag/Devel/org-mode/lisp/org-timer hides /usr/share/emacs/30.0.50/lisp/org/org-timer /home/paag/Devel/org-mode/lisp/ob-R hides /usr/share/emacs/30.0.50/lisp/org/ob-R /home/paag/Devel/org-mode/lisp/ox-odt hides /usr/share/emacs/30.0.50/lisp/org/ox-odt /home/paag/Devel/org-mode/lisp/ol-docview hides /usr/share/emacs/30.0.50/lisp/org/ol-docview /home/paag/Devel/org-mode/lisp/org-clock hides /usr/share/emacs/30.0.50/lisp/org/org-clock /home/paag/Devel/org-mode/lisp/ob-screen hides /usr/share/emacs/30.0.50/lisp/org/ob-screen /home/paag/Devel/org-mode/lisp/ol-info hides /usr/share/emacs/30.0.50/lisp/org/ol-info /home/paag/Devel/org-mode/lisp/ox-texinfo hides /usr/share/emacs/30.0.50/lisp/org/ox-texinfo /home/paag/Devel/org-mode/lisp/org-num hides /usr/share/emacs/30.0.50/lisp/org/org-num /home/paag/Devel/org-mode/lisp/ox-html hides /usr/share/emacs/30.0.50/lisp/org/ox-html /home/paag/Devel/org-mode/lisp/org-table hides /usr/share/emacs/30.0.50/lisp/org/org-table /home/paag/Devel/org-mode/lisp/ol-bbdb hides /usr/share/emacs/30.0.50/lisp/org/ol-bbdb /home/paag/Devel/org-mode/lisp/org-src hides /usr/share/emacs/30.0.50/lisp/org/org-src /home/paag/Devel/org-mode/lisp/org-ctags hides /usr/share/emacs/30.0.50/lisp/org/org-ctags /home/paag/Devel/org-mode/lisp/ol-rmail hides /usr/share/emacs/30.0.50/lisp/org/ol-rmail /home/paag/Devel/org-mode/lisp/org-id hides /usr/share/emacs/30.0.50/lisp/org/org-id /home/paag/Devel/org-mode/lisp/org-plot hides /usr/share/emacs/30.0.50/lisp/org/org-plot /home/paag/Devel/org-mode/lisp/ob-emacs-lisp hides /usr/share/emacs/30.0.50/lisp/org/ob-emacs-lisp /home/paag/Devel/org-mode/lisp/ol-doi hides /usr/share/emacs/30.0.50/lisp/org/ol-doi /home/paag/Devel/org-mode/lisp/org-version hides /usr/share/emacs/30.0.50/lisp/org/org-version /home/paag/Devel/org-mode/lisp/org-lint hides /usr/share/emacs/30.0.50/lisp/org/org-lint /home/paag/Devel/org-mode/lisp/ob-sql hides /usr/share/emacs/30.0.50/lisp/org/ob-sql /home/paag/Devel/org-mode/lisp/org-persist hides /usr/share/emacs/30.0.50/lisp/org/org-persist
/home/paag/Devel/org-mode/lisp/ol hides /usr/share/emacs/30.0.50/lisp/org/ol
/usr/share/emacs/site-lisp/latex-cjk-thai/thai-word hides /usr/share/emacs/30.0.50/lisp/language/thai-word

Features:
(shadow sort mail-extr emacsbug message yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa epg rfc6068 epg-config gnus-util
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils yasnippet norte-theme cycle-appearance color oc-biblatex
ob-shell ob-gnuplot ox-odt rng-loc rng-uri rng-parse rng-match rng-dt
rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
ox-icalendar org-agenda ox-html table ox-ascii ox-publish ox org-element
org-persist org-id org-refile org-element-ast inline avl-tree generator
ob-python python org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-src sh-script smie treesit executable ob-comint
org-pcomplete org-list org-footnote org-faces org-entities noutline
outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold
org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs
org-version org-compat org-macs tex-mode eglot external-completion
jsonrpc xref diff diff-mode ert ewoc debug backtrace advice find-func
filenotify imenu company-keywords company-files company-yasnippet
company-capf company pcase tab-line group-tab-line-mode dbus xml
synctex-dbus derived texlog-mode tramp trampver tramp-integration
files-x tramp-message tramp-compat xdg shell pcomplete parse-time
iso8601 time-date format-spec tramp-loaddefs tramp-interactive
flymake-yamllint flymake project compile text-property-search comint
ansi-osc ansi-color thingatpt indent-tools yafolding s hydra ring lv
indent-tools-indentation-of use-package-diminish edmacro kmacro
use-package-bind-key compat elec-pair hl-line server bind-key easy-mmode
use-package-ensure use-package-core finder-inf clojure-mode-autoloads
info company-autoloads exec-path-from-shell-autoloads
flymake-yamllint-autoloads indent-tools-autoloads hydra-autoloads
jinx-autoloads lua-mode-autoloads lv-autoloads move-text-autoloads
multiple-cursors-autoloads s-autoloads visual-regexp-autoloads
yafolding-autoloads yaml-mode-autoloads yasnippet-autoloads package
browse-url url url-proxy url-privacy url-expand url-methods url-history
url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers
url-parse auth-source eieio eieio-core cl-macs password-cache json map
byte-opt url-vars cus-edit pp cus-load wid-edit comp cl-seq comp-cstr
cl-extra help-mode warnings icons subr-x gv cl-loaddefs cl-lib comp-run
bytecomp byte-compile comp-common rx rmc iso-transl tooltip cconv eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo gtk
x-toolkit xinput2 x multi-tty move-toolbar make-network-process
native-compile emacs)

Memory information:
((conses 16 557788 32328) (symbols 48 34775 23)
 (strings 32 169086 6095) (string-bytes 1 4826454) (vectors 16 51859)
 (vector-slots 8 620464 19214) (floats 8 285 23) (intervals 56 473 0)
 (buffers 976 12))






reply via email to

[Prev in Thread] Current Thread [Next in Thread]