bugGNU Octave - Bugs: bug #57730, Segmentation fault attempting to...

 
 

bug #57730: Segmentation fault attempting to install packages

Submitted by:  Allen Windhorn <windhorn>
Submitted on:  Mon 03 Feb 2020 04:44:31 PM UTC  
 
Category:  Octave Forge Package Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Segfault, Bus Error, etc.
Status:  Works For Me Assigned to:  None
Originator Name:  Allen Windhorn Open/Closed:  Closed
Release:  5.2.0 Operating System:  Microsoft Windows

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

( Jump to the original submission)

Thu 20 Feb 2020 07:44:06 PM UTC, comment #37: 

Ok, sounds like this process will be abandoned, so closing as works for me.

If you are able to reproduce the same kinds of errors on a new system, please feel free to reopen or create a new bug report with the details.

Mike Miller <mtmiller>
Project Administrator
Wed 19 Feb 2020 11:57:27 PM UTC, comment #36: 

temp needs to be TEMP - ie: env names are case sensitive

>> setenv("TEMP", "c:\\tmp")

John Donoghue <lostbard>
Project Member
Wed 19 Feb 2020 10:17:39 PM UTC, comment #35: 

comment #34:

> Still not clear at all. The only thing that's clear from
> this output is that the 'configure' script in the io package
> isn't running...


I looked at the configure script, and it is total gibberish to me.

> Here's what the output looks like on my Windows 10 VM with Octave 5.2.0

> >> setenv TEMP 'C:\Users\User\tempdir'
> >> cd (tempdir ())
> >> pkg install -forge -verbose io
> mkdir (C:\Users\User\tempdir\oct-sWEMni)
> untar (C:\Users\User\tempdir\io-2.4.13.tar.gz, C:\Users\User\tempdir\oct-sWEMni)
> configure: loading site script /usr/local/etc/config.site
> checking for mkoctfile... C:/PROGRA~1/Octave/528FAD~1.0/mingw64/bin/mkoctfile-5.2.0.exe --verbose
> checking for octave-config...
> ...


It doesn't seem to make any difference what I set TEMP to --  it always uses c:\Octave\Temp, which is OK AFAIK.

> If this were affecting me, I would try running the
> equivalent commands that the 'pkg' function runs and try to
> see what's going on.


I can't tell what commands the pkg function is running, except for mkdir and untar, which work.  Error traceback sources "configure_make" and "install" can't be found anywhere in the Octave path.

Since I will be moving to a different computer in a few months, I will give up on this process and hope it goes more smoothly on a different machine (one where I am admin).  Thanks to all for your help.

Regards,
Allen

Allen Windhorn <windhorn>
Tue 18 Feb 2020 11:24:26 PM UTC, comment #34: 

Still not clear at all. The only thing that's clear from this output is that the 'configure' script in the io package isn't running. Since it works on most other Windows systems people have tested Octave on, you'll probably have to do some more digging on your system to find out what's different.

Here's what the output looks like on my Windows 10 VM with Octave 5.2.0

>> setenv TEMP 'C:\Users\User\tempdir'
>> cd (tempdir ())
>> pkg install -forge -verbose io
mkdir (C:\Users\User\tempdir\oct-sWEMni)
untar (C:\Users\User\tempdir\io-2.4.13.tar.gz, C:\Users\User\tempdir\oct-sWEMni)
configure: loading site script /usr/local/etc/config.site
checking for mkoctfile... C:/PROGRA~1/Octave/528FAD~1.0/mingw64/bin/mkoctfile-5.2.0.exe --verbose
checking for octave-config...
...

If this were affecting me, I would try running the equivalent commands that the 'pkg' function runs and try to see what's going on.

Mike Miller <mtmiller>
Project Administrator
Tue 18 Feb 2020 10:57:28 PM UTC, comment #33: 

comment #32:

> Your latest error message only reflects that the 'make' command returned with a failed exit status.
>
> The real error message doesn't show up in the output that you pasted.
>
> If you want the full output, you might need to install with the '-verbose' option.


Here I have used that:

>> setenv("temp", "c:\\tmp")
>> system("set temp")

