    /*
     * 1.1+Swing version.
     */

    import javax.swing.*;
    import javax.swing.event.*;

    /**
     * Based on the source code for DefaultBoundedRangeModel,
     * this class stores its value as a double, rather than
     * an int.  The minimum value and extent are always 0.
     **/
    public class _32 implements BoundedRangeModel {
        protected ChangeEvent _33 = null;
        protected EventListenerList _34 = new EventListenerList();

        protected int _35 = 10000;
        protected int _36 = 0;
        protected int _37 = 0;
        protected double _38 = 0.0;
        protected double _39 = 1.0;
        protected boolean _40 = false;
        final static boolean _41 = false;

        public _32() {}

        public double _42() {
            if (_41) {
                System.out.println("In ConverterRangeModel getMultiplier");
            }
            return _39;
        }

        public void _43(double _44) {
            if (_41) {
                System.out.println("In ConverterRangeModel setMultiplier");
            }
            this._39 = _44;
            _67();
        }

        public int getMaximum() {
            if (_41) {
                System.out.println("In ConverterRangeModel getMaximum");
            }
            return _35;
        }

        public void setMaximum(int _45) {
            if (_41) {
                System.out.println("In ConverterRangeModel setMaximum");
            }
            _58(_38, _37, _36, _45, _40);
        }

        public int getMinimum() {
            return (int)_36;
        }

        public void setMinimum(int _46) {
            System.out.println("In ConverterRangeModel setMinimum");
            //Do nothing.
        }

        public int getValue() {
            if (_41) {
                System.out.println("In ConverterRangeModel getValue");
            }
            return (int)_48();
        }

        public void setValue(int _47) {
            if (_41) {
                System.out.println("In ConverterRangeModel setValue");
            }
            _49((double)_47);
        }

        public double _48() {
            if (_41) {
                System.out.println("In ConverterRangeModel getDoubleValue");
            }
            return _38;
        }

        public void _49(double _50) {
            if (_41) {
                System.out.println("In ConverterRangeModel setDoubleValue");
            }
            _58(_50, _37, _36, _35, _40);
        }

        public int getExtent() {
            return (int)_37;
        }

        public void setExtent(int _51) {}
            //Do nothing.

        public boolean getValueIsAdjusting() {
            return _40;
        }

        public void setValueIsAdjusting(boolean _52) {
            _58(_38, _37, _36, _35, _52);
        }

        public void setRangeProperties(int _53,
                                       int _54,
                                       int _55,
                                       int _56,
                                       boolean _57) {
            System.out.println("In ConverterRangeModel setRangeProperties");
            _58((double)_53, _54, _55, _56, _57);
        }

        public void _58(double _59,
                                       int _60,
                                       int _61,
                                       int _62,
                                       boolean _63) {
            if (_41) {
                System.out.println("setRangeProperties(): "
                                    + "newValue = " + _59
                                    + "; newMax = " + _62);
            }
            if (_62 <= _36) {
                _62 = _36 + 1;
                if (_41) {
                    System.out.println("maximum raised by 1 to " + _62);
                }
            }
            if (Math.round(_59) > _62) { //allow some rounding error
                _59 = _62;
                if (_41) {
                    System.out.println("value lowered to " + _62);
                }
            }

            boolean _64 = false;
            if (_59 != _38) {
                if (_41) {
                    System.out.println("value set to " + _59);
                }
                _38 = _59;
                _64 = true;
            }
            if (_62 != _35) {
                if (_41) {
                    System.out.println("maximum set to " + _62);
                }
                _35 = _62;
                _64 = true;
            }
            if (_63 != _40) {
                _35 = _62;
                _40 = _63;
                _64 = true;
            }

            if (_64) {
                _67();
            }
        }

        /*
         * The rest of this is event handling code copied from
         * DefaultBoundedRangeModel.
         */
        public void addChangeListener(ChangeListener _65) {
            _34.add(ChangeListener.class, _65);
        }

        public void removeChangeListener(ChangeListener _66) {
            _34.remove(ChangeListener.class, _66);
        }

        protected void _67() {
            Object[] _68 = _34.getListenerList();
            for (int _69 = _68.length - 2; _69 >= 0; _69 -= 2) {
                if (_68[_69] == ChangeListener.class) {
                    if (_33 == null) {
                        _33 = new ChangeEvent(this);
                    }
                    ((ChangeListener)_68[_69 + 1]).stateChanged(_33);
                }
            }
        }
    }