TEMP=c:\tmp
ans = 0

>> pkg install -forge -verbose io

mkdir (c:\Octave\Temp\oct-JuIaj7)
untar (H:\work\matlab\io-2.4.13.tar.gz, c:\Octave\Temp\oct-JuIaj7)

pkg: error running `make' for the io package.
error: called from
    configure_make at line 99 column 9
    install at line 190 column 7
    pkg at line 441 column 9

I note that in spite of setting the "temp" value, pkg still uses c:\Octave\Temp (which exists, and is writeable and executable, though presently empty).

Allen Windhorn <windhorn>
Tue 18 Feb 2020 10:05:06 PM UTC, comment #32: 

Your latest error message only reflects that the 'make' command returned with a failed exit status.

The real error message doesn't show up in the output that you pasted.

If you want the full output, you might need to install with the '-verbose' option.

Mike Miller <mtmiller>
Project Administrator
Fri 14 Feb 2020 04:14:46 PM UTC, comment #31: 

comment #30:

> It was reported before that some systems prevent executing files in  the default %temp% directory.
> Could you please try setting temp to a different directory for which you have write (and execute) permission?


>> system("set temp")

TEMP=C:\Users\windhoal\AppData\Local\Temp
ans = 0
# I have write access to this directory

>> setenv("temp", "c:\\tmp")
>> system("set temp")

TEMP=c:\tmp
ans = 0

>> pkg install -forge io

make: Entering directory '/c/tmp/oct-6tt4KA/io-2.4.13/src'
C:/Octave/OCTAVE~1.0-W/mingw64/bin/mkoctfile-5.2.0.exe csvexplode.cc
make: Leaving directory '/c/tmp/oct-6tt4KA/io-2.4.13/src'

pkg: error running `make' for the io package.
error: called from
    configure_make at line 99 column 9
    install at line 190 column 7
    pkg at line 441 column 9

I note that it no longer shows a segmentation fault though.

I don't know where to find configure_make -- what's at line 99?

Regards,
Allen

Allen Windhorn <windhorn>
Fri 14 Feb 2020 03:55:53 PM UTC, comment #30: 

It was reported before that some systems prevent executing files in  the default %temp% directory.
Could you please try setting temp to a different directory for which you have write (and execute) permission?

setenv('temp', 'C:\some\other\directory');  % This directory must exist

Does this allow installing packages?

Markus Mützel <mmuetzel>
Project Member
Fri 14 Feb 2020 03:43:17 PM UTC, comment #29: 

comment #28:

> The latest version of the io package is already bundled with Octave for Windows.


Yes, I know, but I'm just using that package to illustrate the problem with pkg install.

Allen Windhorn <windhorn>
Fri 14 Feb 2020 12:32:44 PM UTC, comment #28: 

The latest version of the io package is already bundled with Octave for Windows.
In case trying to install it broke the bundled io package, remove Octave. Then install it again.
If you are using the .zip or .7z archive (not the installer), run the "post-install.bat" or execute "pkg rebuild" from the Octave prompt once after unzipping (see also [1] referred to on the download page).

[1]: https://wiki.octave.org/Octave_for_Microsoft_Windows

Markus Mützel <mmuetzel>
Project Member
Thu 13 Feb 2020 09:18:27 PM UTC, comment #27: 

I note (now that sh starts) that it starts in /usr/bin.  I have a c:/usr/bin directory, but that's probably not where the shell expected to end up.

Allen Windhorn <windhorn>
Thu 13 Feb 2020 09:14:31 PM UTC, comment #26: 

comment #25:

> Remove c:\MinGW\bin frpom the path as well.


Progress!

>> system("sh")

sh-4.4$ ls
sh-4.4$ exit
exit
ans =  2

>> pkg install -forge io

make: *** [Makefile:6: csvexplode.oct] Segmentation fault (core dumped)
                                                                       make: Entering directory '/c/Users/windhoal/AppD
ata/Local/Temp/oct-Xt8QYY/io-2.4.13/src'
C:/Octave/OCTAVE~1.0-W/mingw64/bin/mkoctfile-5.2.0.exe csvexplode.cc
make: Leaving directory '/c/Users/windhoal/AppData/Local/Temp/oct-Xt8QYY/io-2.4.13/src'

pkg: error running `make' for the io package.
error: called from
    configure_make at line 99 column 9
    install at line 190 column 7
    pkg at line 441 column 9

>>

Allen Windhorn <windhorn>
Thu 13 Feb 2020 08:20:41 PM UTC, comment #25: 

Remove c:\MinGW\bin frpom the path as well.

John Donoghue <lostbard>
Project Member
Thu 13 Feb 2020 07:53:50 PM UTC, comment #24: 

comment #23:

> ...You may not have permission to remove things from the global PATH, but can you try reducing the number of directories that are in PATH inside of Octave by using setenv("PATH", "...")? The new value of PATH in Octave should be inherited by any programs started from Octave.


Yes, that does need cleaning up -- everything wants to be on the path.

> Since the sh.exe included with Octave works for everyone else, my guess is that the more additional programs and bundles that are included in the PATH variable, the more likely that some program or DLL will interfere with the expected behavior...


It didn't occur to me that sh would be using DLLs, but if it is, I would expect it to look in its own directory first.  Anyway, I changed the path in .octaverc:

>> system("PATH")

PATH=c:\Octave\Octave-5.2.0-w64\usr\bin;c:\Octave\Octave-5.2.0-w64\mingw64\bin;c:\MinGW\bin;
ans = 0

>> system("sh")

sh-4.4$ ls
Segmentation fault
sh-4.4$

And when I do "sh" in the Octave directory, and use any filesystem command, I get the same segmentation fault.

Allen Windhorn <windhorn>
Wed 12 Feb 2020 11:45:36 PM UTC, comment #23: 

The latest comment got truncated, but it contained a huge list of directories in PATH, including Anaconda, Matlab, PuTTY, and whatever's in C:\usr\bin.

You may not have permission to remove things from the global PATH, but can you try reducing the number of directories that are in PATH inside of Octave by using setenv("PATH", "...")? The new value of PATH in Octave should be inherited by any programs started from Octave.

Since the sh.exe included with Octave works for everyone else, my guess is that the more additional programs and bundles that are included in the PATH variable, the more likely that some program or DLL will interfere with the expected behavior. Since Windows uses PATH for DLL search (instead of LD_LIBRARY_PATH like other systems), it may be that the right executable is being called, but the wrong "msys" or other DLLs are being found.

https://en.wikipedia.org/wiki/DLL_Hell

Mike Miller <mtmiller>
Project Administrator
Wed 12 Feb 2020 11:01:43 PM UTC, comment #22: 

comment #21:

> Which Windows version are you using? 


Version 10 Pro, our sysadmin keeps it updated.

> As you previously showed, you have several bash shells on
> your system. At least the one that comes with Octave and
> another one at C:\usr\bin\.
> So, it is very important that you run the following
> commands from the Octave command window (not a different
> shell or prompt).
> What do you see for the following (in Octave)?

Allen Windhorn <windhorn>
Wed 12 Feb 2020 04:40:27 PM UTC, comment #21: 

Which Windows version are you using?

As you previously showed, you have several bash shells on your system. At least the one that comes with Octave and another one at C:\usr\bin\.
So, it is very important that you run the following commands from the Octave command window (not a different shell or prompt).
What do you see for the following (in Octave)?

system("sh --version")
system("where sh")
getenv("PATH")

Please, show what you see.

Apart from that: Could you de-activate your anti-virus and try again.

That's all things that have been asked in previous comments. But you haven't given clear answers yet.

Markus Mützel <mmuetzel>
Project Member
Wed 12 Feb 2020 03:03:45 PM UTC, comment #20: 

comment #19:

> No response for a week.  Problem seems to be solved.


I have been on other languages for several days, but yesterday I installed Octave 5.2.0 (octave-5.2.0_1-w64.zip) and started using link to octave.vbs:

GNU Octave, version 5.2.0
Copyright (C) 2020 John W. Eaton and others.
...
Octave was configured for "x86_64-w64-mingw32".
...

>> system("sh")

sh-4.4$ ls
Segmentation fault
sh-4.4$

and:

C:\Octave\octave-5.2.0-w64\usr\bin>sh
sh-4.4$ ls
Segmentation fault
sh-4.4$

So the problem is not solved for me.

Regards,
Allen

Allen Windhorn <windhorn>
Wed 12 Feb 2020 08:18:12 AM UTC, comment #19: 

No response for a week.  Problem seems to be solved.

Kai Torben Ohlhus <siko1056>
Project Member
Wed 05 Feb 2020 01:00:14 AM UTC, comment #18: 

I just installed 5.2.0 zip on a fresh Windows 10 VM, opened a standard command prompt to «OCTAVE»\usr\bin, ran sh, and everything seems to work fine.

I also started Octave with octave.vbs, ran system('sh'), and everything seems to work fine there too.

Mike Miller <mtmiller>
Project Administrator
Tue 04 Feb 2020 11:48:02 PM UTC, comment #17: 

Per the wiki: https://wiki.octave.org/Octave_for_Microsoft_Windows#Installers_for_Microsoft_Windows

If using the tar / 7zip file, after installing it, you need to run the post-install.bat and then run from the .vbs file

Even 4.4.1 had issues when running is direct from the exe file, which may or may not be related to the issues you are currently seeing.

If it is still crashing after doing above, can you try the the new octave 5.2.0 files.

John Donoghue <lostbard>
Project Member
Tue 04 Feb 2020 10:22:32 PM UTC, comment #16: 

comment #15:

> Comment #10 appeared to be run from a COmmand Window rather than a bash shell window which is why I mentioned about the paths.


I ran sh.exe from a command window, to show that even without Octave it gives a segmentation fault.  Maybe it can't be run that way, but v4.4.1 can.

> Also do not run octave-gui.exe - use the supplied .vbs or .bat files - otherwise the paths may not be correct and other variables may or may not be set up.
>
> The installer creates the shortcuts for you.


IIRC, the installer requires admin privileges.  If I had any shortcuts initially, I have lost them.  I tried running octave.vbs, same segmentation fault.

If I run cmdshell.bat in c:\Octave\Octave-4.4.1 and then ls, I get a directory listing.  If I do the same in Octave-5.1.0.0, I get a segmentation fault.

Allen Windhorn <windhorn>
Tue 04 Feb 2020 09:26:01 PM UTC, comment #15: 

Comment #10 appeared to be run from a COmmand Window rather than a bash shell window which is why I mentioned about the paths.

Also do not run octave-gui.exe - use the supplied .vbs or .bat files - otherwise the paths may not be correct and other variables may or may not be set up.

The installer creates the shortcuts for you.

John Donoghue <lostbard>
Project Member
Tue 04 Feb 2020 07:28:50 PM UTC, comment #14: 

> You need to run using the bash shell link from the octave install in order to see the octave corrected paths.


The shell executable located at C:\Octave\Octave-5.1.0.0\usr\bin\sh.exe is being run by the pkg install command, as far as I can tell, but causes a segmentation fault when it is invoked to do something.  This seems to be a bash shell (has a $ prompt).  This is the Octave install I am using currently.  This sh.exe also causes a segmentation fault when I run it independent of Octave.  I have version 4.4.1 installed as well.  That has its own shell instance, which doesn't cause a segmentation fault (either way), but it doesn't work for 5.1.0.0 either.  I don't know what "Octave corrected paths" means or why I would want to see them.

> How are you running octave ? Installer shortcut, the octave.bat file or someother method?


octave-gui.exe usually via a shortcut on desktop.

Allen Windhorn <windhorn>
Tue 04 Feb 2020 06:33:15 PM UTC, comment #13: 

You need to run using the bash shell link from the octave install in order to see the octave corrected paths.

How are you running octave ? Installer shortcut, the octave.bat file or someother method?

John Donoghue <lostbard>
Project Member
Tue 04 Feb 2020 06:14:40 PM UTC, comment #12: 

... and I replaced sh.exe with the one from the zip file, no change.

Allen Windhorn <windhorn>
Tue 04 Feb 2020 06:10:56 PM UTC, comment #11: 

So I renamed sh.exe sh_5.1.exe and copied the sh.exe from Octave-4.4.1\bin to Octave-5.1.0.0\usr\bin:

>> pkg install -forge windows

sh.exe: ./configure: /bin/sh: bad interpreter: No such file or directory

pkg: error running the configure script for windows.
error: called from
    configure_make at line 82 column 9
    install at line 184 column 7
    pkg at line 441 column 9

Allen Windhorn <windhorn>
Tue 04 Feb 2020 06:06:33 PM UTC, comment #10: 

comment #9:

> Windows doesnt have the which command.
>
> Perhaps:
>
> system("sh --version")
> and
> getenv('PATH')


MY Windows has the which command :-)
C:\Users\windhoal>which sh.exe
c:\usr\bin\sh.exe

C:\Users\windhoal>sh
MKTLT-9GMNSQ2# exit

C:\Users\windhoal>

No idea what shell that is.
Path is the same, Octave 4.4.1 but not Octave 5.1.0.
I renamed sh.exe and changed the path to add Octave 5.1.0,
but no improvement:

>> system("sh")

sh-4.4$ ls -lag
Segmentation fault
sh-4.4$

This is the shell in Octave-5.1.0.0\usr\bin\.
So the problem is definitely related to sh.

> My version reports as:
> GNU bash, version 4.4.23(1)-release (x86_64-pc-msys)
>
> The first few entries of the path variable in octave are:
>  C:\Octave\Octave-5.1.0.0\mingw64\qt5\bin;C:\Octave\Octave-5.1.0.0\mingw64\bin;C:\Octave\Octave-5.1.0.0\usr\bin;
>
> Where sh.exe is in C:\Octave\Octave-5.1.0.0\usr\bin


Allen

Allen Windhorn <windhorn>
Mon 03 Feb 2020 09:30:42 PM UTC, comment #9: 

Windows doesnt have the which command.

Perhaps:

system("sh --version")

and

getenv('PATH')

My version reports as:
GNU bash, version 4.4.23(1)-release (x86_64-pc-msys)

The first few entries of the path variable in octave are:
 C:\Octave\Octave-5.1.0.0\mingw64\qt5\bin;C:\Octave\Octave-5.1.0.0\mingw64\bin;C:\Octave\Octave-5.1.0.0\usr\bin;

Where sh.exe is in C:\Octave\Octave-5.1.0.0\usr\bin

If anything else is in the path before that, that has the sh command, it may be used first.

John Donoghue <lostbard>
Project Member
Mon 03 Feb 2020 08:09:36 PM UTC, comment #8: 

To check Mike's hypothesis; can you do (at octave's prompt)

system("which sh")
system("sh")

If you get shell prompt at the end, just type "exit".

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Mon 03 Feb 2020 07:55:33 PM UTC, comment #7: 

comment #2:

> It actually looks like your gcc toolchain is broken.
> Can you install any other package from octave-forge
> (that requires a compiler run)?
>
> Dmitri.


Not sure -- what packages require compiler runs?

I tried the windows package as an example, same fault.

Allen

Allen Windhorn <windhorn>
Mon 03 Feb 2020 07:53:08 PM UTC, comment #6: 

comment #3:

> Try running in octave:
>
> system("gcc -v")


Result:

>> system("gcc -v")

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/octave/octave~1.0/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/7.4.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: /release/mxe-octave-w64/tmp-native-gcc/gcc-7.4.0/configure --target=x86_64-w64-mingw32 --host=x86_64-w
64-mingw32 --build=x86_64-pc-linux-gnu --prefix=/release/mxe-octave-w64/usr/x86_64-w64-mingw32 --enable-languages=c,c++
,fortran --disable-libsanitizer --enable-version-specific-runtime-libs --disable-nls --without-x --disable-win32-regist
ry --with-native-system-header-dir=/release/mxe-octave-w64/usr/x86_64-w64-mingw32/include --enable-threads=posix --disa
ble-multilib --enable-64bit --disable-libgomp --with-cloog=/release/mxe-octave-w64/usr/x86_64-w64-mingw32 --with-gmp=/r
elease/mxe-octave-w64/usr/x86_64-w64-mingw32 --with-isl=/release/mxe-octave-w64/usr/x86_64-w64-mingw32 --with-mpc=/rele
ase/mxe-octave-w64/usr/x86_64-w64-mingw32 --with-mpfr=/release/mxe-octave-w64/usr/x86_64-w64-mingw32
Thread model: posix
gcc version 7.4.0 (GCC)
ans = 0

> If that works, do have have any virus protection
> software that is being over protective?


We have new virus software, not sure why that should make a difference.

Allen

Allen Windhorn <windhorn>
Mon 03 Feb 2020 07:50:37 PM UTC, comment #5: 

comment #1:

> Can you start octave and
>
> _run_test_suite_
>
> to see if you get segfault there?
>
> Dmitri.


I did so, and the results were:

Summary:

  PASS                            15480
  FAIL                                3
  REGRESSION                          1
  XFAIL (reported bug)               28
  SKIP (missing feature)             52
  SKIP (run-time condition)          31

The failed items were:

strings\str2num.m
.Hej

 PASS    5/6
                                                                   FAIL    1

  path\pathdef.m

PASS    2/4
                                                                   FAIL    1
                                                              REGRESSION   1

  path\savepath.m

 PASS    0/1
                                                                   FAIL    1

No segfault.

Allen

Allen Windhorn <windhorn>
Mon 03 Feb 2020 06:20:05 PM UTC, comment #4: 

Given that this is Windows, it's possibly more likely that when Octave calls 'sh' to run a package configure script, it's getting the wrong 'sh' executable, possibly from a separate installation of MinGW, Cygwin, or some other application bundled with utilities like Anaconda or Git.

Mike Miller <mtmiller>
Project Administrator
Mon 03 Feb 2020 05:15:55 PM UTC, comment #3: 

Try running in octave:

system("gcc -v")

If that works, do have have any virus protection software that is being over protective ?

John Donoghue <lostbard>
Project Member
Mon 03 Feb 2020 04:58:35 PM UTC, comment #2: 

It actually looks like your gcc toolchain is broken.
Can you install any other package from octave-forge
(that requires a compiler run)?

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Mon 03 Feb 2020 04:51:23 PM UTC, comment #1: 

Can you start octave and

_run_test_suite_

to see if you get segfault there?

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Mon 03 Feb 2020 04:44:31 PM UTC, original submission:  

Packages io and optiminterp give segmentation faults when I try to install them:

>> pkg install -verbose -forge optiminterp

mkdir (c:\Octave\Temp\oct-UPNRut)
untar (H:\work\matlab\optiminterp-0.3.6.tar.gz, c:\Octave\Temp\oct-UPNRut)
sh: line 1:  9080 Segmentation fault      (core dumped) MKOCTFILE='C:/Octave/OCTAVE~1.0/mingw64/bin/mkoctfile-5.1.0.exe
 --verbose' OCTAVE_CONFIG='C:/Octave/OCTAVE~1.0/mingw64/bin/octave-config-5.1.0.exe' OCTAVE='C:/Octave/OCTAVE~1.0/mingw
64/bin/octave-5.1.0.bat' ./configure CC=gcc

pkg: error running the configure script for optiminterp.
error: called from
    configure_make at line 82 column 9
    install at line 184 column 7
    pkg at line 441 column 9

Same if I download the file and install it directly.

Allen Windhorn <windhorn>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mmuetzel (Posted a comment)
  • -email is unavailable- added by siko1056 (Posted a comment)
  • -email is unavailable- added by lostbard (Posted a comment)
  • -email is unavailable- added by dasergatskov (Posted a comment)
  • -email is unavailable- added by windhorn (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

     

     

    Follow 7 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2020-02-20 mtmiller StatusNeed Info => Works For Me
        Open/ClosedOpen => Closed
    2020-02-12 mmuetzel StatusInvalid => Need Info
        Open/ClosedClosed => Open
        Release5.1.0 => 5.2.0
    2020-02-12 siko1056 StatusNone => Invalid
        Open/ClosedOpen => Closed

    Back to the top


    Powered by Savane 3.5