!<arch>
/               1121289500  0     0     0       28280     `
    q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q  q                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b| b|                                                                                                                  _ZN10async_chat18ac_out_buffer_sizeE _ZN10async_chat17ac_in_buffer_sizeE _ZN10async_chat15null_terminatorE _ZN10async_chat14set_terminatorERKSs _ZN10async_chat14get_terminatorEv _ZN10async_chat11handle_readEv _ZN10async_chat12handle_writeEv _ZN10async_chat13initiate_sendEv _ZN10async_chat4sendERKSs _ZTV15simple_producer _ZNSt5dequeIP8producerSaIS1_EE16_M_push_back_auxERKS1_ _ZTV8producer _ZN10async_chat4sendEP8producer _ZN10async_chat8readableEv _ZN10async_chat8writableEv _ZN10async_chat13refill_bufferEv _ZNSt5dequeIP8producerSaIS1_EE16_M_pop_front_auxEv _ZTV10async_chat _ZTI10async_chat _ZN10dispatcher14handle_connectEv _ZN10dispatcher12handle_closeEv _ZN10dispatcher13handle_acceptEv _ZN10dispatcher12handle_errorEi _ZN10async_chatD1Ev _ZN10async_chatD0Ev _ZN10async_chat21collect_incoming_dataERKSs _ZN10async_chat16found_terminatorEv _ZTI15simple_producer _ZN15simple_producerD1Ev _ZN15simple_producerD0Ev _ZN15simple_producer4moreEv _ZTI8producer _ZN8producerD1Ev _ZN8producerD0Ev _ZNSt11_Deque_baseIP8producerSaIS1_EED2Ev _ZNSt5dequeIP8producerSaIS1_EE17_M_reallocate_mapEjb _ZTS8producer _ZTS15simple_producer _ZTS10async_chat _ZTI10dispatcher _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE _ZNSt11_Deque_baseIP8producerSaIS1_EE16_M_destroy_nodesEPPS1_S5_ _ZTS10dispatcher _ZN10dispatcher8channelsE _ZN10dispatcher11add_channelEv _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE11lower_boundERS1_ _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE13insert_uniqueESt17_Rb_tree_iteratorIS4_RS4_PS4_ERKS4_ _ZN10dispatcher13create_socketEiii _ZN10dispatcher12set_blockingEb _ZN10dispatcher10set_filenoEib _ZN10dispatcher4bindEP8sockaddrj _ZN10dispatcher6listenEj _ZN10dispatcher6acceptEP8sockaddrPj _ZN10dispatcher7connectEP8sockaddrj _ZN10dispatcher4sendEPKcji _ZN10dispatcher5closeEv _ZN10dispatcher4recvEPcji _ZN10dispatcher17handle_read_eventEv _ZN10dispatcher18handle_write_eventEv _ZN10dispatcher13dump_channelsEv _ZNSt22_Rb_tree_base_iterator12_M_incrementEv _ZN10dispatcher22delete_closed_channelsEv _ZNSt4listIiSaIiEE6insertESt14_List_iteratorIiRiPiERKi _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE5eraseERS1_ _ZNSt10_List_baseIiSaIiEE7__clearEv _ZN10dispatcher4pollEP7timeval _ZN10dispatcher5loop1EP7timeval _ZN10dispatcher4loopEP7timeval _ZNSt22_Rb_tree_base_iterator12_M_decrementEv _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE9_M_insertEPSt18_Rb_tree_node_baseSC_RKS4_ _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE13insert_uniqueERKS4_ _ZNSt4listIiSaIiEE14_M_create_nodeERKi _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE11upper_boundERS1_ _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE5eraseESt17_Rb_tree_iteratorIS4_RS4_PS4_ESE_ _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE14_M_create_nodeERKS4_ _ZSt18_Rb_tree_rebalancePSt18_Rb_tree_node_baseRS0_ _ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS0_S1_S1_ _ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_ _ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_ _ZN13imview_serverC2Ev _ZTV13imview_server _ZN13imview_serverC1Ev _ZN13imview_serverD2Ev _ZNSt4listIP14imview_channelSaIS1_EE5eraseESt14_List_iteratorIS1_RS1_PS1_E _ZNSt10_List_baseIP14imview_channelSaIS1_EE7__clearEv _ZN13imview_serverD1Ev _ZN13imview_serverD0Ev _ZN13imview_server13handle_acceptEv _ZN14imview_channelC1Ev _ZNSt4listIP14imview_channelSaIS1_EE6insertESt14_List_iteratorIS1_RS1_PS1_ERKS1_ _ZN18datachannel_openerD2Ev _ZTV18datachannel_opener _ZNSt4listIP11imview_dataSaIS1_EE5eraseESt14_List_iteratorIS1_RS1_PS1_E _ZNSt10_List_baseIP11imview_dataSaIS1_EE7__clearEv _ZN18datachannel_openerD1Ev _ZN18datachannel_openerD0Ev _ZN18datachannel_opener13handle_acceptEv _ZN11imview_dataC1Ev _ZNSt4listIP11imview_dataSaIS1_EE6insertESt14_List_iteratorIS1_RS1_PS1_ERKS1_ _ZN13imview_server17open_data_channelERSs _ZN13imview_server18close_data_channelEv _ZN13imview_server14manage_resultsEv _ZN14imview_channel14result_isemptyEv _ZN14imview_channel10sendResultEv _ZN13imview_server15manage_commandsEv _ZN14imview_channel15command_isemptyEv _ZN14imview_channel12read_commandEv _ZN14imview_channel12write_resultERSs _ZN11imview_data11channels_idE _ZN11imview_dataC2Ev _ZTV11imview_data _ZN11imview_dataD2Ev _ZN11imview_dataD1Ev _ZN11imview_dataD0Ev _ZN11imview_data14handle_connectEv _ZN11imview_data11handle_readEv _ZN11imview_data12handle_writeEv _ZN11imview_data12handle_closeEv _ZN14imview_channel11channels_idE _ZN14imview_channelC2Ev _ZNSt11_Deque_baseIP8producerSaIS1_EEC2ERKS2_j _ZNSaIP8producerED1Ev _ZSt6__copyISt15_Deque_iteratorIP8producerRKS2_PS3_ES0_IS2_RS2_PS2_EET0_T_SB_SA_St26random_access_iterator_tag _ZNSt5dequeIP8producerSaIS1_EED1Ev _ZTV14imview_channel _ZNSt11_Deque_baseIP8producerSaIS1_EED2Ev _ZNSt10_List_baseISsSaISsEE7__clearEv _ZN14imview_channelD2Ev _ZN14imview_channelD1Ev _ZN14imview_channelD0Ev _ZN14imview_channel15protect_commandEv _ZN14imview_channel17unprotect_commandEv _ZN14imview_channel13write_commandERSs _ZNSt4listISsSaISsEE6insertESt14_List_iteratorISsRSsPSsERKSs _ZNSt4listISsSaISsEE5eraseESt14_List_iteratorISsRSsPSsE _ZN14imview_channel14protect_resultEv _ZN14imview_channel16unprotect_resultEv _ZN14imview_channel11read_resultEv _ZN14imview_channel12handle_closeEv _ZN14imview_channel21collect_incoming_dataERKSs _ZN14imview_channel16found_terminatorEv _Z11init_serverPi _ZTI14imview_channel _ZN10dispatcher14handle_connectEv _ZN10dispatcher13handle_acceptEv _ZN10dispatcher12handle_errorEi _ZTI11imview_data _ZN10dispatcher8readableEv _ZN10dispatcher8writableEv _ZTI18datachannel_opener _ZN10dispatcher11handle_readEv _ZN10dispatcher12handle_writeEv _ZN10dispatcher12handle_closeEv _ZTI13imview_server _ZNSt11_Deque_baseIP8producerSaIS1_EE16_M_destroy_nodesEPPS1_S5_ _ZNSt4listIP14imview_channelSaIS1_EE14_M_create_nodeERKS1_ _ZNSt4listIP11imview_dataSaIS1_EE14_M_create_nodeERKS1_ _ZNSt11_Deque_baseIP8producerSaIS1_EE17_M_initialize_mapEj _ZNSt11_Deque_baseIP8producerSaIS1_EE15_M_create_nodesEPPS1_S5_ _ZNSt4listISsSaISsEE14_M_create_nodeERKSs _ZTS11imview_data _ZTI10dispatcher _ZTS14imview_channel _ZTS18datachannel_opener _ZTS13imview_server _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE _ZTS10dispatcher _Z14semaphore_initP9Semaphore _Z17semaphore_destroyP9Semaphore _Z12semaphore_upP9Semaphore _Z21tw_pthread_mutex_lockP15pthread_mutex_t _Z23tw_pthread_mutex_unlockP15pthread_mutex_t _Z22tw_pthread_cond_signalP14pthread_cond_t _Z14semaphore_downP9Semaphore _Z20tw_pthread_cond_waitP14pthread_cond_tP15pthread_mutex_t _Z19semaphore_decrementP9Semaphore _Z15semaphore_valueP9Semaphore ActionResult _ZN8complain7performERSt6vectorISsSaISsEERSs _ZN4cmap7performERSt6vectorISsSaISsEERSs _ZN4move7performERSt6vectorISsSaISsEERSs _ZN4size7performERSt6vectorISsSaISsEERSs _ZN4load7performERSt6vectorISsSaISsEERSs _ZN4quit7performERSt6vectorISsSaISsEERSs _ZN6killme7performERSt6vectorISsSaISsEERSs _ZN16interpreter_help7performERSt6vectorISsSaISsEERSs _ZN4userC2Ev _ZTV4user _ZTV6action _ZN4userC1Ev _ZN4user7performERSt6vectorISsSaISsEERSs _ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode _ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev _ZN13set_pointfile7performERSt6vectorISsSaISsEERSs _ZN14load_pointfile7performERSt6vectorISsSaISsEERSs _ZN14save_pointfile7performERSt6vectorISsSaISsEERSs _ZN15clear_pointfile7performERSt6vectorISsSaISsEERSs _ZN4deny7performERSt6vectorISsSaISsEERSs _ZN3put11find_headerEPKc _ZN3put3imhE _ZN3put11find_headerEj _ZN3put13delete_headerEPKc _ZN3put13delete_headerEP12image_header _ZNSt6vectorIP12image_headerSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EE _ZN3put13delete_headerEj _ZN3put8callbackEPvm _ZN3put7id_poolE _ZN3put7performERSt6vectorISsSaISsEERSs _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ _ZNSt6vectorIP12image_headerSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _ZN15print_pointfile7performERSt6vectorISsSaISsEERSs _ZN11set_appname7performERSt6vectorISsSaISsEERSs _ZN4zoom7performERSt6vectorISsSaISsEERSs _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_ _ZN3pan7performERSt6vectorISsSaISsEERSs _ZN5reset7performERSt6vectorISsSaISsEERSs _ZN11close_image7performERSt6vectorISsSaISsEERSs _ZN12raise_window7performERSt6vectorISsSaISsEERSs _ZN14iconize_window7performERSt6vectorISsSaISsEERSs _ZN11hide_window7performERSt6vectorISsSaISsEERSs _ZN11show_window7performERSt6vectorISsSaISsEERSs _ZN6imlink7performERSt6vectorISsSaISsEERSs _ZTV15TCPStreamBufferIcSt11char_traitsIcEE _ZTT22TCPGenericClientStreamIcSt11char_traitsIcEE _ZTV22TCPGenericClientStreamIcSt11char_traitsIcEE _ZNSt6vectorIP10connectionSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _ZN16TCPGenericStreamIcSt11char_traitsIcEED2Ev _ZN8imunlink7performERSt6vectorISsSaISsEERSs _ZN12set_variable7performERSt6vectorISsSaISsEERSs _ZN11interpreter11setVariableERKSsS1_ _ZN12get_variable7performERSt6vectorISsSaISsEERSs _ZN11interpreter11getVariableERKSsRSs _ZN14list_variables7performERSt6vectorISsSaISsEERSs _ZN11interpreter13listVariablesEv _ZN8tokenize7performERSt6vectorISsSaISsEERSs _ZN15useoffscreenbuf3setERKSs _Z15fromstr_convertRKSsRb _ZN15useoffscreenbuf3getEv _Z13tostr_convertb _ZN15useoffscreenbuf4listEv _ZN13lutwraparound3setERKSs _ZN13lutwraparound3getEv _ZN13lutwraparound4listEv _ZN11syncdisplay3setERKSs _ZN11syncdisplay3getEv _ZN11syncdisplay4listEv _ZN14imagewindowfit3setERKSs _Z15fromstr_convertRKSsRi _ZN14imagewindowfit3getEv _Z13tostr_converti _ZN14imagewindowfit4listEv _ZN14connectionlist3getEv _ZN11linkmanager17print_connectionsEv _ZN14connectionlist4listEv _ZN11linkmanager11getresponseEP22TCPGenericClientStreamIcSt11char_traitsIcEE _ZN11linkmanager7zoomboxEiiii _ZN11linkmanager10zoomfactorEd _ZN11linkmanager20setDefaultZoomFactorEd _ZN11linkmanager12resetDisplayEv _ZN11interpreterC2Ev _ZTV8complain _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE11lower_boundERS1_ _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueESt17_Rb_tree_iteratorIS4_RS4_PS4_ERKS4_ _ZTV4quit _ZTV6killme _ZTV16interpreter_help _ZTV15print_pointfile _ZTV4deny _ZTV3put _ZTV11set_appname _ZTV13set_pointfile _ZTV14load_pointfile _ZTV14save_pointfile _ZTV15clear_pointfile _ZTV4load _ZTV4move _ZTV4size _ZTV4cmap _ZTV4zoom _ZTV3pan _ZTV5reset _ZTV11close_image _ZTV12raise_window _ZTV14iconize_window _ZTV11hide_window _ZTV11show_window _ZTV12set_variable _ZTV12get_variable _ZTV14list_variables _ZTV8tokenize _ZTV6imlink _ZTV8imunlink _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE11lower_boundERS1_ _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueESt17_Rb_tree_iteratorIS4_RS4_PS4_ERKS4_ _ZTV15useoffscreenbuf _ZTV13lutwraparound _ZTV11syncdisplay _ZTV14imagewindowfit _ZTV14connectionlist _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE11lower_boundERS1_ _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueESt17_Rb_tree_iteratorIS3_RS3_PS3_ERKS3_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE11lower_boundERS1_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueESt17_Rb_tree_iteratorIS3_RS3_PS3_ERKS3_ _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E _ZN11interpreterC1Ev _ZN11interpreterD2Ev _ZNSt22_Rb_tree_base_iterator12_M_incrementEv _ZN11interpreterD1Ev _ZN11interpreter8evaluateERSsRSt6vectorISsSaISsEES0_ _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE4findERS1_ _ZN11interpreter12parseCommandERSsS0_ _ZSt26__uninitialized_fill_n_auxIPSsjSsET_S1_T0_RKT1_12__false_type _ZNSt6vectorISsSaISsEE5eraseEN9__gnu_cxx17__normal_iteratorIPSsS1_EES5_ _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE4findERS1_ _ZTI14connectionlist _ZN14connectionlist3setERKSs _ZN14connectionlistD1Ev _ZN14connectionlistD0Ev _ZTI14imagewindowfit _ZN14imagewindowfitD1Ev _ZN14imagewindowfitD0Ev _ZTI11syncdisplay _ZN11syncdisplayD1Ev _ZN11syncdisplayD0Ev _ZTI13lutwraparound _ZN13lutwraparoundD1Ev _ZN13lutwraparoundD0Ev _ZTI15useoffscreenbuf _ZN15useoffscreenbufD1Ev _ZN15useoffscreenbufD0Ev _ZTI8tokenize _ZN8tokenizeD1Ev _ZN8tokenizeD0Ev _ZTI14list_variables _ZN14list_variablesD1Ev _ZN14list_variablesD0Ev _ZTI12get_variable _ZN12get_variableD1Ev _ZN12get_variableD0Ev _ZTI12set_variable _ZN12set_variableD1Ev _ZN12set_variableD0Ev _ZTI8imunlink _ZN8imunlinkD1Ev _ZN8imunlinkD0Ev _ZTI6imlink _ZN6imlinkD1Ev _ZN6imlinkD0Ev _ZTI11show_window _ZN11show_windowD1Ev _ZN11show_windowD0Ev _ZTI11hide_window _ZN11hide_windowD1Ev _ZN11hide_windowD0Ev _ZTI14iconize_window _ZN14iconize_windowD1Ev _ZN14iconize_windowD0Ev _ZTI12raise_window _ZN12raise_windowD1Ev _ZN12raise_windowD0Ev _ZTI11close_image _ZN11close_imageD1Ev _ZN11close_imageD0Ev _ZTI5reset _ZN5resetD1Ev _ZN5resetD0Ev _ZTI3pan _ZN3panD1Ev _ZN3panD0Ev _ZTI4zoom _ZN4zoomD1Ev _ZN4zoomD0Ev _ZTI11set_appname _ZN11set_appnameD1Ev _ZN11set_appnameD0Ev _ZTI15print_pointfile _ZN15print_pointfileD1Ev _ZN15print_pointfileD0Ev _ZTI3put _ZN3putD1Ev _ZN3putD0Ev _ZTI4deny _ZN4denyD1Ev _ZN4denyD0Ev _ZTI15clear_pointfile _ZN15clear_pointfileD1Ev _ZN15clear_pointfileD0Ev _ZTI14save_pointfile _ZN14save_pointfileD1Ev _ZN14save_pointfileD0Ev _ZTI14load_pointfile _ZN14load_pointfileD1Ev _ZN14load_pointfileD0Ev _ZTI13set_pointfile _ZN13set_pointfileD1Ev _ZN13set_pointfileD0Ev _ZTI4user _ZN4userD1Ev _ZN4userD0Ev _ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTCSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE0_So _ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj _ZTI16interpreter_help _ZN16interpreter_helpD1Ev _ZN16interpreter_helpD0Ev _ZTI6killme _ZN6killmeD1Ev _ZN6killmeD0Ev _ZTI4quit _ZN4quitD1Ev _ZN4quitD0Ev _ZTI4load _ZN4loadD1Ev _ZN4loadD0Ev _ZTI4size _ZN4sizeD1Ev _ZN4sizeD0Ev _ZTI4move _ZN4moveD1Ev _ZN4moveD0Ev _ZTI4cmap _ZN4cmapD1Ev _ZN4cmapD0Ev _ZTI8complain _ZN8complainD1Ev _ZN8complainD0Ev _ZTI22TCPGenericClientStreamIcSt11char_traitsIcEE _ZN22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev _ZN22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev _ZN15TCPStreamBufferIcSt11char_traitsIcEE6setbufEPci _ZN15TCPStreamBufferIcSt11char_traitsIcEE4syncEv _ZN15TCPStreamBufferIcSt11char_traitsIcEE9underflowEv _ZN15TCPStreamBufferIcSt11char_traitsIcEE8overflowEi _ZThn108_N22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev _ZThn108_N22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev _ZThn116_N22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev _ZThn116_N22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev _ZTv0_n12_N22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev _ZTv0_n12_N22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev _ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE0_16TCPGenericStreamIcS1_E _ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE108_Sd _ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE108_Si _ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE116_So _ZTI16TCPGenericStreamIcSt11char_traitsIcEE _ZN16TCPGenericStreamIcSt11char_traitsIcEED1Ev _ZN16TCPGenericStreamIcSt11char_traitsIcEED0Ev _ZThn108_N16TCPGenericStreamIcSt11char_traitsIcEED1Ev _ZThn108_N16TCPGenericStreamIcSt11char_traitsIcEED0Ev _ZThn116_N16TCPGenericStreamIcSt11char_traitsIcEED1Ev _ZThn116_N16TCPGenericStreamIcSt11char_traitsIcEED0Ev _ZTv0_n12_N16TCPGenericStreamIcSt11char_traitsIcEED1Ev _ZTv0_n12_N16TCPGenericStreamIcSt11char_traitsIcEED0Ev _ZTISd _ZNSdD1Ev _ZNSdD0Ev _ZThn8_NSdD1Ev _ZThn8_NSdD0Ev _ZTv0_n12_NSdD1Ev _ZTv0_n12_NSdD0Ev _ZTI15TCPStreamBufferIcSt11char_traitsIcEE _ZN15TCPStreamBufferIcSt11char_traitsIcEED1Ev _ZN15TCPStreamBufferIcSt11char_traitsIcEED0Ev _ZTI6action _ZN6action7performERSt6vectorISsSaISsEERSs _ZN6actionD1Ev _ZN6actionD0Ev _ZTV8variable _ZTV16TCPGenericStreamIcSt11char_traitsIcEE _ZTT16TCPGenericStreamIcSt11char_traitsIcEE _ZN15TCPStreamBufferIcSt11char_traitsIcEED2Ev _ZNSsC1IPcEET_S1_RKSaIcE _ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag _ZTVSd _ZTTSd _ZNSt22_Rb_tree_base_iterator12_M_decrementEv _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueERKS4_ _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE9_M_insertEPSt18_Rb_tree_node_baseSB_RKS4_ _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueERKS4_ _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE9_M_insertEPSt18_Rb_tree_node_baseSB_RKS4_ _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueERKS3_ _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS3_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueERKS3_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS3_ _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE14_M_create_nodeERKS4_ _ZSt18_Rb_tree_rebalancePSt18_Rb_tree_node_baseRS0_ _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE14_M_create_nodeERKS4_ _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE14_M_create_nodeERKS3_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE14_M_create_nodeERKS3_ _ZTSSd _ZTS6action _ZTS8complain _ZTS16interpreter_help _ZTS4deny _ZTS4user _ZTS3put _ZTS4cmap _ZTS4move _ZTS4size _ZTS4load _ZTS4zoom _ZTS3pan _ZTS5reset _ZTS11close_image _ZTS4quit _ZTS6killme _ZTS15print_pointfile _ZTS11set_appname _ZTS13set_pointfile _ZTS14load_pointfile _ZTS14save_pointfile _ZTS15clear_pointfile _ZTS14iconize_window _ZTS12raise_window _ZTS11hide_window _ZTS11show_window _ZTS12set_variable _ZTS12get_variable _ZTS14list_variables _ZTS8tokenize _ZTS6imlink _ZTS8imunlink _ZTS15useoffscreenbuf _ZTI8variable _ZTS13lutwraparound _ZTS11syncdisplay _ZTS14connectionlist _ZTS14imagewindowfit _ZTS15TCPStreamBufferIcSt11char_traitsIcEE _ZTS16TCPGenericStreamIcSt11char_traitsIcEE _ZTS22TCPGenericClientStreamIcSt11char_traitsIcEE _ZTI16TCPSocketWrapper _ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE _ZTC16TCPGenericStreamIcSt11char_traitsIcEE108_Sd _ZTC16TCPGenericStreamIcSt11char_traitsIcEE108_Si _ZTC16TCPGenericStreamIcSt11char_traitsIcEE116_So _ZN8variableD1Ev _ZN8variableD0Ev _ZTCSd0_Si _ZTCSd8_So _ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_ _ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_ _ZTS8variable _ZTS16TCPSocketWrapper _ZN4putm12ref_pathnameE _ZN4putmC2Ev _ZTV4putm _ZN4putm9sem_resetEv _ZTV6action _ZN4putmC1Ev _ZN4putmD2Ev _ZN4putmD1Ev _ZN4putmD0Ev _ZN4putm7performERSt6vectorISsSaISsEERSs _ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ _ZN4putm8get_dataEPc _ZN4putm9setup_shmEv _ZNSt6vectorIP12image_headerSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev _ZN5ppath7performERSt6vectorISsSaISsEERSs _ZN4putp7performERSt6vectorISsSaISsEERSs _ZTV4putp _ZTI4putp _ZN4putpD1Ev _ZN4putpD0Ev _ZTV5ppath _ZTI5ppath _ZN5ppathD1Ev _ZN5ppathD0Ev _ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTCSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE0_So _ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj _ZTI4putm _ZTI6action _ZN6action7performERSt6vectorISsSaISsEERSs _ZN6actionD1Ev _ZN6actionD0Ev _ZNSsC1IPcEET_S1_RKSaIcE _ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag _ZTS6action _ZTS5ppath _ZTS4putm _ZTS4putp _ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE _ZN22SocketRunTimeExceptionC2ERKSs _ZTV22SocketRunTimeException _ZN22SocketRunTimeExceptionC1ERKSs _ZNK22SocketRunTimeException4whatEv _ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev _ZN16TCPSocketWrapper17TCPAcceptedSocketC2Ei11sockaddr_in _ZN16TCPSocketWrapper17TCPAcceptedSocketC1Ei11sockaddr_in _ZN16TCPSocketWrapperC2Ev _ZN16TCPSocketWrapperC1Ev _ZN16TCPSocketWrapperC2ERKNS_17TCPAcceptedSocketE _ZN16TCPSocketWrapperC1ERKNS_17TCPAcceptedSocketE _ZN16TCPSocketWrapperD2Ev _ZN16TCPSocketWrapperD1Ev _ZN16TCPSocketWrapper6listenEii _ZTV20SocketLogicException _ZN20SocketLogicExceptionD1Ev _ZTI20SocketLogicException _ZN22SocketRunTimeExceptionD1Ev _ZTI22SocketRunTimeException _ZN16TCPSocketWrapper6acceptEv _ZN16TCPSocketWrapper7connectEPKci _ZNK16TCPSocketWrapper7addressEv _ZNK16TCPSocketWrapper4portEv _ZN16TCPSocketWrapper5writeEPKvi _ZN16TCPSocketWrapper4readEPvi _ZN16TCPSocketWrapper5closeEv _Z11socketsInitv _Z10socketsEndv _ZN22SocketRunTimeExceptionD0Ev _ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTCSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE0_So _ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj _ZN20SocketLogicExceptionD0Ev _ZNSsC1IPcEET_S1_RKSaIcE _ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag _ZTS22SocketRunTimeException _ZTS20SocketLogicException _ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE  noimserver.o/   1121289448  520   20    100644  680       `
ELF                             4     ( 	   GCC: (GNU) 3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1)  .symtab .strtab .shstrtab .text .data .bss .note.GNU-stack .comment                                                        4                      !             4                      '             4                      ,              4                      <              4   E                                y   E                                (  p               	                                                                                                                                     noimserver.cxx asynchat.o/     1121289452  520   20    100644  17712     `
ELF                      \!      4     ( H E             D$D$D$Ð&    UW1V   S  $  |$$   t$D$4\$$q  \$T$4D$T$0$\$4CXD  t$44$t$<P,D$D$p$T$p=    D$8jT$,l$<_9CƉ։\$89()څD  l$\$,1D$t$0\$4$   t$1t$`D$l$4$T$4t$$P0T$`JB   T$4\$0JQ9C1t$$)ȉT$)щD$L$t$44$P4T$pJB~\$4C@Č  [^_]É$T$PT$щ$D$PD$bD$0T$`$D$\$pt$@\$4$T$@D$`rh    )H9t  1JBB  T$`JB  u?T$4\$0\$$P0t$41ɋFPL$D$T$1҉T$$T$41\$0Bxl$\$)D$D$@$T$4\$@\$$P0D$@ڍHP~eT$4)t$0JQ9C1|$4$)ȉT$)щD$L$D$pڍHPjD$PD$$U$D$PD$뉍v $\$P\$$D$PD$    )߉|$)T$`D$D$@D$D$1D$$tC9|ċT$@GT$@>T$4\$0\$$P0t$41ɻFPD$1D$D$0L$T$$D$pڍHPgT$PT$T$`ÍJB~2v T$pJB~$$D$PD$t$Pt$$뿋T$@øJB~T$`JBT$PT$$t$Pt$ύ&    ċT$@Mv Y&    \$\$C$    D$\$\$<t$4t$@\$0|$8$       ÍP   @   D$D$D$\$F V9ttBF\$0t$4|$8<É4$D$D$ސt& Sƍ|$ JB~   $4$|$$܉1tؐ&    L$A Q9ttD$BAÐt& $D$D$却&    '    \$\$C@$    D$1Ҁ{	 u{ tCx  w   \$ЃÍ    t$t$|$1$FPu0N0^ QC)F0+AN TC)t   $t$|$Í        UWVS<D$PD$P0h T$&    L$}Aq)M )DU)   $   t$\$   $Pǋ Huk$%   FV9tHBF$Pj\$ HP~<$F\$$4$봉|$D$\$ $HP~<$<[^_]É\$$⍶    T$BXu֋B$@   D$FV9t BFL$$PD$$떉4$ܐ&    \$\$ t$Csx     @t{	 u\$t$Ðt& D$C$3   D$S1ɋBL$T$D$$tSBT$4$9C1D$1L$D$덉$Cp&    '    ,|$4  \$(\$0t\$(,Ív u$   $`
      D$1D$Ku$    D$D$I   D$$p
      1ۉD$\$댉$&    '       L$,    \$(\$JB~\$(,Í    \$$  D$$         ?2Z  *
  ~
 
 Z
 
 
 	 2
 	    G    ,  g     : uM  
   
   %d: handle_write popped producer %p
 popping fifo
 %d: sending %d bytes
  :unhandled connect :unhandled close :unhandled accept :unhandled error:  error:                         async_chat::readable() buffer.length(): %d                      %d: closing because of NULL in producer fifo
                                                                                                                                                   D$P    @   @@ut6T$$    $J   L$$    T$ÉT$$          D$P    @   @@ut6T$$    $]   L$$    T$ÉT$$          D$P    @   @@ut6T$$    $n   L$$    T$ÉT$$          WVS\$  t$$$ǋS    @   @@u   T$$    $   T$ @D@utAt$$$       t$$|$D$ \$$[^_t$$뽉T$$    u       D$         D$     ,\$$\$0t$(t$S   JB~   \$$t$(,Ðt$$  ,\$$\$0t$(t$S   JB~   $\$$t$(,Ét$$           ,|$(|$0\$ t$$_$   \$Ƹ   D$1D$4$OQ   ~C   9C1|$)ȉT$)щD$L$$\$ t$$|$(,Ít& ~1|$)ʉD$)T$v 4$$              UWVSl$   E    E$U E XpxT$PE0U0\$TH|$Xt$\T$@P@L$DT$HD$,D$LE \$4|$8D$0E0t$<L$$D$ T$(U\$JB~LUJB~*UJB~l[^_]É\$$\$$ȉ\$$릋UÍt$JB~LUJB~*UJB~$t$$t$$ȉt$$      UWVSl$   E    E$U E XpxT$PE0U0\$TH|$Xt$\T$@P@L$DT$HD$,D$LE \$4|$8D$0E0t$<L$$D$ T$(U\$JB~TUJB~2UJB~,$l[^_]É\$$\$$\$$랉UÍt$JB~LUJB~*UJB~$t$$t$$ȉt$$                                          WVSt$ D$$N$8)F)ЃvA$   CN$Ft8VABAB   BFF[^_É4$1D$   D$N$                \$\$CT$$KSABAB   BCC\$                              10async_chat 15simple_producer 8producer              \$\$ u\$Í&    C$D$C$D$Ctω$D$             UWVSl$0D$8\$4U$}MD$)T$@D$ލ69   )E |$ 4E9sW|$Ѓ4$)D$UrB   BD$UABAB   B[^_]Í&    |$D$L$))D$$9ٍUD$4C1D$щ˃ub؋T$)4|$ tD$44|$D$4$)D$EU u]L$M 4t& $D$܍    $D$}E$D$|        10dispatcher        VSt$(\$$9s)   L$$9r[^ð
         zPL |      ,                 AACFF      P   @  .       CD    l   p     C   C@DL      P  B       C        J       CD (      `        AAAACP       	         C DH       	     [   C0L    (      j       C   @      j       C   X      j       C$   p             AAAC              m   C0DL,         j  ~   AAAAC   ,         t     AAAAC   $                AAAC     @      G       CI    \      S       C D (   x      s      AAAAC0          @       AAC        
         C GCC: (GNU) 3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1)  .symtab .strtab .shstrtab .rel.text .data .bss .rodata .gcc_except_table .rodata.str1.1 .rodata.str1.32 .rel.gnu.linkonce.r._ZTV10async_chat .rel.gnu.linkonce.r._ZTV15simple_producer .rel.gnu.linkonce.r._ZTV8producer .rel.gnu.linkonce.t._ZN10dispatcher14handle_connectEv .rel.gnu.linkonce.t._ZN10dispatcher12handle_closeEv .rel.gnu.linkonce.t._ZN10dispatcher13handle_acceptEv .rel.gnu.linkonce.t._ZN10dispatcher12handle_errorEi .rel.gnu.linkonce.t._ZN8producerD1Ev .rel.gnu.linkonce.t._ZN8producerD0Ev .rel.gnu.linkonce.t._ZN15simple_producerD1Ev .rel.gnu.linkonce.t._ZN15simple_producerD0Ev .rel.gnu.linkonce.t._ZN15simple_producer4moreEv .rel.gnu.linkonce.t._ZN10async_chatD1Ev .rel.gnu.linkonce.t._ZN10async_chatD0Ev .gnu.linkonce.t._ZN10async_chat21collect_incoming_dataERKSs .gnu.linkonce.t._ZN10async_chat16found_terminatorEv .rel.gnu.linkonce.t._ZNSt5dequeIP8producerSaIS1_EE16_M_push_back_auxERKS1_ .rel.gnu.linkonce.t._ZNSt5dequeIP8producerSaIS1_EE16_M_pop_front_auxEv .rel.gnu.linkonce.r._ZTI8producer .rel.gnu.linkonce.r._ZTI15simple_producer .rel.gnu.linkonce.r._ZTI10async_chat .gnu.linkonce.r._ZTS10async_chat .gnu.linkonce.r._ZTS15simple_producer .gnu.linkonce.r._ZTS8producer .gnu.linkonce.r._ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE .gnu.linkonce.r._ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE .rel.gnu.linkonce.t._ZNSt11_Deque_baseIP8producerSaIS1_EED2Ev .rel.gnu.linkonce.t._ZNSt5dequeIP8producerSaIS1_EE17_M_reallocate_mapEjb .rel.gnu.linkonce.r._ZTI10dispatcher .gnu.linkonce.r._ZTS10dispatcher .rel.gnu.linkonce.t._ZNSt11_Deque_baseIP8producerSaIS1_EE16_M_destroy_nodesEPPS1_S5_ .rel.ctors .rel.eh_frame .note.GNU-stack .comment                                                        @   
                    	           =  `  F            %                                  +                                 0                                 8                                 J      2                          Y      2       `  n                  m               H                   i   	           X@     F   	                      (                       	           @      F                         @                       	            A      F                         `  j                     	            A  P   F                          j                    	           pA  P   F            H            @  j                  D  	           A  P   F            }                                y  	           B     F                                              	           B     F                                              	           B     F                          N                    	           B     F            (               U                  $  	           B      F            U            `                    Q  	           B  (   F                        0  j                   	           C  H   F   !                       t                   	           XC  P   F   #                                                      0                    E            @                    A  	           C     F   '                       G                    	           C     F   )                                           	           C     F   +                                            	           C     F   -         #            ,                      	           C     F   /         D            8                    e            E                                W  
                              d                                h                    E            p  S                  A  	            D     F   6                       s                   	           D      F   8                     D                      	           0D     F   :                     L                                `  @                    	           @D     F   =         g                                c  	           HD     F   ?         r                               n  	           PD     F   A         |                                                 E                                                                 ,     G   1         	              4  9	                                                                                                                                                                       	                                	       L   `
       T   p
  >                                                                                                                                                !              #              %              &              '              )              +              -              /              1              2              3              4              5              6              8              :              <              = \   
                    ?              A              C              D                                                             .          P             _          ~                                                                                                        $  @  .     D             c   	         p                             !                        " '          !               #  P  B     C    J     ^    d     y  `            G   " )                                              H   ! 	 #         ! / 4      j   "  V      j   "  v      j   "           "        j  " !       t  " #          " %          " & /         ! - E      N   "  ^      U   "  w         "           ! +          "           "                                                                                %             /             g                                                                       S   " 6              6      s  " 8 k                                             
   ! 3                       ! 2 0         ! 1 A         ! : R         ! 4          ! 5       @   " = 	             	         ! < $	              asynchat.cxx _ZSt8__ioinit _Z41__static_initialization_and_destruction_0ii __tcf_0 __tcf_1 _GLOBAL__I__ZN10async_chat18ac_out_buffer_sizeE _ZN10async_chat18ac_out_buffer_sizeE _ZN10async_chat17ac_in_buffer_sizeE _ZN10async_chat15null_terminatorE _ZN10async_chat14set_terminatorERKSs _ZNSs6assignERKSs _ZN10async_chat14get_terminatorEv _Unwind_Resume _ZN10async_chat11handle_readEv _ZN10dispatcher4recvEPcji _ZNSs6appendEPKcj _ZNSsC1ERKSs _ZNKSs4findEPKcjj _ZNSsC1ERKSsjj _ZNSs7replaceEjjPKcj _ZNSs4_Rep10_M_destroyERKSaIcE _ZNKSs7compareEjjRKSsjj _ZN10async_chat12handle_writeEv _Z22srv_internal_dbgprintfPKcz _ZN10async_chat13initiate_sendEv _ZN10async_chat4sendERKSs _Znwj _ZTV15simple_producer _ZNSs20_S_empty_rep_storageE _ZNSt5dequeIP8producerSaIS1_EE16_M_push_back_auxERKS1_ _ZTV8producer _ZdlPv _ZN10async_chat4sendEP8producer _ZN10async_chat8readableEv _ZN10async_chat8writableEv _ZN10async_chat13refill_bufferEv _ZNSt5dequeIP8producerSaIS1_EE16_M_pop_front_auxEv _ZNSs6appendERKSs _ZN10dispatcher5closeEv _ZN10dispatcher4sendEPKcji _ZTV10async_chat _ZTI10async_chat _ZN10dispatcher14handle_connectEv _ZN10dispatcher12handle_closeEv _ZN10dispatcher13handle_acceptEv _ZN10dispatcher12handle_errorEi _ZN10async_chatD1Ev _ZN10async_chatD0Ev _ZN10async_chat21collect_incoming_dataERKSs _ZN10async_chat16found_terminatorEv _ZTI15simple_producer _ZN15simple_producerD1Ev _ZN15simple_producerD0Ev _ZN15simple_producer4moreEv _ZTI8producer _ZN8producerD1Ev _ZN8producerD0Ev __cxa_pure_virtual _ZNSt8ios_base4InitC1Ev __dso_handle __cxa_atexit _ZNSsC1EPKcRKSaIcE _ZSt4cerr _ZNSolsEm _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ _ZNSolsEPFRSoS_E _ZNSolsEl __errno_location strerror _ZNSt11_Deque_baseIP8producerSaIS1_EED2Ev _ZNSt24__default_alloc_templateILb1ELi0EE8allocateEj _ZNSt5dequeIP8producerSaIS1_EE17_M_reallocate_mapEjb _ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj _ZNSt8ios_base4InitD1Ev _ZTVN10__cxxabiv117__class_type_infoE _ZTS8producer _ZTVN10__cxxabiv120__si_class_type_infoE _ZTS15simple_producer _ZTS10async_chat _ZTI10dispatcher _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE _ZNSt11_Deque_baseIP8producerSaIS1_EE16_M_destroy_nodesEPPS1_S5_ memmove _ZTS10dispatcher __gxx_personality_v0    S   9  v   :     ;     3    <  7  =    >    ?    ?    ;  &  ;    >    =  L  >  r  ?    ?    ?    ?    @  O  >    7    ?    ?    ?  Q    Z  B    E    F    G    G    5    H    I  $  J  ,  7  8  ?    H    	    B        B        B  1  J  B  ?  L  O  e  P    J    ?    	    B    Q    O  J	    S	  B  o	  R  	  >  	  N  	    	  e  	    	  f  
  g  
  3  
    (
  h  /
    4
  f  C
  g  M
  7  a
    z
  3  
  ?     5  j  C  j
  u     T     L     M     U     8     A     V      W  $   X  (   Y  ,   Z  0   4  4   6  8   [  <   \  @   D  D   K     ]     ^     _     `     a     b     c     d     i     i  )   i  .   j  6     ?   k  G   l  P   m  _   i  d   n     i     i  )   i  .   j  6     ?   k  G   l  P   m  _   i  d   n     i     i  )   i  .   j  6     ?   k  G   l  P   m  _   i  d   n     o     p  #   i  +   i  E   i  J   j  R     [   k  }   j          l     k     k     n     i     n     m     I     I     J     F  /   I  H   ?     F  /   I  7   J  O   ?     E  ;   =  v   >     J     7     S     q     ?     ?     ?  <  7  H  ?  V  ?  d  ?     S     q     J     ?     ?     ?  F  7  R  ?  `  ?  n  ?  0   r  z   s     t      v     w      x     y     a      x     z     {  5   ~  M   t  l         K  t  \  r      v       2   t             $     -     T     p     y                                 ,    D    \    t                                D    `  '  |  (    +      asyncore.o/     1121289455  520   20    100644  17488     `
ELF                      $      4     ( 1 .             |    T$`t$x$   \$tL$FD$$    \$`D$P9tC9F}G\$0F1҉T$L$@T$ D$D$D$    \$ D$T$$D$@ÉD$`s\$tt$x|ÃD$,\$t$t$ D$D$(D$D$$$t)4$1D$^\$$    4$1t$\$ÐD$T$PT$P	&    1t$t$ D$   \$D$F\$$$   Dи   T$D$F$\$t$Í        D$@D$D$@@D$        D$@D$D$(\$\$ D$D$$D$C$t- t
|rw1\$Í    C	$Pېv '    D$,t$T$$|$t$(\$|$    t$T$G$9texG؋\$t$|$Í     t
|rwG1̋\$<$P<$P<$G
G 띐t& D$t$T$G$nt& D$,t$L$$\$t$ T$(}   T$L$F$Å~\$t$tA t
|rw1؋\$4$P4$P4$F
F
4$PǍ&    D$T$L$F$zt& \$\$ C$    D$C$x#C$   D$C
\$Ít&  $D$C$0   D$Ȑ&    \$\${ t{	 uC	$P\$Ðt& {	 u$PC	$P׍t& \$\${	 tC $P\$Ë$PC	ސ        SJ   HD$$        BT$09ЉD$th\$        B9D$    D$P    @   @@utUT$$    $    L$T$09u$    L   L$$    T$H[ÉT$$    $    N   D$`WVS   $   $       $    |$`@JL$`T$PD$`9Љtm@x
 tP$P   $   \$@L$`T$0 L$D$0T$t$$L$`    '    L$ <$    녋$   D$@9T$0t4$    D$0D$D$0D$$   T$09D$@ủ4$   D$$   $Đ   [^_ÉÉ$4$   D$$   $Ԑv '    UWVS\     u\  [^_]Ð    1ٍ$   l$Pى   1u$@   뷍v $k   |$@    PD$09T$@t\        BZ$p  D$@@$R1  <$D$@D$     T$@D$09u$m   u$   1D$t$$   l$$p  $   D$1D$$                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   D$$   ơ   t$D$    BD$ D$@T$ D$@9P@Éǃ   u9\PuL$@$    멋D$@N@$׍t& BN$빉ډDP\$F$o   ډ   \$F$u   h   u1ËD$$   鐍v '       \$\$u\$Ít& $   uᐍ        ,|$4  \$(\$0t\$(,Ív u$   $
  1ҹ    L$T$Ku$   1            @             B    @    @    D$1D$$
  e$&       L$   \$t;    @$    D$    @    @        @1          \$$\$Í&    ø   D$    $$  D$$                       dispatcher::create_socket: new socket fd=%d
                    socket map is empty, should be shutting down
                   selecting() on no channels, should be shutting down %d FD's set
                                calling select() with %d FD's set
                              select : %d, channels.size() %d
 closing channel #%d
 Fileno %d closed properly
 Fileno %d not closed: %s
 [ ] : Channel being deleted now
    w %d  r %d  W 1  ,  ]   #p \                 L$Bt$@tv '    @@uÐËB;Pt	9Bt@;PtSD$\$QtD$ &    9B|ыRu[ R     \|$T|$d\$L\$lt$Pt$`l$Xl$hU ;P   9   T$ D$ $T$ 9B}bM ;A}ZBuE    '    \$1T$D$|$4$v \$Lt$P|$Tl$X\ \$L$L$ȉ\$D$0$|$D$0뻋R9B}돋Gt΋B9}ǉ\$T$T$   VSt$ 9t*غ   $T$9u @[^          D$,\$\$(D$D$$t$t$ $RPRB\$t$                UWV1Sl$   $   D$@$\$l$D$0\$$l$T$@\$ D$0|$T$P9D$TT$0D$@T$ D$u/|$D$T\$,$D$D$PD$ l[^_]Ðt& $F9u               UWVSl$   $   $   0D$,^tU ;Stt[ut$PT$PtA9ƉD$@t&$T$PE 9B|G l[^_] l$T$,D$0$t$\$T$GD$0Ő[         S\$uA9HtIAt(@tt& '    @u&    [ËQ;Jut& RB9tA           T$0|$|$$t$t$,l$l$ \$;7tD$(tqT$<$FË9tO;ptEsC    C    $D$G] \$t$|$l$ t& X붉^X묐F9|T$<$FË;pu               $   t	D$ BЃ           SD$\$QtD$ &    ;B}ыRu[ R     WVSt$$|$ t7&    '    F<$D$^   4$D$u׃[^_WVS@\$Pt$T|$XBD$09uAT$ 9u9Ku@[^_ËB$D$C    @@    @;tȐ&    D$4$PT$PD$D$T$$$   T$K;ur  UWVSl$$t$ }     9tSFÅuH'    HQ9   t>: u9           t& 9tFÅt   [^_]Ív ;st&   C     l$F@$} 뵉$މl$[ǉQt	: w;st#   C     l$F@$뮉$މl$[     UWVSL$0D$8T$<l$4D$ϋAT$  Y9  A9׉xGtwۉtsGWXAx9M   A9H  xGωt;] t	t;tt   [^_]ËF9      Bt8uuJt9u    v;] tt;t뢅t*9t%ɉ   t   l$4$t        $l$VJ뻋J뭍v         l$4$VWVtwBt8ubJO9Ft*9t%ɉ   t   l$4$        $l$VJ뻋J뭍t&        l$4$Vixc} AXۋwts9} t~G9xtqXD$9t:T$9
7Au
A&Cڅt	@uD$	AuAT$봋Cڅt	@uD$뚉X덉] 눋QÅoBׅtt& ǋ@u_P               $   tD$P QAȃ     SL$\$QBAtHAB;tA;HtPJQ[ÉPt&             SL$\$QBAtHAB;tA;HtPJQ[ÉPt& P         zPL |                        CMK    @      o       C L      `   0  d       C FQ          e       C H       P         C PH                C P           x       C D       `  L       CD        3       CD    0           AHP   $   P    U      AAAF,   x  @  =      AAAAF        	  %       C     	  3       CI      	        C0L                  C`DHHH          F       AAC      @      Q       C HP  ,   `             AAACC   ,                AAAAC        
     &   C I                  C HHHH          %       C$         P       AAAC  $   @             AAACP    h      +       C     P         C GCC: (GNU) 3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1)  .symtab .strtab .shstrtab .rel.text .data .bss .rodata.str1.32 .rodata.str1.1 .gcc_except_table .gnu.linkonce.t._ZNSt22_Rb_tree_base_iterator12_M_incrementEv .gnu.linkonce.t._ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE11lower_boundERS1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE13insert_uniqueESt17_Rb_tree_iteratorIS4_RS4_PS4_ERKS4_ .rel.gnu.linkonce.t._ZNSt10_List_baseIiSaIiEE7__clearEv .rel.gnu.linkonce.t._ZNSt4listIiSaIiEE6insertESt14_List_iteratorIiRiPiERKi .rel.gnu.linkonce.t._ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE5eraseERS1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE13insert_uniqueERKS4_ .gnu.linkonce.r._ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE .gnu.linkonce.r._ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE .gnu.linkonce.t._ZNSt22_Rb_tree_base_iterator12_M_decrementEv .rel.gnu.linkonce.t._ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE9_M_insertEPSt18_Rb_tree_node_baseSC_RKS4_ .rel.gnu.linkonce.t._ZNSt4listIiSaIiEE14_M_create_nodeERKi .gnu.linkonce.t._ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE11upper_boundERS1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E .rel.gnu.linkonce.t._ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE5eraseESt17_Rb_tree_iteratorIS4_RS4_PS4_ESE_ .rel.gnu.linkonce.t._ZSt18_Rb_tree_rebalancePSt18_Rb_tree_node_baseRS0_ .rel.gnu.linkonce.t._ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS0_S1_S1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE14_M_create_nodeERKS4_ .gnu.linkonce.t._ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_ .gnu.linkonce.t._ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_ .rel.ctors .rel.eh_frame .note.GNU-stack .comment                                                         @   l                    	           (>  (  /            %                                  +                                 0      2         A                 @      2         {                 O             |  7                  a               P                                 ;                              P                      	           PB     /   
                     P  F                    	           hB     /                          Q                    	           pB     /            /                                 +  	           xB      /                                              	           B     /                        x                    [            |                                  e                                                    	           B     /            u              %                  q  	           B     /                          ;                               0  P                    	           B     /                                              	           B      /            1            @                   -  	           B      /             y            P                   u  	           C  0   /   "                     @  +                    	           HC     /   $         E            p  D                                D                                                    	           PC     /   (                                          	           XC     /   *                                                          E                                                                 ,    0   %         	              03  
                                                                                                                                               	       L   
       T   
                                  	              
                                                                                                                                                                                                     "              $              &              ' \   P                    (              *              ,              -                                ;   " 	          " 
      o                    0  d                                        $         E             J         c             j                          e                                 P                        x                            *             /             4             S             Y             b  `  L         3                                                           P   "  H                                                        U                       Q   "  C         "        F   "                 @  =                    	  %     @  	  3     _             w                                e   "           "  7         "        %   "        ;   "  !         "                     P   "  "	         !  ^	         !  	      +   " $ 	        "   2
        " " v
      D   " & 
      D   " ' 
              asyncore.cxx _ZSt8__ioinit _Z41__static_initialization_and_destruction_0ii __tcf_0 __tcf_1 _GLOBAL__I__ZN10dispatcher8channelsE _ZN10dispatcher8channelsE _ZN10dispatcher11add_channelEv _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE11lower_boundERS1_ _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE13insert_uniqueESt17_Rb_tree_iteratorIS4_RS4_PS4_ERKS4_ _ZN10dispatcher13create_socketEiii socket _ZN10dispatcher12set_blockingEb _Z13srv_dbgprintfPKcz _ZN10dispatcher10set_filenoEib fcntl _ZN10dispatcher4bindEP8sockaddrj bind _ZN10dispatcher6listenEj listen _ZN10dispatcher6acceptEP8sockaddrPj accept _ZN10dispatcher7connectEP8sockaddrj connect __errno_location _ZN10dispatcher4sendEPKcji write _ZN10dispatcher5closeEv send _ZN10dispatcher4recvEPcji read recv _Z22srv_internal_dbgprintfPKcz close strerror _ZN10dispatcher17handle_read_eventEv _ZN10dispatcher18handle_write_eventEv _ZN10dispatcher13dump_channelsEv _ZSt4cerr _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc _ZNSolsEm _ZNSt22_Rb_tree_base_iterator12_M_incrementEv _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ _ZNSolsEPFRSoS_E _ZNSolsEl _Unwind_Resume _ZN10dispatcher22delete_closed_channelsEv _ZNSt24__default_alloc_templateILb1ELi0EE8allocateEj _ZNSt4listIiSaIiEE6insertESt14_List_iteratorIiRiPiERKi _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE5eraseERS1_ _ZNSt10_List_baseIiSaIiEE7__clearEv _ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj _ZN10dispatcher4pollEP7timeval select _ZN10dispatcher5loop1EP7timeval _ZN10dispatcher4loopEP7timeval _ZNSt8ios_base4InitC1Ev __dso_handle __cxa_atexit _ZNSt22_Rb_tree_base_iterator12_M_decrementEv _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE9_M_insertEPSt18_Rb_tree_node_baseSC_RKS4_ _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE13insert_uniqueERKS4_ _ZNSt4listIiSaIiEE14_M_create_nodeERKi _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE11upper_boundERS1_ _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE5eraseESt17_Rb_tree_iteratorIS4_RS4_PS4_ESE_ _ZNSt8ios_base4InitD1Ev _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE _ZNSt8_Rb_treeIiSt4pairIKiP10dispatcherESt10_Select1stIS4_ESt4lessIiESaIS4_EE14_M_create_nodeERKS4_ _ZSt18_Rb_tree_rebalancePSt18_Rb_tree_node_baseRS0_ _ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS0_S1_S1_ _ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_ _ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_ __gxx_personality_v0    %  *   '  2   %  l   %     (     *     +          ,     &  Z  .    .    6    7    9    7    :    ;  R  =  k  7    :    >        ?    @        ,  1  7  ;  A  I    R  ,         E    F    %  G  E  O  E  e  E  j  G  r  H  x  %    E        F    I    J    E    K    E        F    N    %  3    8  ,  h  O    H    %    %    P    Q    R    L    Q  /  R  L  %    M    %        ?        ?    %    H    %  #    (  ?  3    >  ?  N    S  ?    T        %    ?    %    H  	  %  	  C  (	  B  G	    L	  ?  o	    t	  ?  	  %  	  S  	  %  	  S  	  %  
    
  W  $
    +
  X  8
  Y  I
  %  N
  N  S
  %  X
  %  j
  %  y
  %  
  X  
    
  Y  
  L  
    
  %  
  %  
  %  
  a  
  %  
  %  
  %    %    %    R  <  %  D  R  L  L  #  &    0    2    4  
  `  E   Z     [     \  1   R  #   ]  '   '  >   ^     _     H  ^   Z     [  7   d  i   e     d     N  +   a  A   R  B   a  x   H     f     R     g     h     h    g    h  <  g  d  h    g    h    g     N           i  $     D     d                                  4    T    ]    |                             D    d                            D    l        imserver.o/     1121289461  520   20    100644  45352     `
ELF                      d      4     ( ` ]             ,\$$\$0t$(sC    C C	 C
 C    $    @C    \$$t$(,É$,\$$\$0t$(sC    C C	 C
 C    $    @C    \$$t$(,É$UWVS<t$P   F~ 9tQl$ \$D$ Pt$P$N\$|$D$,$F 9uVt	$P$F    <$F   T$$<[^_]Ðt& <$F   L$$$v '    UWVS<t$P   F~ 9tQl$ \$D$ Pt$P$N\$|$D$,$F 9uVt	$P$F       <$F\$$<[^_]Ðt& <$F   t$$$v '    UWVS<t$P   F~ 9tQl$ \$D$ Pt$P$N\$|$D$,$F 9uVt	$P$F    <$   F|$$4$<[^_]É<$ý   Fl$$$    W   VSĀ$   D$$    <$D$D$D$pD$$   $\$   D$$\$`t$$D$PD$   D$D$\$$R(T$`\$@JB~4GO\$0$T$ D$ D$D$T$L$[^_É\$$뾉$4$T$`ƍ\$@JB݉\$$ωɍ        Lt$@t$P|$D\$<~l$H   $    F 9tyl$ \$D$ Pt$P$N\$|$D$,$F 9uƍ&    <$F   T$$\$<t$@|$Dl$HLÍ~ˉ<$F   L$$$t& Lt$@t$P|$D\$<~l$H   $    F 9tyl$ \$D$ Pt$P$N\$|$D$,$F 9uƍ&    <$   F\$$\$<t$@|$Dl$HLÍ~ˉ<$F   t$$$t& Lt$@t$P|$D\$<~l$H   $    F 9}   l$ \$D$ Pt$P$N\$|$D$,$F 9uƍv <$   F|$$4$\$<t$@|$Dl$HLÍ~Ív <$ý   Fl$$$v '    W   VSP|$`D$$    <$D$D$D$@D$D$$    $,   $t$   D$\$\$04$GO$T$ T$D$ D$D$L$P[^_Ít& 4$$&    '    UWVSLD$d|$`D$GX  x
 t@
 x tpL[^_]Ðt& _1$>   l$      L$seT$G$fD$0 19މD$4}Yl$0v l$ffD$2   D$G$    $D$$T   9|   D$G$xGp,$o   D$o   D$D$$ $$D$D$\$$t$$   l$   @    ƍX@ @	 @
 @     $    @w~Z4$$v '    D$@u1É$S8\$@CD$ 9T$u8[ÉB$tD$CT$9D$ u$`   D$@$̐        WVS`\$p      t$P   C   L$0D$ 9T$t3t$P|$0B$tlD$CT$9D$ u܍&    D$0t$@ڍHP~'D$PڍHP~`[^_Ét$$t$$ˋD$@$D$4$|$    t$$D$0P    D$0$   D$D$@|$$&ƻD$0|$@ڍHP~(D$PڍHP~4$|$$|$$ʐ            \$\$BC    C C	 C
 C    C(     C   SC   C    C    $   C C$C$S tt\$Í&    $       D$C(֐t&     \$\$BC    C C	 C
 C    C(     C   SC   C    C    $   C C$C$S tt\$Í&    $       L$C(֐t& D$    Ðt& D$    Ðt& D$    D$@$   D$É\$\$ t$C$   D${( t\$t$1D$CD$C$$D$  D$$  K  S29vat$$%  Cp  D$C $C CCC ;  C$:  D$S    '    K C$t$ʉ$D$st$$I  Cu{   $S  CtBC1R1PC,$RP,$Ƀ    $U      \$C9Ct%$1   D$i  t$L$$m  $1D$   D$  D$$PYC  D$    $/@C$$   C(븋CD$C $cC  $D$$  $      D$4  D$  D$        D$@$  D$ÉS\$C$  D$C$  D${( uP$  CD$C $C$$C$    $C$  D$[$      D$C $C t	C   $   C    뉐    UWVS  $  E    E E	 E
 E E       E      E      E   $  1ɉD$u$  L$$4$$  $  $  $  )Ћ$  )D$  )Ѝ$  D$\$$$  $  $p  PT$$t  PT$@$x  $  D$$|  $  $`  PT$$d  PT$xF$h  ^$l  $  H$P  P@$@  t$$X  $\  $D  t$$T  $H  t$$(  $,  $L  $  $   $   $0  t$$<  $   $4  t$$$  $  $8  $  $   $   $  t$$  t$$  t$$  $  $   t$$  t$$  $  $   t$$   $   $   t$$   $   $   t$$   $   $   $  $   $   t$$   t$$   $  $   t$$   t$$   t$$   $  $   t$$   t$$   $   $  $   $   $   t$T$hD$l$   t$T$X$  $   t$D$\$  $   $  D$|$|t$pt$\$`L$dt$tt$\$PL$Tt$xt$Pt$$$  D$( |$ T$4$$  $E       E@      ED      EH   ]P$   }T @$    @    P    ELD$$  E\$   $EX   [^_]É$$  $t& E$  $EڍHP~'EڍHP~4$|$$|$$ˍv 뜉ƋEHڍHPp  EDڍHPC  E@ڍHP  t$<E uE    4$pU x$   t$TpE0T$PH]0|$XPt$\@\$`L$d$   D$lE T$h$   $   $   $   $   $   UJB~^UJB~5UJB~T$<$$$  D$߉$$  T$붉$$  t$덉$$  T$$$  D$$$  T$xƉ$EP   T$$;<$ET   L$$뿋UøJB~ZUJB~1UJB~$$$  t$$$  D$뺉$$  T$UWVS  $  E    E E	 E
 E E       E      E      E   1$  D$u$  D$$4$$  $  $  $  )$  )D$  $  \$)ЉD$$$  $  $p  PT$$t  PT$@$x  $  D$$|  $  $`  PT$$d  PT$xF$h  ^$l  $  H$P  P@$@  t$$X  $\  $D  t$$T  $H  t$$(  $,  $L  $  $   $   $0  t$$<  $   $4  t$$$  $  $8  $  $   $   $  t$$  t$$  t$$  $  $   t$$  t$$  $  $   t$$   $   $   t$$   $   $   t$$   $   $   $  $   $   t$$   t$$   $  $   t$$   t$$   t$$   $  $   t$$   t$$   $   $  $   $   $   t$T$hD$l$   t$T$X$  $   t$D$\$  $   $  D$|$|t$pt$\$`L$dt$tt$\$PL$Tt$xt$Pt$$$  D$( |$ T$4$$  $$  4$E       E@      ED      EH   ]P$   }T @$    @    P    ELD$$  E\$   $EX   [^_]É$$  $    $  $  $E$EڍHP~'EڍHP~4$|$$|$$ˍt& 댉ƋEHڍHPp  EDڍHPC  E@ڍHP  E    UE $Pt$<u x$   t$PpT$TE0]0|$XHPt$\@\$`L$d$   D$lE T$h$   $   $   $   $   $   UJB~^UJB~5UJB~T$<$$$  D$߉$$  T$붉$$  t$덉$$  D$$$  T$$$  D$xƉ$   EP\$$;<$ƿ   ET|$$뿋UøJB~ZUJB~1UJB~$$$  t$$$  D$뺉$$  T$UWVS|$   E    EL$  D$E\$   $ET$ET   \$$EP$EP   T$$UHJBG  UDJB  U@JB   E    }E <$U xpT$ ]0|$DPE0|$$HT$HT$(Pt$,@\$0} L$4T$8D$<|$@t$L\$PL$TT$XD$\UJB~TUJB~.UJB~|[^_]É$|$`|$$D$`D$$T$`T$뚉$|$`|$$D$`D$$T$`T$þ   ET$ETt$$EP$EP   L$$\$UHJBQ  UDJB  U@JB   E    E$U E xpT$PP|$TE0]0t$\HT$8T$XP@\$@L$DD$,D$LE T$H|$4D$0t$<\$ L$$T$(UJB~XUJB~2UJB~T$$$D$`D$$T$`T$뼉$|$`|$떉$T$`T$$|$`|$    $D$`D$XpUøJB~TUJB~.UJB~$,|$`|$$$D$`D$$T$`T$뚋UøJB~DUJB~UJBT$`T$늉$|$`|$Љ$D$`D$몐t& UWVS|$   E    EL$  D$E\$   $ET$ET   L$$EP$EP   |$$UHJBG  UDJB  U@JB   E    }E <$U xpT$ ]0|$DPE0|$$HT$HT$(Pt$,@\$0} L$4T$8D$<|$@t$L\$PL$TT$XD$\UJB~TUJB~.UJB~|[^_]É$|$`|$$D$`D$$T$`T$뚉$|$`|$$D$`D$$T$`T$þ   ET$ETt$$EP$EP   T$$\$UHJBQ  UDJB  U@JB   E    E$U E xpT$PP|$TE0]0t$\HT$8T$XP@\$@L$DD$,D$LE T$H|$4D$0t$<\$ L$$T$(UJB~XUJB~2UJB~T$$$D$`D$$T$`T$뼉$|$`|$떉$T$`T$$|$`|$    $D$`D$XpUøJB~TUJB~.UJB~$,|$`|$$$D$`D$$T$`T$뚋UøJB~DUJB~UJBT$`T$늉$|$`|$Љ$D$`D$몐t& UWVS|$   E    EL$  D$E\$   $ET$ET   L$$EP$EP   |$$UHJBO  UDJB"  U@JB   E    }E <$U xpT$ ]0|$DPE0|$$HT$HT$(Pt$,@\$0} L$4T$8D$<|$@t$L\$PL$TT$XD$\UJB~\UJB~6UJB~,$|[^_]É$|$`|$މ$D$`D$븉$T$`T$뒉$|$`|$$D$`D$$T$`T$t& þ   ET$ETt$$EP$EP   T$$\$UHJBT  UDJB!  U@JB   E    E$U E xpT$PP|$TE0]0t$\HT$8T$XP@\$@L$DD$,D$LE T$H|$4D$0t$<\$ L$$T$(UJB~XUJB~2UJB~T$$$D$`D$$T$`T$뼉$|$`|$떍v $T$`T$$|$`|$    $D$`D$UmUøJB~TUJB~.UJB~$)|$`|$$$D$`D$$T$`T$뚋UøJB~DUJB~UJBT$`T$늉$|$`|$Љ$D$`D$몐t& D$\    D$\    <\$4\$@t$8t$ $CPKP4$T$T$D$D$DL$D$$\$4t$8<Ð&    L\$<\$Pt$@|$DsDl$H{P$l$ CP 4$D$ D$CPT$ T$|$D$,$$\$<t$@|$Dl$HLÐD$\$D$$T$BP9 $Ë\$Ív '    D$   D$   <\$4\$@t$8t$ $CTKT4$T$T$D$D$DL$D$$\$4t$8<Ð&    L\$<\$Pt$@|$DsHl$H{T$l$ CT 4$D$ D$CTT$ T$|$D$,$$\$<t$@|$Dl$HLÐD$\$D$$T$BT9 $Ë\$Ív '    <|$8|$@\$0t$4t$ <$4$ø   D$1D$\$$)  D$uVGL$/  D$GX <$T$ \$JB~\$0t$4|$8<É\$$4$F  L$uGX$N  \$<$P8떋P    $]  D$ΉT$ Ít$JB~$t$$ꐍ&    '    s  D$WVSt$$|$ P    D$GL$  D$    ta$  1D$    u.           $      uCc~t$$G@D$ [^_$  $'      twt&    $   $   $   $   {@$   C@hu*$   $   $   $      Í&    |$1ɾ   t$$   L$,$D$/ 11҉D$$1{X T$(D$ _  D$/D$ l$@tT$`l$@JB   D$$t$   JB   D$(t$   JB   |$/ t`|$$C@11ۋP\$D$T$L$<$$   JBl$$t& l$  t$t$04$t$$T$0JBnl$$]l$$9l$$l$$$   $   D$  D$4$t$   D$(,$aD$p$   D$  D$4$t$   D$$,$$D$P  t$`D$L$4$t$   T$ ,$Íl$@D$ tT$`JB   D$$t$   JB~eD$(t!$   JB~7'    $   JB~$l$$l$$ĉl$$덉l$$\t& 뜋T$0wVSD\$P$   $5      D$,          D$,B1t$t$0\$D$$fD$0 \$,1ɉL$4d&    D$,   ffD$2    T$t$$X   $D$$  D$,9؉D$,|   D$    $   $   D$,\$ D$D$,    1D$ '  D$$t& $   =     uQ    $    t3@<=   1|$D$ D$f fD$l$[l$   $      $    u1    D1[^Ë$P$=     u   $D$$`  $   D$,D$$      xP$   D$D$,D$x    $} $D$$  ̀=     u-$  D$,D$$  D$,D$&$      D$D$,D$  K4$$$  $   |$  tÃ|$u$   $:      D$1D$̐&    '       D$  D$$   6U X  6U X  7H     7H     7H     +  M j    /  'D     'D     'H     ;  Z wK  L     K   .z
 	 
 
  	 
   .z
 	 
 
  	 
    # G f      # G f      # G f     "  H   "}  '         _    Z           $Pg
q {           +@T
` j    }       imview server: handle_accept
 
 New fd for data channel = %d
 Opening data channel
 Could not bind socket: %s
 Could not listen to socket:  Binding to port: %d
 Result to be printed: %s
 Buffer reception will fail!
 Data channel #%d connection
 Data channel #%d reading... received %d bytes  Reallocating buffer  New size = %d  moved...   progress = %4.1f%% OK
 Transfer completed
 THE END
 Recv error: %s
 recv_bufsize != 0 imserver.cxx Data channel #%d writing
 Data channel #%d closing
 Received: %d bytes
 Making callback now
 Channel %d closed
 Bye!
 Closing connection %d
 Welcome Logged in now
 About to be sent: %s
 Channel closing
 From: %d, received %s
 Waiting on display Waiting for sync
 deny
 USER QUIT EXIT Could not bind to socket: %s
 server terminated normally
 Port: %d
 :unhandled connect :unhandled read :unhandled write :unhandled close :unhandled accept :unhandled error:  error:                     Data channel destructor called
 datachannel opener: open_data_channel
                          sending result throught the socket
                             Upload realloc failed! not enough memory
Aborting transfer      The upload was aborted for some reason
                         
*** Realloc failed when allocating a very small buffer
*** almost surely this indicates a memory management problem
           New channel constructed, id=%d, semaphores allocated
           Channel %d destroyed, semaphore deleted
                        Port number %d saved to global variable
                        Could not listen to socket: %s  Writing port number to a file or a pipe
                        Writing port number failed: %s
 No more sockets active, shutting down server
                   virtual void imview_data::handle_read()   B  B $tI                                                                                                                                                                                                                                                                                            T$1z	 uz t           T$1z	 tz t           D$P    @   @@ut6T$$    $  L$$    T$ÉT$$          D$P    @   @@ut6T$$    $.  L$$    T$ÉT$$          D$P    @   @@ut6T$$    $>  L$$    T$ÉT$$          D$P    @   @@ut6T$$    $O  L$$    T$ÉT$$          D$P    @   @@ut6T$$    $`  L$$    T$ÉT$$          WVS\$  t$$$ǋS    @   @@u   T$$    $r  T$ @D@utAt$$$      t$$|$D$ \$$[^_t$$뽉T$$    u       UWVS|$   D$,T$,xpR|$lhD$,t$dL$,l$hXT$`T$QH\$T@T$PL$XD$<D$\D$t$Dl$HD$@|$LT$0T$,\$4L$8$|[^_]        \$\$ u\$Í&    C$D$C$D$Ctω$D$             VSt$ 9t*غ   $T$9u @[^             D$(t$t$ \$BCL$$\$t$               D$,\$\$(D$D$$t$t$ $RPRB\$t$                VSt$ 9t*غ   $T$9u @[^             D$(t$t$ \$BCL$$\$t$               D$,\$\$(D$D$$t$t$ $RPRB\$t$                               T$B    @    @    @    BB    @    @    @    D$B    B    D$    UWVS   \$l$4T$|$0pD$D$FЋ1҉GucG<$)4t$\$WZB   BWFBFB   BGGGG[^_]$뎉$Gt$D$    G    $             UWVSD$4\$$L$,T$()|$)l$Dt$8T$ )   ~&    D$;D$ D$tIC9t"Iۉ}E FEFE[^_] VBFB   F׉VT$$BD$$BD$   D$ T$듋~       UWVS,l$@E 9t9&    މFHP~+4$   D$E 9uӉ @,[^_]Í    $D$D$              D$,\$\$(D$D$$t$t$ $RPRB\$t$                <D$H|$4|$@l$8l$\$,t$0C3S0JFB~1$   D$7\$,t$0|$4l$8<     l$$  \$\$(|$|$$t$9߉s#$   9r덴&    '    \$t$|$É$t$D$ |$$$                                            13imview_server 18datachannel_opener 14imview_channel 11imview_data           VSt$(\$$9s)   T$$9r[^Ã$   t	D$ BЃ           $   t	D$ BЃ           \$t$$   Ãt$D$$D$؋t$\$É$$   L$4$        10dispatcher    :         zPL |                 ]       C0DH     @   `   ]      C0DH  (   `            AAAACP(           +   AAAACP(           >   AAAACP$      `  4  Q   AFAC           s   CPDLG     0          CPDLG     T  `        CPDLG $   x  P        AFAC` (             AAAAC`      
         C      
  c       AC@   $     
       AAACp    ,            CJ    H           CJ    d           C   |    t      C DH       P         C     p         AC   ,     @       AAAAF   ,           AAAAF   ,   4       D  AAAAC   ,   d  p%    h  AAAAC   ,      *      AAAAC         /  X       C@DH        `/         CPDLG      /  6       CH    $  @0  X       C@DH      D  0         CPDLG    h   1  6       CH      `1  1    C@DL$     2         AAAC        3      FGUJ       7      AACP       0:  A       C   ,      j       C   D      j       C   \      j       C   t      j       C         j       C$                AAAC  ,                AAAAC            S       C D           F       AAC      <      B       C MH     \      Q       C HP      |      F       AAC            B       C MH           Q       C HP  (              AAAAC0(         r       AAAAC@   8      Q       C HP      X      ~       C@HHL     |           C DHH             @       AAC            %       C         %       C         o   4  C H        :         C GCC: (GNU) 3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1)  .symtab .strtab .shstrtab .rel.text .data .bss .gcc_except_table .rodata.str1.1 .rodata.str1.32 .rodata .rodata.cst4 .rel.gnu.linkonce.r._ZTV14imview_channel .rel.gnu.linkonce.r._ZTV11imview_data .rel.gnu.linkonce.r._ZTV18datachannel_opener .rel.gnu.linkonce.r._ZTV13imview_server .gnu.linkonce.t._ZN10dispatcher8readableEv .gnu.linkonce.t._ZN10dispatcher8writableEv .rel.gnu.linkonce.t._ZN10dispatcher14handle_connectEv .rel.gnu.linkonce.t._ZN10dispatcher11handle_readEv .rel.gnu.linkonce.t._ZN10dispatcher12handle_writeEv .rel.gnu.linkonce.t._ZN10dispatcher12handle_closeEv .rel.gnu.linkonce.t._ZN10dispatcher13handle_acceptEv .rel.gnu.linkonce.t._ZN10dispatcher12handle_errorEi .rel.gnu.linkonce.t._ZNSt5dequeIP8producerSaIS1_EED1Ev .rel.gnu.linkonce.t._ZNSt11_Deque_baseIP8producerSaIS1_EED2Ev .rel.gnu.linkonce.t._ZNSt10_List_baseIP14imview_channelSaIS1_EE7__clearEv .rel.gnu.linkonce.t._ZNSt4listIP14imview_channelSaIS1_EE5eraseESt14_List_iteratorIS1_RS1_PS1_E .rel.gnu.linkonce.t._ZNSt4listIP14imview_channelSaIS1_EE6insertESt14_List_iteratorIS1_RS1_PS1_ERKS1_ .rel.gnu.linkonce.t._ZNSt10_List_baseIP11imview_dataSaIS1_EE7__clearEv .rel.gnu.linkonce.t._ZNSt4listIP11imview_dataSaIS1_EE5eraseESt14_List_iteratorIS1_RS1_PS1_E .rel.gnu.linkonce.t._ZNSt4listIP11imview_dataSaIS1_EE6insertESt14_List_iteratorIS1_RS1_PS1_ERKS1_ .gnu.linkonce.t._ZNSaIP8producerED1Ev .rel.gnu.linkonce.t._ZNSt11_Deque_baseIP8producerSaIS1_EEC2ERKS2_j .rel.gnu.linkonce.t._ZNSt11_Deque_baseIP8producerSaIS1_EE17_M_initialize_mapEj .gnu.linkonce.t._ZSt6__copyISt15_Deque_iteratorIP8producerRKS2_PS3_ES0_IS2_RS2_PS2_EET0_T_SB_SA_St26random_access_iterator_tag .rel.gnu.linkonce.t._ZNSt10_List_baseISsSaISsEE7__clearEv .rel.gnu.linkonce.t._ZNSt4listISsSaISsEE6insertESt14_List_iteratorISsRSsPSsERKSs .rel.gnu.linkonce.t._ZNSt4listISsSaISsEE5eraseESt14_List_iteratorISsRSsPSsE .rel.gnu.linkonce.t._ZNSt11_Deque_baseIP8producerSaIS1_EE15_M_create_nodesEPPS1_S5_ .rel.gnu.linkonce.r._ZTI11imview_data .rel.gnu.linkonce.r._ZTI14imview_channel .rel.gnu.linkonce.r._ZTI18datachannel_opener .rel.gnu.linkonce.r._ZTI13imview_server .gnu.linkonce.r._ZTS13imview_server .gnu.linkonce.r._ZTS18datachannel_opener .gnu.linkonce.r._ZTS14imview_channel .gnu.linkonce.r._ZTS11imview_data .gnu.linkonce.r._ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE .gnu.linkonce.r._ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE .rel.gnu.linkonce.t._ZNSt11_Deque_baseIP8producerSaIS1_EE16_M_destroy_nodesEPPS1_S5_ .rel.gnu.linkonce.t._ZNSt4listIP14imview_channelSaIS1_EE14_M_create_nodeERKS1_ .rel.gnu.linkonce.t._ZNSt4listIP11imview_dataSaIS1_EE14_M_create_nodeERKS1_ .rel.gnu.linkonce.t._ZNSt4listISsSaISsEE14_M_create_nodeERKSs .rel.gnu.linkonce.r._ZTI10dispatcher .gnu.linkonce.r._ZTS10dispatcher .rel.ctors .rel.eh_frame .note.GNU-stack .comment                                                       @   :                    	             P  ^            %             :                     +             :  	                  0             :  T                 B      2       @=                  Q      2       @                   a              D  (                   i             (D                   z             @D  H                   v   	           8     ^   
                      D  0                      	             X   ^                         D  0                      	             X   ^                          E  0                      	           p  X   ^                        PE                    E            pE                    t            E  j                  p  	           Ȫ  P   ^                         F  j                    	             P   ^                        pF  j                    	           h  P   ^                        F  j                    	             P   ^            E            PG  j                  A  	             P   ^            z            G                    v  	           X     ^                        H                      	                ^                         @I  S                    	                ^   "         #            I  F                    	                ^   $         m            I  B                  i  	                 ^   &                     @J  Q                    	                ^   (         1            J  F                  -  	                ^   *         x            J  B                  t  	                ^   ,                     @K  Q                    	                 ^   .         2            K                    \            K  \                  X  	           (     ^   1                     L                      	           0  8   ^   3                     M                    m            M  r                  i  	           h     ^   6                     pN  Q                    	           x     ^   8                     N  ~                    	                ^   :         D            PO                    @  	             0   ^   <                     O                      	                ^   >                     O                      	           ح     ^   @                     O                      	                ^   B                     O                      	                ^   D         8             P                    \            P                                %P                                6P                                DP                    	            HP                    h	            PP  @                  d	  	                 ^   L         	            P  %                  	  	           (     ^   N         
            P  %                  
  	           0     ^   P         X
            P  o                  T
  	           8  8   ^   R         
            `Q                    
  	           p     ^   T         
            hQ                    
            xQ                    
  	                ^   W         
            |Q  (                 
  	               ^   Y         
             Y                                  Y  E                                Y  
                               s     _   ?         	                                                                                                                                                                                 (                  	              
                                           S   0:  A        :                                                                                                                                                   "              $              &              (              *              ,              .              0              1              3              5              6              8              :              <              >              @              B              D              F              G              H              I              J              K              L              N              P              R              T              V    :                    W              Y              [              \                      ]            0   !                  `   ]     3          J      B   " &       F   " $                                3             :  `  4    ^             t                                                                  Q   " ( 9             X         t      0   !        B   " ,       F   " *          $  `       @  P       i         ~      Q   " .                                    :             K             T             m             t                             
                       
  c        1  6     $  `1  1    F  
      l               /  6       `/                                                           8             I  @0  X     o                           0   !                                                           (         =         `    t                                                                                                            	             	  P       =	  p       ^	             s	             x	          	  @      	             	      \   " 1 	         " 0 
         " 5 w
         "   
      H   ! 
 
             
             
      S   " "       r   " 6 '         ?             `  p%      x   *        .  
                    .  
                     /  X     A      Q   " 8 ~      ~   " :    0         00         0       '             6             I  2       m  2                                                             3                                *   7      <             ?             P             p                                                                                                                                           ! @                           9      j   "  [             z                   j   "           "                             "             <             \         ! > n         "           "           ! B       j   "        j   "        j   "           ! D 0             H             U             b             l                                             @   " L       %   " N >      %   " P v         " 3          " <                                        !      o   " R K             c                      ! I          ! T          ! H                       ! G          ! F          ! J >         ! K z                                   ! V               imserver.cxx _ZSt8__ioinit _ZZN11imview_data11handle_readEvE19__PRETTY_FUNCTION__ _Z41__static_initialization_and_destruction_0ii __tcf_0 _GLOBAL__I__ZN13imview_serverC2Ev _Unwind_Resume _ZN13imview_serverC2Ev _ZTV13imview_server _ZNSt24__default_alloc_templateILb1ELi0EE8allocateEj _ZN13imview_serverC1Ev _ZN13imview_serverD2Ev _ZNSt4listIP14imview_channelSaIS1_EE5eraseESt14_List_iteratorIS1_RS1_PS1_E _ZNSt10_List_baseIP14imview_channelSaIS1_EE7__clearEv _ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj _ZN13imview_serverD1Ev _ZN13imview_serverD0Ev _ZdlPv _ZN13imview_server13handle_acceptEv _Z13srv_dbgprintfPKcz _ZN10dispatcher6acceptEP8sockaddrPj _Znwj _ZN14imview_channelC1Ev _ZN10dispatcher10set_filenoEib _ZNSsC1EPKcRKSaIcE _ZNSt4listIP14imview_channelSaIS1_EE6insertESt14_List_iteratorIS1_RS1_PS1_ERKS1_ _ZNSs4_Rep10_M_destroyERKSaIcE _ZN18datachannel_openerD2Ev _ZTV18datachannel_opener _ZNSt4listIP11imview_dataSaIS1_EE5eraseESt14_List_iteratorIS1_RS1_PS1_E _ZNSt10_List_baseIP11imview_dataSaIS1_EE7__clearEv _ZN18datachannel_openerD1Ev _ZN18datachannel_openerD0Ev _ZN18datachannel_opener13handle_acceptEv _ZN11imview_dataC1Ev _ZNSt4listIP11imview_dataSaIS1_EE6insertESt14_List_iteratorIS1_RS1_PS1_ERKS1_ _ZN13imview_server17open_data_channelERSs _ZN10dispatcher13create_socketEiii _ZN10dispatcher4bindEP8sockaddrj __errno_location strerror _ZN10dispatcher6listenEj strlen _ZNSs6assignEPKcj _ZNSs6appendEPKcj _ZN13imview_server18close_data_channelEv _ZN10dispatcher5closeEv _ZN13imview_server14manage_resultsEv _ZN14imview_channel14result_isemptyEv _ZN14imview_channel10sendResultEv _ZN13imview_server15manage_commandsEv _ZNSs20_S_empty_rep_storageE _ZN14imview_channel15command_isemptyEv _ZN14imview_channel12read_commandEv _ZNSs6assignERKSs imview_interpreter _ZN11interpreter12parseCommandERSsS0_ _ZNSs4_Rep11_S_terminalE _Z9dbgprintfPKcz _ZN14imview_channel12write_resultERSs _ZN11imview_data11channels_idE _ZN11imview_dataC2Ev _ZTV11imview_data malloc _ZSt4cerr _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc _ZN11imview_dataD2Ev _ZN11imview_dataD1Ev _ZN11imview_dataD0Ev _ZN11imview_data14handle_connectEv _ZN11imview_data11handle_readEv _ZN10dispatcher4recvEPcji realloc memcpy simple_progress _ZN10dispatcher4sendEPKcji IOBlackBox _ZN7imageIO10findHeaderEj _Z12stderrprintfPKcz __assert_fail _ZN11imview_data12handle_writeEv _ZN11imview_data12handle_closeEv _ZN3put8callbackEPvm free _ZN14imview_channel11channels_idE _ZN14imview_channelC2Ev _ZTV10async_chat _ZNSt11_Deque_baseIP8producerSaIS1_EEC2ERKS2_j _ZNSaIP8producerED1Ev _ZSt6__copyISt15_Deque_iteratorIP8producerRKS2_PS3_ES0_IS2_RS2_PS2_EET0_T_SB_SA_St26random_access_iterator_tag _ZNSt5dequeIP8producerSaIS1_EED1Ev _ZTV14imview_channel _Z14semaphore_initP9Semaphore _ZNSsD1Ev _ZNSt11_Deque_baseIP8producerSaIS1_EED2Ev _ZNSt10_List_baseISsSaISsEE7__clearEv _ZN14imview_channelD2Ev _Z17semaphore_destroyP9Semaphore _ZN14imview_channelD1Ev _ZN14imview_channelD0Ev _ZN14imview_channel15protect_commandEv _Z14semaphore_downP9Semaphore _ZN14imview_channel17unprotect_commandEv _Z12semaphore_upP9Semaphore _ZN14imview_channel13write_commandERSs _ZNSt4listISsSaISsEE6insertESt14_List_iteratorISsRSsPSsERKSs _ZNSt4listISsSaISsEE5eraseESt14_List_iteratorISsRSsPSsE _ZN14imview_channel14protect_resultEv _ZN14imview_channel16unprotect_resultEv _ZN14imview_channel11read_resultEv _ZNSsC1ERKSsjj _ZNKSs7compareEPKc _ZN14imview_channel12handle_closeEv _ZN14imview_channel21collect_incoming_dataERKSs hasSynced im_draw_finished _Z8myusleepj _ZNSs6appendERKSs _ZN14imview_channel16found_terminatorEv _ZNSs7replaceEjjPKcj _Z10cmp_nocaseRKSsS0_ _Z11init_serverPi is serverPortNumber _ZN10dispatcher5loop1EP7timeval server_terminate fileprefs pthread_testcancel _Z9errprintfPKcz portfileDescriptor write close darwinChild printf pthread_exit _ZTI14imview_channel _ZN10async_chat8readableEv _ZN10async_chat8writableEv _ZN10dispatcher14handle_connectEv _ZN10async_chat11handle_readEv _ZN10async_chat12handle_writeEv _ZN10dispatcher13handle_acceptEv _ZN10dispatcher12handle_errorEi _ZN10async_chat14set_terminatorERKSs _ZN10async_chat14get_terminatorEv _ZN10async_chat4sendERKSs _ZN10async_chat4sendEP8producer _ZTI11imview_data _ZN10dispatcher8readableEv _ZN10dispatcher8writableEv _ZTI18datachannel_opener _ZN10dispatcher11handle_readEv _ZN10dispatcher12handle_writeEv _ZN10dispatcher12handle_closeEv _ZTI13imview_server _ZNSt8ios_base4InitC1Ev __dso_handle __cxa_atexit _ZNSolsEm _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ _ZNSolsEPFRSoS_E _ZNSolsEl _ZNSt11_Deque_baseIP8producerSaIS1_EE16_M_destroy_nodesEPPS1_S5_ _ZNSt4listIP14imview_channelSaIS1_EE14_M_create_nodeERKS1_ _ZNSt4listIP11imview_dataSaIS1_EE14_M_create_nodeERKS1_ _ZNSt11_Deque_baseIP8producerSaIS1_EE17_M_initialize_mapEj _ZNSt11_Deque_baseIP8producerSaIS1_EE15_M_create_nodesEPPS1_S5_ __cxa_begin_catch __cxa_rethrow __cxa_end_catch _ZNSt4listISsSaISsEE14_M_create_nodeERKSs _ZNSt8ios_base4InitD1Ev _ZTVN10__cxxabiv120__si_class_type_infoE _ZTS11imview_data _ZTI10dispatcher _ZTS14imview_channel _ZTI10async_chat _ZTS18datachannel_opener _ZTS13imview_server _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE _ZNSsC1ERKSs _ZTVN10__cxxabiv117__class_type_infoE _ZTS10dispatcher __gxx_personality_v0  +   A  7   B  Y   ?     A     B     ?     A    E  K  F  _  G  v  F    G    ?    A    E  0  F  ?  G  V  F  j  G  r  ?    A    E    F    G  '  J  >  F  M  G  U  ?  y    ~  L    M    N    O    P        Q  7  R  M  S  Y  J  a  ?    S    U        L    V  $  W  8  G  [  W  o  G  w  ?    U        L    V  	  W    G  ;  W  O  G  W  ?  |  U        L    V    W    G     J  +  W  :  G  B  ?  f    k  L    M        L    N    [    P    \    J    ?  h    m  L    ^    _    `    a        L  	  b  (	    -	  c  6	    F	  d  K	  `  U	  a  _	  c  s	  e  	    	  L  	  N  	  U  	  B  	  J  	  ?  
  g  G
  i  i
    n
  L  }
  j  
  l  
  l  
  l  
  l  
  m  <  S  J  S  [  n  g  o  p  p  |  q    r        s    t    ?    S    S  %  u  M  w  V  u    x    x    y        z    u    w    u  1  x  ?  x  c  y  h    q  z    w    w    w        L        L      1    6  L  V    [  L  u          L            L        L      $    ,    5  L  P    ]    i    n  L                                `    a        L       %  	  7    @    ]    f  L  ~      L        L        L            g        L        L      '    ,  L  k    r  l  z  l    l    l    l    l              C    U    \    c  l  k  l  r  l  z  l    l    l    B    B                L                  3    ]  ?  i  S  w  S      U      S    S    S    S    S    S  .    B  G  Q    e  G    S    S    S      "  l  *  l  1  l  9  l  @  l  H  l  k                            "  l  *  l  1  l  9  l  @  l  H  l  W  B  m  B  y              L                          ,  ?  8  S  F  S      %      S    S    S    S    S    S          G  &     5   G     S     S     S               L            !    !  G  '!    ;!  G  !    !    J"  S  \"  S  n"  S  "  S  "  S  "  S  "    "  G  "    "  G  B#    #    #  ?  $  S  $  S  *$  S  <$  S  Q$  S  l$  S  $  S  $  S  $  S  S%  S  e%  S  %    %    %  L  %    %    %    %  G  %    %  G  :&    &    &  S  '  S  '  S  0'  S  E'  S  Z'  S  q'    '  G  '    '  G  '    ^(    (  ?  (  S  (  S  (  S  (  S  )  S  )  S  )  S  )  S  )  S  *  S  *  S  1*    ;*    D*  L  O*    ]*    h*    |*  G  *    *  G  *    V+    +  J  +  S  +  S  +  S  +  S  +  S  ,  S  .,    =,  G  H,    \,  G  ,    -    c-  ?  s-  S  -  S  -  S  -  S  -  S  -  S  E.  S  W.  S  i.  S  .  S  .  S  /    =/    H/    /    /  o  /    /    /    0    W0    }0    0    0    0  o  0    1    31    G1    {1    1    1    1    1    1  L  1  g  2  S  2    2    #2    (2  L  D2  r  O2    X2  L  2  ?  2  S  2    2  r  2    2  L  2    2     3  L  3    (3    /3    V3    [3  L  g3    n3    3    4    4    4  S  5    5  Q  !5    F5  S  W5  S  h5  S  y5  S  5    5  Q  5    5    5  Q  5    6    6  Q  -6    6  ?  6  S  6  S  6  S  7  S  17  N  ;7  C  A7    U7    7  ^  7    7  _  7  `  7  a  7    7  L  8    8  b  8    08  L  98    T8    b8    j8    r8  h  w8    8    8    8    8    8  L  8    8  g  8    8    8    9  `  9  a  9    9    +9    89  L  ?9    D9  L  J9    g9    p9    x9    9  `  9  a  9    9  L  9    9    9  L  9    9    9    
:  J  :  ?  :    :  L  *:    K:    P:    W:    \:    k:    :      J  .    .    )0    90    2  L  O3    :                                             $     (     ,     0     4     8     <     @     D                       ~                       $     (   |  ,   }                                         Z  $     (   X  ,   Y                                         K  $     (   H  ,   I     y     y  )   y  .     6     ?   z  G     P     _   y  d        y     y  )   y  .     6     ?   z  G     P     _   y  d        y     y  )   y  .     6     ?   z  G     P     _   y  d        y     y  )   y  .     6     ?   z  G     P     _   y  d        y     y  )   y  .     6     ?   z  G     P     _   y  d        `     a  #   y  +   y  E   y  J     R     [   z  }                  z     z          y                 5     M   G  1   G  ,   G  #     1   G  ,   G  #     X     [        B          G               ?  B   G  l   S  #     L   G  x   S  %   B  T     h     m     t     |   ?                                                                  2   G     B     B     B  ,     D     U   G  Z     c     k   ?                        $     -     D     M     d     m                                           4    =    X    a    |                                0    L    h                                8    A    h    q                        (    H    l                                    0    H    `    x                         @    `               !    $        &  <  '  \  (    )        4    5    6    7          semaphore.o/    1121289462  520   20    100644  3732      `
ELF                      h      4     (                   \$\$   D$C$@t8    D$C$@t\$ø    \$D$t& $@   뺉\$\$C$@t,C$@t	\$Ð   \$T$$   Ɛ        \$\$ t$|$s4$;G;4$$\$t$|$Ð&    |$|$ t$\$w4$~X4$؋t$\$|$Í_v '    t$$~        \$\$ |$t${<$3N3<$\$t$|$Ð\$\$t$s4$4$؋t$\$Í&    '    D$\$$t
؋\$$    荴&    '    D$\$$t
؋\$$   荴&    '    D$\$D$D$$t؋\$Ít& $(   D$\$$t
؋\$$:                                 Error setting up semaphore condition signal                     Error setting up semaphore mutex                                Error destroying semaphore condition signal                     Error destroying semaphore mutex pthread_mutex_unlock pthread_mutex_lock pthread_cond_wait pthread_cond_signal         zP |                  n    CI    8   p   S    CD    P      H    C DL   l      d    C DL        =    C DL        2    CDH          2    CH       P  2    CH         >    CH        2    CH  GCC: (GNU) 3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1)  .symtab .strtab .shstrtab .rel.text .data .bss .rodata.str1.32 .rodata.str1.1 .rel.eh_frame .note.GNU-stack .comment                                                       @                       	                            %             D                     +             D                     0      2       `                    @      2       A  N                 S                                O   	           <  X               ]                                   m                E                                  v                                        
         	              
                                                                                                                                                	              
        n     -              G              Z              s                               p   S                                       H        P  2     *    2     X    2          d         >         =         2                    5              H             Z             n              semaphore.cxx _Z14semaphore_initP9Semaphore pthread_mutexattr_default pthread_mutex_init pthread_condattr_default pthread_cond_init _Z9errprintfPKcz _Z17semaphore_destroyP9Semaphore pthread_mutex_destroy pthread_cond_destroy _Z12semaphore_upP9Semaphore _Z21tw_pthread_mutex_lockP15pthread_mutex_t _Z23tw_pthread_mutex_unlockP15pthread_mutex_t _Z22tw_pthread_cond_signalP14pthread_cond_t _Z14semaphore_downP9Semaphore _Z20tw_pthread_cond_waitP14pthread_cond_tP15pthread_mutex_t _Z19semaphore_decrementP9Semaphore _Z15semaphore_valueP9Semaphore pthread_mutex_unlock pthread_mutex_lock pthread_cond_wait pthread_cond_signal __gxx_personality_v0       !     )     8     H     c     h                                            :    M    x                        7    <    _    w    |                            X               $     <     T     p                                  interpreter.o/  1121289492  520   20    100644  239220    `
ELF                      d?     4     ( OL            \$   $D$D$(\$$\$Ív '    \$\$$S)uU)u$    1D$1ҋ\$ЃË   $D$D$(\$$   ͐t& P    $1҅tS널&    \$\$$t$C)       p1
   T$1ɉL$t$$    ƋAX؈
   A\$11ɉT$L$$    QT$QD$t$$T$S1\$t$Í       $D$D$(\$$   Ő    \$\$$t$C)       p1
   T$1ɉL$t$$    ƋAX؈
   A\$11ɉT$L$$    u1\$t$É    
D$t$BD$B$D$Q    $뻋   $D$D$(\$$   딉T$$\$B
)tO    X؈1҉T$$u+    t     1\$Ë   $D$D$(\$$   ϐ&    '    $  D$  D$D$$Ð&    '    \$   $D$D$(\$$    \$1Í    $    D$    D$D$$1ÉUWVS\t$p   FD$,   F       $  D$l$@|$0l$<$$  1D$  \$L$<$tfD$0P    D$D$0\$$  D$$  D$  D$   D$\$<$l$  1D$  \$L$<$tYD$0P    D$0$ 	  D$$  D$  D$   D$\$<$y|$T$,$    FHȈF$  D$FP   T$0JB~FNQt%    
F$`	  D$\[^_]$	      D$l$$묍    $  D$  D$D$,$|    ËVJB~   $$T$@T$$      D$y  D$  D$v T$0øJBl$$z&    UWVS\t$p   FD$,   F       $  D$l$@|$0l$<$$  1D$  \$L$<$tfD$0P    D$D$0\$$  D$$  D$  D$   D$\$<$l$  1D$  \$L$<$tYD$0P    D$0$ 	  D$$  D$     D$L$\$<$y|$T$,$FP    F$  D$F@   T$0JB~FNQt%    
F$`	  D$\[^_]$	      D$l$$묍    $    D$D$,|$$|    ËVJB~   $$T$@T$$        D$y  D$l$v T$0øJBl$$z&    UW   VS,  1ۋ$H  $@  $D  D$$$  $$     P$@     *$@  \$P*$E    ]EX    $E      ET       1C   1C,   CEL$T$$P8\$EX$$   $      1ۉ$   PD$P   DPD$PT$P\$Hʉ$\$P       $   T$P$   D$T   $   $      D$\$D$PX$      D$@F);  T$T$P$   F)9s'  <D$D$P$|$$CˍD$TT$0D$$D$0T$@D$$D$0ڍHP  $@  @D$@D$   D$@T$(|$XD$ t$@\$,9؉D$(D$,CЋ
9|$ )(DÅ>  ,$  t$$T$@T$$    \$$    L$$    T$$D  D$0t$$D$$T$0T$$D$0ڍHP  D$@ڍHP[            D$Pڋ$   L$T$   HP  D$d 1   D$\1D$`1$   $   T$T$   PD$P   DP   $   D$P\$      ډ$@      $  $  $D  HP~\   F0F F    F    F,    $   PE    *E\EX   $1,  [^_]É$$0  T$돉$$0  D$$$0  T$$$0  D$_,$  L$$T$@T$$
   T$$D  D$0t$$D$$T$0T$$D$0ڍHP  D$@ڍHPX     ډD$P    $      D$T$   HP	  D$d 11҉$   1ɿ   T$`$   $|$TL$\   PD$P   DP   $   D$P\$   ډ$@      $     $D  $  HP~Y   F0F F    F    F,    $   PE    *E\EX   $   $$0  T$뒉$$0  D$$$0  T$$$0  D$b,$  L$$    T$$	  T$D$@ڍHPp     ډD$P    $      D$T$   HP!  D$d    1D$T   1D$\1D$`$   $$      PD$P   DPD$P\$   $          $D  $  $@  $  HP~n   $D  1$T  1$L  1$P  1$p  $t  $   PE    *E\EX   $   $$0  T$z$$0  D$$$0  T$x$$0  T$U$!  D$!  D$D$$$D$@ڍHPp  $          |$P   ډL$TH$   P!  D$d 1   D$\1D$`1$   $   T$T$   PD$P   DP   $   D$P\$      ډ$@      $  $  $D  HP~n111҉$p     1ۉ$L  $t  $P  $$D  $T     PE    *E\EX   $   $$0  T$z$$0  D$$$0  T$xEX   E\$4$t& SPƍ$0  JB~$   E P   *먉|$$Չ$щƍD$P   \$   $       $@  $  $     J$D  B~P   1$D  1$T  1$L  1$P  $t  $$p     $@  0$$0  D$뛋SPƸJB~"$   PD$P   DP$$0  D$ɉ$ŋT$0ƸJB   D$@ڍHP~   ډD$P    $      D$T$   HP~7D$d    1D$T11D$\$   |$`$   $)$$0  T$봉$$0  D$i$0  D$$:T$0ƸJB$0  T$ˉt& &    D$P    D$    $1Í&    '    D$P    D$    $    $    $1Ít& D$P    D$    $       L$$1Ð&        $    $1Ð        \$   $D$D$(\$$\$   Ív '    U1WVSl$ L$tF    5   9t(&      tD$,$t9u9t\$D$[^_]Él$$ 
  5   ҐVS       L$ D$9؉tG ;HtpL$D$D$D$D$	D$D$
D$D$@9D$t9ЉT$u19t[^ÉL$$`
  T$@   ЉL$$
  T$@ ܐ        UWVSl$0tD    =   9t2s          tD$,$t9؍vu݃[^_]Él$$
  F$\$D$    \$$l$$=  믍        1\$\$ t$D$tG       D$9t4t$P    '    B;Xt$T$Ѓ9ut& '    \$t$É\$$   D$ $4$D$D$    D$\$$L  먐&    WV1S|$ ;w}'1ۍ    '    GFD$($;w|Gu$G$$<$[^_É$Ґ\  $P  $d  $X  1퉜$L  $T  t$$`  $`  twU$    [     D$$`  $苜$L  $P  $T  $X  \  Í&    $   1ۍ|$`$   $      PD$`   :D$`\$P:$   _GX    $G      GT      L$$\$GX$$`  $D$<9  @11ۉT$,1ɉ\$0L$4  1   D$8D$<T$(1;P}`P1ۋDD$    $D$4L$<D$8QD D$0DD(D$,D$4D$0D$,D$(D$8;A|$x  T$(T$;t$('  $      \$$  L$$T$(T$$  T$$  l$t$$$  \$             T$d$   $   \$`JB~eD$t    D$d1D$l1D$p1$   $   $   PD$`   :G\GX   $YE$D$PD$뉋$`  1L$<D$81Y;A}{T$01D$ 1T$$D$L$<D$$Y$T$D$1;D$0}&L$<\$ QL$T$,\$4Ӊ4@;D$0|D$8D$<D$(T$8D$ (;P|L$<A$  D$\$<C$D$PD$\$@$D$T$<$   D$\$    $    u.T$@JB-$D$PD$$`       뽉$$      L$$`  $T$$    T$GX   G\$4$SPƍl$PJB~$   P   :밉l$$։$҉Ƹ   $   D$`    J$      D$dB~@D$t    1D$d1D$l1D$p$   $$      D$`a$\$P\$뮋T$@ƸJB]$\$P\$Hv '    UWVS|  $  $$  $  $     $     P$     :1D$$  P:$   _GX    $G      GT      D$$\$GX$$   $      1ɉ$   P$         $   L$$   Pщ$   $   $       $   $   $      $      $   L$\$$   X$F)K	  $    1D$@D$L   ;          tB       X؈$D$8D$$  T$8$D$0  @$   D$T$0\$LBCL$8    B    SAP    A1҉T$11҉T$L$$C\$LSC    D҉D$4~F)9D$4  `  $   L$$$L$4L$$  T$$  \$V$)T$$  T$\$P$   D$$\$,$T$PJB     t$@-   D$L $D$L$D$@~!$  D$  D$,$      $   ڸ    $   $   $   HP*  111ɉ$      1$   $   $   $$   $      P$            $   $   \$   $  ډ$      $     $  $  HP~]   F0F F    F    F,    $   P   :G\GX   $D$@|  [^_]É$$  T$뎉$$  D$$$  T$$C1ҋ\$L1D$H   ;SD$D@  1D$L$D[P    1҉T$
   1҉L$T$$L$D$LXD$D   P    1҉T$
   1҉L$T$$T$DD$LXD$D   P    1҉T$
   1҉L$T$$T$DD$LXD$D   P    1҉T$
   1҉L$T$$T$DD$LXD$D   P    1҉T$
   1҉L$T$$T$DD$LXD$D   P    1҉T$
   1҉L$T$$T$L$DDD$L    @SD$,   T$ȉD$$   $C1ɋ$   $   9tJT$D$,    T$$LD$LL$pT$D@D$(   $ЍS(D$T$C(1ɋT$pD$`9tJD$$T$(LD$LXD$D    P    1҉T$
   1҉L$T$$T$L$D \$L1SD
$D

D
  D
  D
  D$H(D$D	L$D$H;CL$@%  \$L   1T$<T$@;SD$ }L1@D0D$    $D$ \$LSD2 L22L2(L$ D$<;K|D$<C    l$$   $  @D8@u   T$<$$  t$T$LR$T$$
   \$\$P$  D$$\$,$T$PJB~D$@z$$  D$ډT$<$Y(   $D$\$,$   L$@렋$   $D$\$,$   \$@t    $D$\$,$   T$@Hv $  \$LC    ~t& T$D$LD$$    v ,   $D$\$,$
   D$@t& GX   G\$4$t& SPƍ$  JB~$   P   :멉l$$։$҉Ƹ   $   $   \$$         $     $  J$  B~P1   1҉$  1$  1$  $  $$  $     $  -$$  T$뛋SPƸJB~($   P$         $$  D$É$뿋T$PƸJB   $          $      $   J$   B~D1   $   1$   1$   1$   $   $   $$$$  D$맍$  T$$ST$PƸJB8$  D$ˉ$&    '        t$t$(\$tt$$1\$t$ËP   $D$\$4$   ϐ&       $   $  $   C)   =    [tz    X؈    T$D$$     D$$\$$        D$    $1$   $      Í    $      t$t$L$Ht_P    t$]0   $D$$  \$$   r           $   $   $   1$   $   $   F)t
    uK$    D$\$,$   $   $   $   $      D$/ $     D$$   L$$\$$uF)vD$/$   $   JB  |$/       1AX؈A
   T$1ɉL$l$1$D$(    AX؈A
   T$1ɉL$l$$    ŋAX؈
   A\$11ɉT$L$$1AP    A1҉T$
   t$L$$    t     T$D$(1t$\$D$    l$$I\$  $   D$' L$$\$$uF)vD$'$   \$pJB  |$' t]    1AX؈A1҉T$l$$S\$    1t$   \$$.\$  \$`D$& L$$\$$uF)vD$&T$`JB  |$& tT    AX؈A1҉T$1ɉL$$\$    1l$$v\$0$D$4   D$\$\$@$$    D$t$$\$,$T$@JB~.T$0JB8$D$PD$#$D$PD$    $D$PD$\$$\$$o$   Í$   JB~&    $t$$拔$   Ít$pT$`Ít$P밋T$@øJB~T$0JBD$PD$량$D$PD$ϐʍ        \$\$$t$C)t\$1t$Ít&     t    p1
   T$1ɉL$t$$    ƋAX؈
   A\$11ɉT$L$$    t     T$    t$$St&     \$t8$    1D$1D$   D$    $1\$Ë8   $D$D$(\$$   ϐ&    '    L    \$@\$T|$H|$Xt$D   C3)u$$    1ɉL$1\$@t$D|$HLÍD$   t$0D$T$4$t$$T$0Ít$JB~Nu$    1D$됋<   $&    '    D$\$<$   \t$$뤋8   $ȋT$0Ít$JB~    '    $t$$捶        u1Ë$P    u1É$t&   $  $  $  $  V)u      )u1$  $  $  Č  Í$`  $p  D$  D$$\$$$p  Í$P  JB  u    { $Rl|$!  $@  D$$\$$$@  Í$0  JB  u    $|$$   '  |$$\$$$   Í$  JB  u    $|$,  \$$   $\$$$   Í$   JB  u    2$%|$1  $   L$$\$$$   Í$   JB  u    $|$:  $   T$$\$$$   Í$   JB  u    X$K|$B  $   D$$\$$$   Í$   JB   u    $|$J  $   D$$\$$$   Í|$pJB  u    $t|$O  \$`D$$\$$T$`Í|$PJB0  u    $|$W  \$@D$$\$$T$@Í|$0JB   u    $|$`  \$ D$$\$$T$ Ít$JB~Mu    Y$L@   $D$$  \$$   t$$륉|$$4|$$|$$J|$$|$$Q|$$|$$U|$$|$$Y|$$$X$p  Í$P  JB~$t$$拔$@  Í$0  苔$   Í$  ԋ$   Í$   $   Í$   u멋$   Í$   ^뒋$   Í$   Gx$   Ít$p0aT$`Ít$PMT$@Ít$09T$ Ít$t&   $  $  $  $  1$  $  VD$)u      )u%$  $  $  $  Ĭ  Í$p  $  D$  D$$\$$$  Í$`  JBJ  u$    1D$jl$!  $P  D$$\$$$P  Í$@  JB  uO    u$    1D$$e  D$e     \$D$$l$'  $0  D$$\$$$0  Í$   JB  u2-    u$    1t$T$e  Xl$,  $  L$$\$$$  Í$   JB  u$    1҉T$l$1  $   D$$\$$$   Í$   JB  u$    1D$ol$:  $   D$$\$$$   Í$   JB  u$    1D$l$B  $   D$$\$$$   Í$   JB  u$    1D$l$$   J  l$$\$$$   Í$   JB  u$    1ۉ\$1l$O  \$pL$$\$$T$pÍl$`JB$  u$    1҉T$l$W  \$PD$$\$$T$PÍl$@JB   u$    1D$ol$`  \$0D$$\$$T$0Ít$ JB~Gu$    1D$@   $D$D$\$$   t$$뫉l$$=l$$l$$Yl$$l$$cl$$l$$mt& l$$l$$ l$$$P$  Í$`  JB~$t$$拔$P  Í$@  苔$0  Í$   ԋ$  Í$   $   Í$   u멋$   Í$   ^뒋$   Í$   Gx$   Í$   -^T$pÍt$`JT$PÍt$@6T$0Ít$ U1WVS   $   $   D$(C)w3,   $D$T$(\$$   Ĝ   [^_]Ð$          @    4$D$    1ۋAxA1҉T$
   \$L$$F    xF$   T$D$$      ǋX؈N   D$ $L$$   Wx   T$$<$   GlL$D$   OPGT PGl   GX   L$G\    G`    
Gd    Gi |$GlPщ$D$@       T$BP   
T$|$BPщ$   T$L$P   
    A   $   RGl(   :x      GlP   Gtd   T$   D$$\$$D$~    $y  1L$VJtE$\$$$    T$      1ۍ|$pD$pFPl
   EډD$P$|$D$$Jȋ@  $  T   $D$D$\$<$@   $         t$,Q;Q   t2BA$   T$pJB~M~*t&Vu4\$0JB~4$\$$$P|$$륉T$D$,D$$p$        @    @    @       !$  |$\$@$$    D$|$$\$=D   \$P$<$D$|$$\$L$($T$P$   ߍJB~-T$@JB~
   \$$\$$ŉ|$\$P$$  D$  L$$\$=D   \$@$<$D$|$$\$D$($T$@$   ߍJB~	T$P3\$$鍴&    ŉ   GP@    i tG\y  G`a  TG  <$L$$      D$ $<$t& Kt,$,$$   |$P$R\$\$p$D$\$H   <$D$\$@|$$$  D$  T$$\$T$($T$@\$0JB~UT$PJB~2T$pJB~   u\$$\$$\$$띋GP$$$zG$W`)ЉD$G`D$GP$FL$ŉӡ   P   
A    ŉ=<$ŉӸ   D$+ŉ.ŉ<ӉŋT$@J$   B~*T$pJB|$$|$$ȉӉŋT$P$   JB~	T$@J둉|$$ŉӍ$   ܉ӉŋT$P_ӉŋT$@$   JB~T$P뭉|$$ŉӍ$   ߉ŉӍ$   &ŉFT$@ō\$0JB~PT$PJB~-T$pJB~
\$$\$$ŉ\$$뢉ō\$0뚉ō\$0막븋ō\$0JB\$$v '    T$$t$t$(\$B
)w/,   $\$4$D$\$   t$Ë<   $ϐ&    '    T$$t$t$(\$B)u1,   $D$\$4$   \$Ћt$ÉT$BD$    $1҅tԋL   $믃D$$t$t$(\$ t$D$    $1҅u\$Ћt$ÉL   $D$\$4$   ːv '        $D$D$$1Ív '    U   WVS  1ۍ$   $4  t$0$$      PD$0   2D$0\$P2$   ^FX    $F      FT      L$$\$FX$1ۋG)9s#4$D$$  T$Cύ\$D$4D$$$8  \$$D$|$ ڍHP         ډD$0    $   $   l$4HP~_D$D    1D$411ۉl$<D$d|$@\$`$   PD$0   2F\FX   $  1[^_]É|$$듉|$$OFX   F\$<$SPǍl$ JB~$   P   2밉l$$։$ҋT$Ǎ\$ JB   &    '              $   $   L$0D$4JB~:D$D    D$41D$<1D$@1D$`D$d$   D$0<\$$븉\$$qǍ\$ et& D$    T$D$v '        D$UWVS  D$|$t$    D$x   PD$    21D$D$ P2$   ^FX    $F      FT      D$$\$FX$    $4$ø  D$\$$$
   l$D$$D$$   $   T$t|$        \$x\$L$$JB~fD$4 D$T1ɉL$P   1l$$1ۉ|$,\$0$   PD$    2F\FX   $$     [^_] \$$댉FX   F\$<$t& SPǍl$JB~$   P   2묉l$$։$Һ   Ǹ    T$ \$T$tD$x   JD$$B~:D$4    D$$1D$,1D$01D$PD$T$   D$ i\$$븉    D$D$$$=     tO1D$1D$   D$  D$    $    $    D$     11Ҹ   L$T$믐            D$UWVS  D$|$t$    D$x   PD$    21D$D$ P2$   ^FX    $F      FT      l$$\$FX$    $4$  É|$\$$$
   \$D$$D$$   $       T$x   \$L$ T$tD$$JB~fD$4 1   D$011D$PD$TL$$T$,$   PD$    2F\FX   $$     [^_] \$$댉FX   F\$<$t& SPǍl$JB~$   P   2묉l$$։$҉ǋT$t\$   D$     JD$x   D$$B~:D$4    1D$$11D$,D$T$l$0\$P   D$ i\$$븉D$D$D$$$D$        t<11ɺ   D$L$T$  D$    $    $1D$1D$   D$    D$        U1WVS  D$|$t$    D$x   PD$    2D$ l$P2$   ^FX    $F      FT      |$$\$FX$    $4$	  ÉL$\$$$
   T$D$$D$$   $   T$tD$ \$    D$xJ   D$$B~fD$4    D$$1D$,1D$01D$PD$T$   PD$    2F\FX   $$     [^_] \$$댉FX   F\$<$v SPǍl$JB~$   P   2뭉l$$։$ҋT$tǽ   l$$   \$D$     JD$xB~:D$4 11ɉD$P1һ   \$$D$T$L$,T$0   D$ i\$$븉D$D$D$$$D$   ~rt%D$$`      $Ít& 1D$1D$   D$&      D$    $D$D$    $룅u1D$1D$   D$C  11ɺ   D$X  L$T$뜍              D$        UWVS  D$|$t$    D$x   PD$    21D$D$ P2$   ^FX    $F      FT      D$$\$FX$      $4$m  Él$\$$$
   |$D$$D$$   $      T$$    \$ T$t\$L$xJB~fD$4 11ɉD$P1һ   \$$D$TL$,T$0$   PD$    2F\FX   $$     [^_] \$$댉FX   F\$<$SPǍl$JB~$   P   2뮉l$$։$҉ǋT$t\$   D$     JD$x   D$$B~:D$4    1D$$1D$,1D$0D$T$l$P   D$ i\$$븉<=    \$4t$8       t_D$\$$\$$   T$\$ JB~v \$4   t$8<É\$$$  D$  D$$                D$1   D$$Pr 7T$Ít$ JB~$t$$ꍴ&    '    UWV   S  1ۍD$||$ $t$x   PD$    :D$ \$P:$   _GX    $G      GT      L$$\$GX$    1ۅt
X)<$  D$ @D@u   \$$K     D$<$D$$D$$   $   T$tt$        \$x\$L$$JB~fD$4 D$T1ɉL$P   1l$$1ۉt$,\$0$   PD$    :G\GX   $$     [^_] \$$댽  l$(\$$GX   G\$4$SPƍl$JB~$   P   :뮉l$$։$Һ   Ƹ    T$ \$T$tD$x   JD$$B~:D$4    D$$1D$,1D$01D$PD$T$   D$ i\$$븉LD$ \$D\$0D$  t$HD$$\$D$P$T$0Ít$JB~D$T \$Dt$HLÉt$$݋T$0Ít$JB~$t$$捶    |$         DÐ        L$ P    1҉T$
   1҉T$L$$T$$UWVS  $   $$0  t$0      $   PD$0   21D$D$0P2$   ^FX    $F      FT      D$$\$FX$=     1  D$0@D0@u  |$4$\$D$4D$$\$$(   D$|$ ڍHP             D$0ڋ$   L$4$   HP~bD$D D$d1ɉL$`   1l$41ۉ|$<\$@$   PD$0   2F\FX   $  (   [^_]É|$$됉|$$L|$4$          (       D$1D$$r FX   F\$<$v SPǍl$ JB~$   P   2뭉l$$։$ҋT$Ǎ\$ JB          T$0$   $      JD$4B~:D$D    D$41D$<1D$@1D$`D$d$   D$0I\$$븉\$$qǍ\$ et& UWVS  D$|$$$  |$    D$x   PD$    :1D$D$ P:$   _GX    $G      GT      D$$\$GX$<$  D$;Ftzh  D$<$\$$$  L$EH@D@u   L$$$    T$;FuD$$D$$   $   T$tt$        \$x\$L$$JB~fD$4 D$T1ɉL$P   1l$$1ۉt$,\$0$   PD$    :G\GX   $$     [^_] \$$댉L$$&    GX   G\$4$t& SPƍl$JB~$   P   :묉l$$։$Һ   Ƹ    T$ \$T$tD$x   JD$$B~:D$4    D$$1D$,1D$01D$PD$T$   D$ i\$$븉WVS0|$D      t$ D$ Gl1ۅEظ
   D$P$t$D$$Jȋ@   $  D$D$  D$4$@   $  D$D$  D$4$@u1$  D$  D$L$4$@D$ P    D$ $  D$   u   T$ \$JB~	0[^_É\$$$"  1뷋T$ Ít$JB~$t$$ꐍv '    U11WVS,t$@L$l$L|$PFFD$  ;F9  X     P1JtҺ<  ET$$ @D@u<  $D$DD$$  L$ @D@u   $D$HD$$  T$ @D@u   l$$$  L$ @D@ut]|$$$    T$C@4$D$؃;F&    '    ,[^_]Í    |$$롉l$$[$D$HD$$D$DD$t&    뙐&    V1S41D$D\$$t$@FF\$D$ tr;FtcX P1JtEF  L$$D$$\$$    T$C@4$D$؃;Fu4[^ú   V1S41D$D\$$t$@FF\$D$ tr;FtcX P1JtES  L$$D$$\$$    T$C@4$D$؃;Fu4[^ú   V1S$1ۉ\$t$0FFD$tj;Ft[X&     P1JtEa  L$$$    T$C@4$D$؃;Fu$[^ú   UWVS<  }   wG    $   @         F    G    @@G$        OG    @    B    @@$        O(G(    @    B    @@$        O4G4    A    @    B    A    @U@xD$g       D$$t$MhL$$GhX9U  8(ML$$\$81,HD$t$$H(hJBT  $   hZ    UJBBT  l  D$EL$$t$UT$$G89S  XUT$$\$X1hHhL$t$$HJB2S  $   Y    UJBR  p  D$EL$$t$UT$$G89fR  XUT$$\$X1hHhL$t$$HJBQ  $   Y    UJBQ  EL$t  L$$t$UT$$G89
Q  XUT$$\$1ҍHhXL$t$h$HJBzP  $   Y    UJB.P  y  D$EL$$t$UT$$G89O  XUT$$\$X1hHhL$t$$HJBO  $   Y    UJBN  `  D$EL$$t$UT$$G89RN  XUT$$\$X1hHhL$t$$HJBM  $   Y    UJBvM  ~  D$EL$$t$UT$$G89L  XUT$$\$X1hHhL$t$$HJBfL  $   Y    UJBL  EL$  L$$t$UT$$G89K  XUT$$\$1ҍHhXL$t$h$HJB
K  $   Y    UJBJ  J  D$EL$$t$UT$$G89>J  XUT$$\$X1hHhL$t$$HJBI  $   Y$UJBTI    MT$D$$t$ED$$G89H  XxED$$\$X1|HhhT$t$$HxJBDH  $   Y    UJBG    D$EL$$t$UT$$G89xG  XhUT$$\$X1lhHhL$t$$HhJBF  $   Y    UJBF  EL$  L$$t$UT$$G89F  XXUT$$\$1ҍH\hXL$t$h$HXJBE  $   Y$UJB2E    MT$D$$t$ED$$G89D  XHED$$\$X1LHhhT$t$$HHJB"D  $   Y    UJBC    D$EL$$t$UT$$G89VC  X8UT$$\$X1<hHhL$t$$H8JBB  $   Y    UJBzB    D$EL$$t$UT$$G89A  X(UT$$\$X1,hHhL$t$$H(JBjA  $   Y    UJBA  EL$  L$$t$UT$$G89@  XUT$$\$1ҍHhXL$t$h$HJB@  $   Y    UJB?    D$EL$$t$UT$$G89B?  XUT$$\$X1hHhL$t$$HJB>  $   Y    UJBf>    D$EL$$t$UT$$G89=  XUT$$\$X1hHhL$t$$HJBV=  $   Y    UJB
=    D$EL$$t$UT$$G89<  XUT$$\$X1hHhL$t$$HJB;  $   Y    UJB;  EL$  L$$t$UT$$G89.;  XUT$$\$1ҍHhXL$t$h$HJB:  $   Y    UJBR:    D$EL$$t$UT$$G899  XUT$$\$X1hHhL$t$$HJBB9  $   Y    UJB8    D$EL$$t$UT$$G89v8  XUT$$\$X1hHhL$t$$HJB7  $   Y    UJB7    D$EL$$t$UT$$G897  XUT$$\$X1hHhL$t$$HJB6  $   Y    UJB>6  EL$  L$$t$UT$$G895  XUT$$\$1ҍHhXL$t$h$HJB.5  $   Y    UJB4    D$EL$$t$UT$$G89b4  XUT$$\$X1hHhL$t$$HJB3  $   Y    UJB3  a  D$EL$$t$UT$$G893  XxUT$$\$X1|hHhL$t$$HxJBv2  $   Y    UJB*2    D$EL$$t$UT$$G891  XhUT$$\$X1lhHhL$t$$HhJB1  $   Y    UJB0  EL$  L$$t$UT$$G89N0  XXUT$$\$1ҍH\hXL$t$h$HXJB/  $   Y    UJBr/    D$EL$$t$UT$$G89.  XHUT$$\$X1LhHhL$t$$HHJBb.  $   Y    UJB.    D$EL$$t$UT$$G89-  X8UT$$\$X1<hHhL$t$$H8JB-  $   Y    UJB,    D$EL$$t$UT$$G89:,  X(UT$$\$X1,hHhL$t$$H(JB+  $   Y    UJB^+  EL$  L$$t$UT$$G89*  XUT$$\$1ҍHhXL$t$h$HJBN*  $   Y    UJB*    D$EL$$t$UT$$G89)  XUT$$\$X1hHhL$t$$HJB(  $   Y    UJB(    D$EL$$t$UT$$G89&(  XUT$$\$X1hHhL$t$$HJB'  $   Y    UJBJ'    D$EL$$t$UT$$G89&  XUT$$\$X1hHhL$t$$HJB:&  $   Y    UJB%  EL$  L$$t$UT$$G89n%  XUT$$\$1ҍHhXL$t$h$HJB$  $   Y    UJB$    D$EL$$t$UT$$G89$  XUT$$\$1HhXL$t$h$HJB#  $   Y    UJB6#  	  D$EL$$UT$L$$G9"  xML$$\$1|hD$h$D$xJB"  $   Z    UJB!    MT$D$$EhD$T$$Gh9H!  XUT$$\$1\L$$T$XhJB   $   hY    UJBf   EL$(  L$$UhT$L$$Gh9  HML$$\$1ҋLL$$T$HhJBJ  $   hY    UJB  4  D$EL$$UhT$L$$Gh9x  8ML$$\$1<T$L$$8hJB  $   hY    UJB  @  D$EL$$UhT$L$$Gh9  (ML$$\$1,L$$D$(hJBz  $   hY    UJB.  O  D$EL$$UT$L$$G9  ML$$\$1D$$D$JB  B    UJB  X  L$MT$$ED$T$$G9P  UT$$\$1ҍL$$T$JB  UA   JB~  b  D$EL$$UT$L$$G9  ML$$\$1T$L$$JBb  UA   JB&  l  D$EL$$UT$L$$G9  ML$$\$1T$L$$JB
  UA   JB  x  D$EL$$UT$L$$G9H  ML$$\$1T$L$$JB  UA   JBv  EL$  L$$UT$L$$G9  xML$$\$1ҋ|L$$T$xJBZ  UA   JB    D$EL$$UT$L$$G9  hML$$\$1lL$$D$hJB  UA   JB    D$EL$$UXT$L$$G(XH9@  (ML$$\$1(8D$$D$8XJB  XB
   UJBn    MT$D$$ED$T$$G((9  HUT$$\$H1X8XL$$T$8JBR  UA   JB  EL$  L$$UT$L$$G((9  HML$$\$1ҋ8HL$$XXT$8JB  UA   JB    D$EL$$UT$L$$G((98  HML$$\$H18XXT$L$$8JB  UA   JBf    D$EL$$UT$L$$G((9  HML$$\$H18XXT$L$$8JBJ  UA#   JB    D$EL$$UT$L$$G((9  HML$$\$H18XXT$L$$8JB
  UA#   JB
  EL$  L$$UT$L$$G((90
  HML$$\$1ҋ8HL$$XXT$8JB	  UA%   JB^	    D$EL$$UT$L$$G((9  HML$$\$H18XXT$L$$8JBB  UA(   JB    D$EL$$UT$L$$G((9  HML$$\$H18XXT$L$$8JB  UA(   JB    D$EL$$UT$L$$G((9(  HxML$$\$H1|8XXT$L$$8xJB  UA*   JBV  EL$  L$$UT$L$$G((9  HhML$$\$1ҋl8HL$$XXT$8hJB:  UA+   JB    D$EL$$UT$L$$G((9x  HXML$$\$H1\8XXT$L$$8XJB  UA,   JB    D$EL$$UT$L$$G((9   HHML$$\$H1L8XXT$L$$8HJB  UA-   JBN    D$EL$$UT$L$$G((9   H8ML$$\$1<8HL$$XXD$88JB~=UA2   JB~e[^_]É$xT$$xT$믍AUD$T$$t	$xT$$xT$_AUD$T$$;$xT$C$xT$AUD$T$$Y$xT$$xT$AUD$T$$$xT$$xT$WAUD$T$$3$xT$;$xT$AUD$T$$Q$xT$$xT$AUD$T$$$xT$$xT$OAUD$ T$$+$xT$3$xT$AUD$T$$I$xT$$xT$AUD$T$${$xT$$xT$GAUD$T$$#$xT$+$xT$AUD$T$$A$xT$$xT$AD$ED$$s$xD${$xD$?BUD$T$$X$xT$#$xT$AUD$T$$9$xT$$xT$AUD$T$$k$xT$s$xT$7AUD$	T$$$xT$$xT$AUD$
T$$1$xT$$xT$AUD$T$$c$xT$k$xT$/AD$ED$$$xD$$xD$BUD$T$$)$xT$$xT$oAUD$T$$Kh$xT$S$xT$AUD$T$$hY$xT$$xT$AUD$T$${h$xT$$xT$7AD$ED$$h$xD$$xD$BUD$T$$!$xT$$xT$gAD$ED$$C$xT$W$xT$AD$ED$$c$xT$$xT$AD$ED$$$xT$$xT$SAD$ED$$/$xT$C$xT$AD$ED$$O$xT$$xT$AD$ED$$w$xT$$xT$?AD$ED$$$xT$/$xT$AD$ED$$;$xT$$xT$AD$ED$$c$xT$w$xT$+AD$ED$$$xT$$xT$AD$ED$$'$xT$$xT$sAD$ED$$O$xT$c$xT$AD$ED$$o$xT$$xT$AD$ED$ $$xT$$xT$_AD$ED$!$;$xT$O$xT$AD$ED$"$[$xT$$xT$AD$ED$#$$xT$$xT$KAD$ED$$$'$xT$;$xT$AD$ED$%$G$xT$$xT$AD$ED$&$o$xT$$xT$7AD$ED$'$$xT$'$xT$ۿAD$ED$($3$xT$˾$xT$AD$ED$)$[׽$xT$o$xT$#AD$ED$*${$xT$$xT$ǻAMD$+L$$$xD$鷺$xT$]AD$ED$,$9鵹$xT$M$xT$AD$ED$-$ݸY$xT$$xT$饷AMD$.L$$$xD$镶$xT$;AD$ED$/$铵$xT$+$xT$ߴAD$ED$0$7$xT$ϳ$xT$郳AD$ED$1$_۲$xT$s$xT$'AD$ED$2$$xT$$xT$˰AD$ED$3$#$xT$黯$xT$oAD$ED$4$KǮ$xT$_$xT$AD$ED$5$k$xT$$xT$鷬AD$ED$6$$T$駫$T$[BUD$7T$$7h鳪   $ËFt3G@4$D$F    G@G@    G@t&    t$$롉ËHt;G@$D$G@GA    @    G@$   T$IËHt;G@$D$G@GA    @    G@$   T$2(øJB   UJB   W4A)ufHt;G(@$D$G(@G(A    @    G(@$   T$$D$뉉$D$_$D$0):øJB~/UJB	$xD$$xD$뽍t& 뵉øJB~/UJB$xD$$xD$뽉빉høJB~/UJB7$xD$ $xD$뽉빉øJB~/UJB$xD$$xD$뽉빉øJB~/UJBi$xD$R$xD$뽉빉3øJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉eøJB~/UJB4$xD$$xD$뽋É$뫉막xøJB~/UJB$xD$$xD$뽉빉høJB~/UJBT$xD$=$xD$뽉빉XøJB~/UJB$xD$$xD$뽋É$뫉막HøJB~/UJBt$xD$]$xD$뽉빉>8øJB~/UJB$xD$$xD$뽉빉(øJB~/UJB$xD$$xD$뽉빉pøJB~/UJB?$xD$($xD$뽉빉	øJB~/UJB$xD$$xD$뽉빉øJB~/UJBq$xD$Z$xD$뽉빉;øJB~/UJB
$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉møJB~/UJB<$xD$%$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉øJB~/UJBn$xD$W$xD$뽉빉8øJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉jxøJB~/UJB9$xD$"$xD$뽉빉høJB~/UJB$xD$$xD$뽉빉XøJB~/UJBk$xD$T$xD$뽉빉5HøJB~/UJB$xD$$xD$뽉빉8øJB~/UJB$xD$$xD$뽉빉g(øJB~/UJB6$xD$$xD$뽉빉 øJB~/UJB$xD$$xD$뽉빉øJB~/UJBh$xD$Q$xD$뽉빉2øJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉døJB~/UJB3$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉xøJB~/UJBe$xT$N$xT$뽉빉/XøJB~/UJB$xD$$xD$뽉빉HøJB~/UJB$xD$$xD$뽉빉a8øJB~/UJB0$xD$$xD$뽉빉(øJB~/UJB$xD$$xD$뽉빉øJB~/UJBb$xT$K$xT$뽉빉,øJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xD$}$xD$뽉빉^øJB~/UJB-$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉xøJB~/UJB_$xD$H$xD$뽉빉)høJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xT$z$xT$뽉빉[øJB~/UJB*$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉øJB~/UJB\$xD$E$xD$뽉빉&øJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xD$w$xD$뽉빉XøJB~/UJB'$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉øJB~/UJBY$xD$B$xD$뽉빉#xøJB~/UJB$xD$$xD$뽉빉høJB~/UJB$xD$t$xD$뽉빉UXøJB~/UJB$$xD$$xD$뽉빉HøJB~/UJB$xD$$xD$뽉빉8øJB~/UJBV$xD$?$xD$뽉빉     ËnËË:v &    UWVS<  }   wG    $   @         F    G    @@G$        OG    @    B    @@$        O(G(    @    B    @@$        O4G4    A    @    B    A    @U@xD$g       D$$t$MhL$$GhX9U  8(ML$$\$81,HD$t$$H(hJBT  $   hZ    UJBBT  l  D$EL$$t$UT$$G89S  XUT$$\$X1hHhL$t$$HJB2S  $   Y    UJBR  p  D$EL$$t$UT$$G89fR  XUT$$\$X1hHhL$t$$HJBQ  $   Y    UJBQ  EL$t  L$$t$UT$$G89
Q  XUT$$\$1ҍHhXL$t$h$HJBzP  $   Y    UJB.P  y  D$EL$$t$UT$$G89O  XUT$$\$X1hHhL$t$$HJBO  $   Y    UJBN  `  D$EL$$t$UT$$G89RN  XUT$$\$X1hHhL$t$$HJBM  $   Y    UJBvM  ~  D$EL$$t$UT$$G89L  XUT$$\$X1hHhL$t$$HJBfL  $   Y    UJBL  EL$  L$$t$UT$$G89K  XUT$$\$1ҍHhXL$t$h$HJB
K  $   Y    UJBJ  J  D$EL$$t$UT$$G89>J  XUT$$\$X1hHhL$t$$HJBI  $   Y$UJBTI    MT$D$$t$ED$$G89H  XxED$$\$X1|HhhT$t$$HxJBDH  $   Y    UJBG    D$EL$$t$UT$$G89xG  XhUT$$\$X1lhHhL$t$$HhJBF  $   Y    UJBF  EL$  L$$t$UT$$G89F  XXUT$$\$1ҍH\hXL$t$h$HXJBE  $   Y$UJB2E    MT$D$$t$ED$$G89D  XHED$$\$X1LHhhT$t$$HHJB"D  $   Y    UJBC    D$EL$$t$UT$$G89VC  X8UT$$\$X1<hHhL$t$$H8JBB  $   Y    UJBzB    D$EL$$t$UT$$G89A  X(UT$$\$X1,hHhL$t$$H(JBjA  $   Y    UJBA  EL$  L$$t$UT$$G89@  XUT$$\$1ҍHhXL$t$h$HJB@  $   Y    UJB?    D$EL$$t$UT$$G89B?  XUT$$\$X1hHhL$t$$HJB>  $   Y    UJBf>    D$EL$$t$UT$$G89=  XUT$$\$X1hHhL$t$$HJBV=  $   Y    UJB
=    D$EL$$t$UT$$G89<  XUT$$\$X1hHhL$t$$HJB;  $   Y    UJB;  EL$  L$$t$UT$$G89.;  XUT$$\$1ҍHhXL$t$h$HJB:  $   Y    UJBR:    D$EL$$t$UT$$G899  XUT$$\$X1hHhL$t$$HJBB9  $   Y    UJB8    D$EL$$t$UT$$G89v8  XUT$$\$X1hHhL$t$$HJB7  $   Y    UJB7    D$EL$$t$UT$$G897  XUT$$\$X1hHhL$t$$HJB6  $   Y    UJB>6  EL$  L$$t$UT$$G895  XUT$$\$1ҍHhXL$t$h$HJB.5  $   Y    UJB4    D$EL$$t$UT$$G89b4  XUT$$\$X1hHhL$t$$HJB3  $   Y    UJB3  a  D$EL$$t$UT$$G893  XxUT$$\$X1|hHhL$t$$HxJBv2  $   Y    UJB*2    D$EL$$t$UT$$G891  XhUT$$\$X1lhHhL$t$$HhJB1  $   Y    UJB0  EL$  L$$t$UT$$G89N0  XXUT$$\$1ҍH\hXL$t$h$HXJB/  $   Y    UJBr/    D$EL$$t$UT$$G89.  XHUT$$\$X1LhHhL$t$$HHJBb.  $   Y    UJB.    D$EL$$t$UT$$G89-  X8UT$$\$X1<hHhL$t$$H8JB-  $   Y    UJB,    D$EL$$t$UT$$G89:,  X(UT$$\$X1,hHhL$t$$H(JB+  $   Y    UJB^+  EL$  L$$t$UT$$G89*  XUT$$\$1ҍHhXL$t$h$HJBN*  $   Y    UJB*    D$EL$$t$UT$$G89)  XUT$$\$X1hHhL$t$$HJB(  $   Y    UJB(    D$EL$$t$UT$$G89&(  XUT$$\$X1hHhL$t$$HJB'  $   Y    UJBJ'    D$EL$$t$UT$$G89&  XUT$$\$X1hHhL$t$$HJB:&  $   Y    UJB%  EL$  L$$t$UT$$G89n%  XUT$$\$1ҍHhXL$t$h$HJB$  $   Y    UJB$    D$EL$$t$UT$$G89$  XUT$$\$1HhXL$t$h$HJB#  $   Y    UJB6#  	  D$EL$$UT$L$$G9"  xML$$\$1|hD$h$D$xJB"  $   Z    UJB!    MT$D$$EhD$T$$Gh9H!  XUT$$\$1\L$$T$XhJB   $   hY    UJBf   EL$(  L$$UhT$L$$Gh9  HML$$\$1ҋLL$$T$HhJBJ  $   hY    UJB  4  D$EL$$UhT$L$$Gh9x  8ML$$\$1<T$L$$8hJB  $   hY    UJB  @  D$EL$$UhT$L$$Gh9  (ML$$\$1,L$$D$(hJBz  $   hY    UJB.  O  D$EL$$UT$L$$G9  ML$$\$1D$$D$JB  B    UJB  X  L$MT$$ED$T$$G9P  UT$$\$1ҍL$$T$JB  UA   JB~  b  D$EL$$UT$L$$G9  ML$$\$1T$L$$JBb  UA   JB&  l  D$EL$$UT$L$$G9  ML$$\$1T$L$$JB
  UA   JB  x  D$EL$$UT$L$$G9H  ML$$\$1T$L$$JB  UA   JBv  EL$  L$$UT$L$$G9  xML$$\$1ҋ|L$$T$xJBZ  UA   JB    D$EL$$UT$L$$G9  hML$$\$1lL$$D$hJB  UA   JB    D$EL$$UXT$L$$G(XH9@  (ML$$\$1(8D$$D$8XJB  XB
   UJBn    MT$D$$ED$T$$G((9  HUT$$\$H1X8XL$$T$8JBR  UA   JB  EL$  L$$UT$L$$G((9  HML$$\$1ҋ8HL$$XXT$8JB  UA   JB    D$EL$$UT$L$$G((98  HML$$\$H18XXT$L$$8JB  UA   JBf    D$EL$$UT$L$$G((9  HML$$\$H18XXT$L$$8JBJ  UA#   JB    D$EL$$UT$L$$G((9  HML$$\$H18XXT$L$$8JB
  UA#   JB
  EL$  L$$UT$L$$G((90
  HML$$\$1ҋ8HL$$XXT$8JB	  UA%   JB^	    D$EL$$UT$L$$G((9  HML$$\$H18XXT$L$$8JBB  UA(   JB    D$EL$$UT$L$$G((9  HML$$\$H18XXT$L$$8JB  UA(   JB    D$EL$$UT$L$$G((9(  HxML$$\$H1|8XXT$L$$8xJB  UA*   JBV  EL$  L$$UT$L$$G((9  HhML$$\$1ҋl8HL$$XXT$8hJB:  UA+   JB    D$EL$$UT$L$$G((9x  HXML$$\$H1\8XXT$L$$8XJB  UA,   JB    D$EL$$UT$L$$G((9   HHML$$\$H1L8XXT$L$$8HJB  UA-   JBN    D$EL$$UT$L$$G((9   H8ML$$\$1<8HL$$XXD$88JB~=UA2   JB~e[^_]É$xT$$xT$믍AUD$T$$t	$xT$$xT$_AUD$T$$;$xT$C$xT$AUD$T$$Y$xT$$xT$AUD$T$$$xT$$xT$WAUD$T$$3$xT$;$xT$AUD$T$$Q$xT$$xT$AUD$T$$$xT$$xT$OAUD$ T$$+$xT$3$xT$AUD$T$$I$xT$$xT$AUD$T$${$xT$$xT$GAUD$T$$#$xT$+$xT$AUD$T$$A$xT$$xT$AD$ED$$s$xD${$xD$?BUD$T$$X$xT$#$xT$AUD$T$$9$xT$$xT$AUD$T$$k$xT$s$xT$7AUD$	T$$$xT$$xT$AUD$
T$$1$xT$$xT$AUD$T$$c$xT$k$xT$/AD$ED$$$xD$$xD$BUD$T$$)$xT$$xT$oAUD$T$$Kh$xT$S$xT$AUD$T$$hY$xT$$xT$AUD$T$${h$xT$$xT$7AD$ED$$h$xD$$xD$BUD$T$$!$xT$$xT$gAD$ED$$C$xT$W$xT$AD$ED$$c$xT$$xT$AD$ED$$$xT$$xT$SAD$ED$$/$xT$C$xT$AD$ED$$O$xT$$xT$AD$ED$$w$xT$$xT$?AD$ED$$$xT$/$xT$AD$ED$$;$xT$$xT$AD$ED$$c$xT$w$xT$+AD$ED$$$xT$$xT$AD$ED$$'$xT$$xT$sAD$ED$$O$xT$c$xT$AD$ED$$o$xT$$xT$AD$ED$ $$xT$$xT$_AD$ED$!$;$xT$O$xT$AD$ED$"$[$xT$$xT$AD$ED$#$$xT$$xT$KAD$ED$$$'$xT$;$xT$AD$ED$%$G$xT$$xT$AD$ED$&$o$xT$$xT$7AD$ED$'$$xT$'$xT$ۿAD$ED$($3$xT$˾$xT$AD$ED$)$[׽$xT$o$xT$#AD$ED$*${$xT$$xT$ǻAMD$+L$$$xD$鷺$xT$]AD$ED$,$9鵹$xT$M$xT$AD$ED$-$ݸY$xT$$xT$饷AMD$.L$$$xD$镶$xT$;AD$ED$/$铵$xT$+$xT$ߴAD$ED$0$7$xT$ϳ$xT$郳AD$ED$1$_۲$xT$s$xT$'AD$ED$2$$xT$$xT$˰AD$ED$3$#$xT$黯$xT$oAD$ED$4$KǮ$xT$_$xT$AD$ED$5$k$xT$$xT$鷬AD$ED$6$$T$駫$T$[BUD$7T$$7h鳪   $ËNt3G@4$D$F    G@G@    G@t&    T$$롉ËHt;G@$D$G@GA    @    G@$   T$IËHt;G@$D$G@GA    @    G@$   T$2(øJB   UJB   W4A)ufHt;G(@$D$G(@G(A    @    G(@$   T$$D$뉉$D$_$D$0):øJB~/UJB	$xD$$xD$뽍t& 뵉øJB~/UJB$xD$$xD$뽉빉høJB~/UJB7$xD$ $xD$뽉빉øJB~/UJB$xD$$xD$뽉빉øJB~/UJBi$xD$R$xD$뽉빉3øJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉eøJB~/UJB4$xD$$xD$뽋É$뫉막xøJB~/UJB$xD$$xD$뽉빉høJB~/UJBT$xD$=$xD$뽉빉XøJB~/UJB$xD$$xD$뽋É$뫉막HøJB~/UJBt$xD$]$xD$뽉빉>8øJB~/UJB$xD$$xD$뽉빉(øJB~/UJB$xD$$xD$뽉빉pøJB~/UJB?$xD$($xD$뽉빉	øJB~/UJB$xD$$xD$뽉빉øJB~/UJBq$xD$Z$xD$뽉빉;øJB~/UJB
$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉møJB~/UJB<$xD$%$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉øJB~/UJBn$xD$W$xD$뽉빉8øJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉jxøJB~/UJB9$xD$"$xD$뽉빉høJB~/UJB$xD$$xD$뽉빉XøJB~/UJBk$xD$T$xD$뽉빉5HøJB~/UJB$xD$$xD$뽉빉8øJB~/UJB$xD$$xD$뽉빉g(øJB~/UJB6$xD$$xD$뽉빉 øJB~/UJB$xD$$xD$뽉빉øJB~/UJBh$xD$Q$xD$뽉빉2øJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉døJB~/UJB3$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉xøJB~/UJBe$xT$N$xT$뽉빉/XøJB~/UJB$xD$$xD$뽉빉HøJB~/UJB$xD$$xD$뽉빉a8øJB~/UJB0$xD$$xD$뽉빉(øJB~/UJB$xD$$xD$뽉빉øJB~/UJBb$xT$K$xT$뽉빉,øJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xD$}$xD$뽉빉^øJB~/UJB-$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉xøJB~/UJB_$xD$H$xD$뽉빉)høJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xT$z$xT$뽉빉[øJB~/UJB*$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉øJB~/UJB\$xD$E$xD$뽉빉&øJB~/UJB$xD$$xD$뽉빉øJB~/UJB$xD$w$xD$뽉빉XøJB~/UJB'$xD$$xD$뽉빉øJB~/UJB$xD$$xD$뽉빉øJB~/UJBY$xD$B$xD$뽉빉#xøJB~/UJB$xD$$xD$뽉빉høJB~/UJB$xD$t$xD$뽉빉UXøJB~/UJB$$xD$$xD$뽉빉HøJB~/UJB$xD$$xD$뽉빉8øJB~/UJBV$xD$?$xD$뽉빉     ËnËË:v &    UWVS|$   $  FnD$~(F\$`PD$P9T$`tCыQtn$V~(T$PL$`L$@$FL$`D$P9uō    NQL$(L$  NA͉L$$  F(ǉD$ @H      ҉T$   
RȉL$9tMt1S  JB  $L$QD$9ЉD$uD$T$B)t$D$L$$V4F<)j  D$ xt7F(T$ @$D$F(L$ @F(A    @    F(@L$    \$$D$$Ht7FT$$@$D$FL$$@FA    @    F@L$$   T$$^Ct/F@$D$C    F@F@    F@   l$$D$(xt7FT$(@$D$FL$(@FA    @    F@L$(   \$$   |[^_]Ðt& $D$$T$0T$$PF(@<$D$G    F(@F(@    F(@F~(@$D$E    F@F@    F@9@n$~(D$FT$@FB    @    F@D$,\$0JB  L$A)  V4F<)o  Ot8F(@<$D$G    F(@F(@    F(@'    $   T$Et6F@,$D$E    F@F@    F@&    E $   l$^{t2F@$D$C    F@F@    F@v    \$$D$HtBFT$@$D$FL$@FA    @    F@t& '    L$$   T$   D$,$&    $D$}$D$X\$$2D$,T$ D$,T$$'    D$,D$,T$(OD$,D$,&    D$,'D$,1D$,eD$,pD$,v D$,T$릉D$,        UWVS|$   $  FnD$~(F\$`PD$P9T$`tCыQtn$V~(T$PL$`L$@$FL$`D$P9uō    NiL$(L$  Ny͉L$$  F(XǉD$ H      ҉T$   
RȉL$9tMt1S  JB  $L$QD$9ЉD$uD$T$B)t$D$L$$V4F<)j  D$ Ht7F(T$ @$D$F(L$ @F(A    @    F(@L$    T$$D$$@t7FT$$@$D$FL$$@FA    @    F@L$$   l$$^{t/F@$D$C    F@F@    F@   \$$D$(Ht7FT$(@$D$FL$(@FA    @    F@L$(   T$$   |[^_]Ðt& $D$$T$0T$$PF(@<$D$G    F(@F(@    F(@F~(@$D$E    F@F@    F@9@n$~(D$FT$@FB    @    F@D$,\$0JB  L$A)  V4F<)o  Gt8F(@<$D$G    F(@F(@    F(@'    $   \$Mt6F@,$D$E    F@F@    F@&    E $   T$^kt2F@$D$C    F@F@    F@v    |$$D$XtBFT$@$D$FL$@FA    @    F@t& '    L$$   L$   D$,$&    $D$}$D$X\$$2D$,T$ D$,T$$'    D$,D$,T$(OD$,D$,&    D$,'D$,1D$,eD$,pD$,v D$,T$릉D$,           $   L$`$   $   $   $   S$   $   D$T$$CT$`D$P9T$p   Bt$|$$tB~     $D$\$4$$   $   $   Č   Ít& D$ \$0D$|$@  D$$\$T   <$D$|$4$T$@\$JB~*T$0JBi\$$X\$$ȉt$|$$5T$@Ít$JB~+T$0JB~$t$$t$$ǐÍt$뾉ύt& UWVS   $   $         $         D$p   $     1D$`11D$P|$Tt$XD$P  |$0D$TT$X   D$    d   L$0|$T$$D$TT$0JB  $    D$1D$t$$  $    D$\$,$|$T\$P9t#v HP   9uT$PD$X)   D$`ڍHP~\D$pڍHP~5$   ڍHP~Ĭ   [^_]Í$   T$$$$   D$붉$$   T$돉$D$d$$   D$2D$1ɉL$\$<$|$$   $T$0JBi  $   P    $   $  D$1D$$s  B  <Y  B  <
A  $"  D$"  t$D$$D$(B  D$(<"?  $  D$D$($D$  D$;D$(   D$()T$T$(;Pv$%  \$D$T$(<$D$T$|$D$p$T$0JB~L    D$pHȈD$p$   D$D$$T$PD$$Љ$T$pT$$   D$$럋T$$L$,D$P$T$D$TD$D$PD$$:  l$$   T$PD$$   T$$|$T\$P9t HP   9uT$PD$X)u|D$`ڍHP~PD$pڍHP~)$   ڍHP$   D$$$   T$$$   D$뛉$D$p$$   T$B$M  @M  D$ D$T$ t$$T$ƋB   <"tvL$()ȉD$D$ ;Bv$%  \$T$D$ <$T$D$|$T$p$T$0JB$   T$L$()HD$D$ ;Bv$%  \$T$D$ <$T$D$|$T$p$T$0JB~F5$$   T$$$[$	$$$   D$$$   T$v ŋD$`ڍHP~YD$pڍHP~2$   ڍHP~,$$$   D$$$   T$빉$$   D$뒋T$0ŸJB~'T$PD$X)Q$D$=$$   D$ċT$0ŸJB~d|$T\$P9tHP~9ubt& $$   T$ۍ$   T$$떋T$0ŸJB{$   D$Ήg    <D$DL$ \$8\$@D$$ST$C   T$ D$9u
\$8ȃ<ËBT$HT$$1\D$dL$@\$T\$`D$$ST$t$XC   T$@D$09u\$Tȋt$X\ÐB\$ $R$D$$  D$  D$$\$D$h$T$ \$JB~1눉\$$T$ Ít$JB~$t$$ꐍ&    WVS`t$p=0       $  D$  D$$8   FPD$09T$@tb\$ |$PBD$$R\$$8   T$ JB~/T$@D$@$T$FT$@D$09u`8   [^_É|$$Í       0          8   1҉L$T$$r     T$ øJB~$|$$ꐉ,|$4  \$(\$0t\$(,Ív u$   $s 1    T$D$Ku$ s 1    1   1       D$1D$딐&    '    ,   \$(\$JB~\$(,Í    \$$,(   \$(\$JB~\$(,Í    \$$,8   \$(\$JB~\$(,Í    \$$   D$       )uÍ&    $D$䐍&    '      L$$   H                                          .   =   L   [   l   x                       $  =  U  l            DCBAUSER 500 Command failed
 501 Unknown command
 502 Unchanged
 503 Not moved
 504 Not sized
 505 Load failed
 506 Arghh!
 507 Not logged in
 508 No data
 509 Incorrect image type
 510 Incorrect pixel type
 511 Incomplete argument list
 512 No label
 513 Invalid command ( 514 No image present
 515 Not implemented yet
 516 Unknown dialog box
 517 Connection failed
 518 Socket exception 519 Non-existent variable
 520 Pointfile failure
 000 OK Bye!
 	
      server_user = %s
  server_user.size() != 0 interpreter.cxx Welcome,  505 Go away,  516  200 usage: user <username>
 %s: all freed
 %d: all freed
 Binary transmission failed!
 We expected %d bytes
 Expected:  
 Received:   arguments, 
 511 Got:  No previous unique id found
 [%s] %s %*s %s 513 No change
 box factor default )
 <overlay> toolbar print save info transfer spectra profile user bivhist progress help 520 No image shown
 user  Line is OK
 Response is OK
 Response not OK
 useOffscreenBuff : <Bool> =  Wraparound LUT lutWraparound    : <Bool> =  Synchronize display syncDisplay      : <Bool> =  &De-coupled image and window Fit &window to image Fit &image to window displaymode      : <Int>  =  No connection  connections) 
  connection) 
 true Live connections:
   Host:   port :  500 Command failed 501 Unknown command Response from stream:
%s
 Response from stream: OK
 zoom box  zoom factor  zoom default  reset quit bye end exit kill ? pf deny put putm ppath putp labl stpf ldpf svpf clpf load move size cmap zoom pan close raise icon hide show set get list toks link unlk useoffscreenbuff lutwraparound syncdisplay displaymode connectionlist IM_ERROR IM_UNSPEC IM_SINGLE IM_SPECTRUM IM_MULTI IM_RGB IM_HLS IM_BINARY IM_CHAR IM_INT1 IM_UINT1 IM_SHORT IM_INT2 IM_UINT2 IM_INT IM_INT4 IM_UINT4 IM_INT8 IM_UINT8 IM_FLOAT IM_DOUBLE Deleting all tokens
  	
  	 basic_string::substr Ready to evaluate
 "
 default action!                                help/?             : this help
---- Connection management
user <name>        : log in
quit/bye/end/exit  : closes connection
kill               : kills the server
link <addr> <port> : link to another imview
unlk <addr> <port> : unlink from another imview
---- Upload images
put <many args>    : puts an image for display
putm <many args>   : puts an image for display using shared memory (localhost only, SYSV IPC)
---- Pointfiles
pf                 : prints pointfile
stpf <file>        : sets the point file name
ldpf <file>        : upload a pointfile
svpf <file>        : save the pointfile
clpf               : clears the pointfile
---- Image management
load <file>        : load the image from <file>
cmap [name]        : apply colour map to current image, default if no name
zoom               : zoom functions, described below:
 ... box x y w h   : zoom to specified box 
 ... factor zf     : specify zoom factor (real number)
 ... default zf    : specify default zoom factor
pan  x y           : pan to specified location, keeping zoom intact
reset              : reset the image
close [name]       : close an image (name optional)
..... <overlay>    : close the overlay plane
---- Window management
move <X> <Y>       : move main window to new position
size <W> <H>       : change the window dimensions
raise              : raise/deiconize the main window to the top
icon/hide          : iconize the application
show|hide          : show or hide the main window
      ... print    : show or hide the print image dialog
      ... save     : show or hide the save image dialog
      ... info     : show or hide the info image  dialog
      ... transfer : show or hide the edit transfer  dialog
      ... spectra  : show or hide the spectra display dialog
      ... profile  : show or hide the profile display dialog
      ... user     : show or hide the user preference dialog
      ... bivhist  : show or hide the bivariate histogram dialog
      ... progress : show or hide the image download progress dialog
      ... help     : show or hide the online help dialog
      ... toolbar  : show or hide the toolbar
---- Variables
set <var> <value> : set some variable
get <variable>    : obtain a variable value
list              : lists all the valid variables
   Space found in username %s at position %d; while npos=%d
       Double space found in username %s
                              User action constructor: user = %s
                             User unknown, env. variable %s not defined                      environment variable is not defined.
                           Found the header associated with %s!
                           Found the header associated with %d, but swapped!
              Found the header associated with %d!
                           Found the header associated with %s for deletion...
            Found the header associated with %d for deletion!
              Within the put callback, received %d bytes
                     Did not receive the expected number of bytes:
                  callback: closing previous header: %d 
                         Ok so far. Asking the GUI to please diplay img %s
              Blocking future commands until display completed
               Could not match header with Id =                                Looking for previous header with same label: %s
                Unique ID associated with this previous header: %d
             511 Put syntax error, expected  511 
511 Syntax: put "name" nbcomp nx ny nz ox oy oz IMG_TYPE PIX_TYPE spp
511        with as many times (nx ny ... spp) as there are nbcomp
511 Syntax error   Making connection with imview on %s, port %d
                   Diplay mode given (%d) is incorrect
                            connectionList   : <string> = (   interpreter: first argument = (%s)
                             interpreter: next argument = (%s)
                            attempt to create string with null pointer user::user() O v ]   O v ]   4  k       S  _     	= 
    (          ?6  	 	 
 
   
 
 [ 	+
 	  d)  g           	  
     Nf  	 	   	 	   	 	 %  
 	 	 	  ?  n |                                         	  	 	 	        4                            	  	 	 	  
 
 
     J"  p"p Y			




       B   }      +&  W   -      %  J   L     %  J   L     %  J   L     %  J   L     ,  ? d  +  J   Z      # 3v   1  W          ,  Q         =   &ԭ b    :    :   ˳ :ǳ  ǳ  : 	ҳ 
 
 
:    :    :   η :ʷ  ʷ Ǹ :ø շ ø   : θ   :    :     :   ܼ :ؼ  ؼ ý :       : !ʽ " " ": # $ $ $: % & & &: ' ( ( (: ) * * *: + , , ,: - . . .: / 0 0 0: 1 2 2 2: 3 4 4 4: 5 6 6 6: 7 8 8 8: 9 : : :: ; < < <: = > > >: ? @ @ @: A B B B: C D D D: E F F F: G H H H: I J J J: K L L L: M N N N: O P P P: Q R R S: S T T U: V V V W: X X Y: Z Z [: \ \ ]: ] ^ _: _ ` a: a b b: c d d: e f f: g h h: i j j: k l l: m n n: o p p: q r r: s t t: u v v: w x x: y z z: { | |: } ~ ~:     ͂       ؇    ̊       ׏    ˒       ֗    ʚ       ՟    ɢ  ؼ     ԧø ʷ   Ȫ  ǳ ߬  ߭   ׮   &ԭ b    :    :   ˳ :ǳ  ǳ  : 	ҳ 
 
 
:    :    :   η :ʷ  ʷ Ǹ :ø շ ø   : θ   :    :     :   ܼ :ؼ  ؼ ý :       : !ʽ " " ": # $ $ $: % & & &: ' ( ( (: ) * * *: + , , ,: - . . .: / 0 0 0: 1 2 2 2: 3 4 4 4: 5 6 6 6: 7 8 8 8: 9 : : :: ; < < <: = > > >: ? @ @ @: A B B B: C D D D: E F F F: G H H H: I J J J: K L L L: M N N N: O P P P: Q R R S: S T T U: V V V W: X X Y: Z Z [: \ \ ]: ] ^ _: _ ` a: a b b: c d d: e f f: g h h: i j j: k l l: m n n: o p p: q r r: s t t: u v v: w x x: y z z: { | |: } ~ ~:     ͂       ؇    ̊       ׏    ˒       ֗    ʚ       ՟    ɢ  ؼ     ԧø ʷ   Ȫ  ǳ ߬  ߭   ׮   e"           s   	 	 
  e"           s   	 	 
  IU     B  `g  0       
 
Z  !  2   %F      7.  s   
G0   s     s     kw z  :w E ^    :p E ^    B   
f   B   =       $9~     }        /Pd
p z    }          /Pd
p z    }          /Pd
p z    }          /Pd
p z    }       O [ >               \$\$$t$t$(|$CV|$ 9uC7\$t$|$ T$)ЉD$4$C        L|$D|$T\$<\$Pt$@l$Hl$X<$      E P$2D$@t$1|$t$D$$l$$؋t$@\$<|$Dl$HL ƍ\$ JB~4$\$$ UWVS<D$Tt$\|$XhD$)~)t& '    t$K<$T$j|$9|$t:t$ t& '     ڍHP~@D$9D$uD$hT$XD$)T$\d$\|$\)hD$P<[^_] t$$                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  X                                                     X                                                                                                                                                                                                                                                                                                                                                                                                                          $                              pp                                   4       P   x   d   P   x   d                                                                          $                              pp            $                                                  $                                                                                                                                                                                                              L$Bt$@tv '    @@uÐËB;Pt	9Bt@;PtQ  L$$    $    T$                 D$         D$     D$     D$         D$         D$     D$         D$     ,\$$\$0t$(t$S   JB~   \$$t$(,Ðt$$  ,\$$\$0t$(t$S   JB~   $\$$t$(,Ét$$           D$     D$         D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$     D$         D$                    D$         D$     VSt$ FlP   NlFtd      Fxx      PFl   
   A   PFt   D2t   PFl   
A    4$Fx   F|$t$ [^Fx   ÍF|$$            D$AD$              D$      D$      VSt$ FlP   NlFtd      Fxx      PFl   
   A   PFt   D2t   PFl   
A    4$Fx   F|$[^Fx   ÍF|$$    D$AD$              D$      D$      WVST$$L$ rylB [AlB$B(AtBXAlF;FGBXAtBDtFXAlB;G    $[^_É$ x   \$\$ t$         ClP   Ctd   D$$Cx$         $\$ t$\$ƍCx$         $4$       D$AD$              D$      D$      x      \$\$ t$   ClP      Ctd   D$$Cx$         $\$t$ÐƍCx$         $4$            D$AD$              D$      D$      t$t$ \$NP   A      ~i tF\ufF`uO~Tt9   F0F F    F    F,    $\$t$Ív FP$뺍v $맍    $됍    F$V`$)ЉD$T$`v    ÍF0F F    F    F,    $$            UWVS|$0l$4t$8W;Wt6tBBGB)l$)D$$] [^_]Ë   D$)ʉtD$\$1D$utL$D$)ˉ\$$T$t_rl$4$)\$3G)u_T$L$Gm$D$׋D$$D$r         UWVSLD$dl$hD$ Xƅt6z    '    l$CD$<$u[ދ[uT$t$09ƉD$ uT$`D$`L[^_] l$FD$D$$tT$ƋD$0[         UWVSLD$dl$hD$ Xƅt6z    '    l$CD$<$u[ދ[uT$t$09ƉD$ uT$`D$`L[^_] l$FD$D$$tT$ƋD$0[         ,\$$\$0t$(t$SP   JB~C   C0C C    C    C,    $$\$$t$(,Ðt& t$$  ,\$$\$0t$(t$SP   JB~6   C0C C    C    C,    $\$$t$(,Ét$$               \$\$ C   CX    $   P   CX   \$\$ D$AD$              L$ \$T$$APQ,XA   Yu1ۋ\$$1҉T$P8\$             \$\$t$|$l$K,SP΃zD$St9Sl$,Cku!tttK,|$ t0S$C,S K(uttC,&    D$ C$\$1t$|$l$   \$\$ C   CX    $   P   C\CX   $\$ \$         D$AD$              <\$0\$Dt$4t$@|$8C,tcCPK xC(|$9v)ȍT$9D$D$CЋD$D$ D$D$L$C 4$D$\$0t$4|$8< 4$CPD$ډ$       D$,D$ D$D$(D$D$$$T$   UWVS|$0l$4t$8W;Wt6tBBGB)l$)D$$] [^_]Ë   D$)ʉtD$1D$D$utL$D$)ˉ\$$T$t_rl$4$)\$3G)u_T$L$Gm$D$׋D$$D$r         t$t$ \$NP   A      ~i tF\ufF`uO~Tt9   F0F F    F    F,    $\$t$Ív FP$뺍v $맍    $됍    F$V`$)ЉD$T$`v    ÍF0F F    F    F,    $$            t$t$ \$NP   A      ~i tF\ufF`uQ~Tt>   F0F F    F    F,    $t$ \$t$FP$뵉$륍t& $됍    F$V`$)ЉD$T$`v    ÍF0F F    F    F,    $$            D$     @4   @       JP   T   J   @    @   $              D$AD$              D$      \$\$    C4   C       PC   D   P   CC    C   $\$ \$  D$AD$              D$      UWVS,\$Dl$@tG&    C,$D$C{HP~$   D$uƃ,[^_]É$D$D$            UWVS,\$Dl$@tG&    C,$D$C{HP~$   D$uƃ,[^_]É$D$D$            UWVS,\$Dl$@tG&    C,$D$C{HP~$   T$uƃ,[^_]É$D$D$            UWVS,\$Dl$@tG&    C,$D$C{HP~$   L$uƃ,[^_]É$D$D$            UWVSD$$l$(0^t(xt& l$CD$<$uދ[uD$ 0[^_] [           UWVSLt$dL$h|$`l$l;P   9   T$ D$ ^$l$D$ $D$u)l$D$0$t$D$0L[^_] L$hl$$D$tD$ Pul$1ۉD$\$t$<$뭉l$T$hD$D$ۉBl$D$F$Y@룋NGl$BD$F$)             UWVSD$$l$(0^t(xt& l$CD$<$uދ[uD$ 0[^_] [           UWVSLt$dL$h|$`l$l;P   9   T$ D$ ^$l$D$ $D$u)l$D$0$t$D$0L[^_] L$hl$$D$tD$ Pul$1ۉD$\$t$<$뭉l$T$hD$D$ۉBl$D$F$Y@룋NGl$BD$F$)             UWVSD$$l$(0^t(xt& l$CD$<$uދ[uD$ 0[^_] [           UWVSLt$dL$h|$`l$l;P   9   T$ D$ ^$l$D$ $D$u)l$D$0$t$D$0L[^_] L$hl$$D$tD$ Pul$1ۉD$\$t$<$뭉l$T$hD$D$ۉBl$D$F$Y@룋NGl$BD$F$)             UWVSD$$l$(0^t(xt& l$CD$<$uދ[uD$ 0[^_] [           UWVSLt$dL$h|$`l$l;P   9   T$ D$ ^$l$D$ $D$u)l$D$0$t$D$0L[^_] L$hl$$D$tD$ Pul$1ۉD$\$t$<$뭉l$T$hD$D$ۉBl$D$F$Y@룋NGl$BD$F$)             UWVSLD$dl$hD$ Xƅt6z    '    l$CD$<$u[ދ[uT$t$09ƉD$ uT$`D$`L[^_] l$FD$D$$tT$ƋD$0[         UWVS,\$Dl$@|$Hۉtt|$4$Ku,[^_]É$    '    9t*|$JB~|$$$              UWVSLD$dl$hD$ Xƅt6z    '    l$CD$<$u[ދ[uT$t$09ƉD$ uT$`D$`L[^_] l$FD$D$$tT$ƋD$0[         UWVS|$$t$,l$ \$0;7tD$(t_\$<$FË9t>;pt4sC    C    $D$G] [^_] Xǉ^X뽉\$FD$G$u\$<$FË;pu          UWVSl$   $   8D$,_t0T$,rt& l$C߉D$4$   [u܉|$PT$PtZL$,@D$@9uAl$D$0|$\$$L$$   D$0B$   l[^_] $l$D$PD$D$,$u$   D$PA 벉l$L$,yt& [H        UWVS|$$t$,l$ \$0;7tD$(t_\$<$FË9t>;pt4sC    C    $D$G] [^_] Xǉ^X뽉\$FD$G$u\$<$FË;pu          UWVSl$   $   8D$,_t0T$,rt& l$C߉D$4$   [u܉|$PT$PtZL$,@D$@9uAl$D$0|$\$$L$$   D$0B$   l[^_] $l$D$PD$D$,$u$   D$PA 벉l$L$,yt& [H        UWVS|$$t$,l$ \$0;7tD$(t_\$<$FË9t>;pt4sC    C    $D$G] [^_] Xǉ^X뽉\$FD$G$u\$<$FË;pu          UWVSl$   $   8D$,_t0T$,rt& l$C߉D$4$   [u܉|$PT$PtZL$,@D$@9uAl$D$0|$\$$L$$   D$0B$   l[^_] $l$D$PD$D$,$u$   D$PA 벉l$L$,yt& [H        UWVS|$$t$,l$ \$0;7tD$(t_\$<$FË9t>;pt4sC    C    $D$G] [^_] Xǉ^X뽉\$FD$G$u\$<$FË;pu          UWVSl$   $   8D$,_t0T$,rt& l$C߉D$4$   [u܉|$PT$PtZL$,@D$@9uAl$D$0|$\$$L$$   D$0B$   l[^_] $l$D$PD$D$,$u$   D$PA 벉l$L$,yt& [H        \$t$|$|$$$   Éƃt|$$GC\$t$|$Ít& $4$   D$$ \$t$|$|$$$   Éƃt|$$GC\$t$|$Ít& $4$   D$$ \$t$|$|$$$   Éƃt|$$GC\$t$|$Ít& $4$   T$$ \$t$|$|$$$   Éƃt|$$GC\$t$|$Ít& $4$   L$$                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              l                                                    x                                       St19basic_ostringstreamIcSt11char_traitsIcESaIcEE               St15basic_stringbufIcSt11char_traitsIcESaIcEE                   22TCPGenericClientStreamIcSt11char_traitsIcEE                   16TCPGenericStreamIcSt11char_traitsIcEE                         15TCPStreamBufferIcSt11char_traitsIcEE 14imagewindowfit 14connectionlist 11syncdisplay 13lutwraparound 15useoffscreenbuf 8imunlink 6imlink 8tokenize 14list_variables 12get_variable 12set_variable 11show_window 11hide_window 12raise_window 14iconize_window 15clear_pointfile 14save_pointfile 14load_pointfile 13set_pointfile 11set_appname 15print_pointfile 6killme 4quit 11close_image 5reset 3pan 4zoom 4load 4size 4move 4cmap 3put 4user 4deny 16interpreter_help 8complain 6action Sd            LL$T\$@T$Xt$D\$Pɉ|$Htu؋t$D\$@|$HLÉT$D$ t$0D${PL$4$t$<$T$0t$JB~11҉L$T$$P8딉t$$܋T$0Ít$JB~&    $t$$      UWVS\\$p|$t$   C    C    W,D$? Ѓtt|$|tD$?&    t1t1ҋO   uu|$?    t& 11ɋwl$81L$41Ʉl$L$0u|$? tOoL$8l$u|$? tO$o(L$4l$011Ƀ|$|l$,   |$|   u|$? tJD$xxB)t$9D$|8L$@l$x11G1D$Dl$HD$DCD$HC        u|$? tT$,T$xx)t$09T$0}\[^_] G$<$1))1T$|$DD$,t$HD$@D$DCD$HC뻋L$l$0))l$,1    L$8l$4      UWVS<t$P|$TL$dF    F    o   D$ W,1D$\$XЃttD$    '    t1t1D$ 1Ʉu|$ t GۉD$Gx+D$9
D$t& u|$ t%GW T$x)9    '    |$ uYtEG$<$T$)Љ)T$        \$ 11l$$|$(D$$FD$(F<[^_] t& G؄ɉGt  T$Bt	;Bs ø      L$\$\$D$St9Ss:Ju+|$ uBCȍt& \$ÍBC1E|$ uBCJ      \t$Pt$`\$L|$T|$dl$XNF9F$F,t6   ;NFVCЋD$   D$;    v    \$Lt$P|$Tl$X\Ét$\$0nP$\$,$T$0\$ JB~V,$D$D$D$^ FF$)؉D$NF4$)ȉD$R8V$   T$4$Y\$$뜉4$D$3v 1E#T$0Ít$ JB~$t$$  T$t$L$$t$Bt$Ћt$Í    JB,ZZuttB,J$J Z(uttB,t& J\J`rXBi  \$\$ K`C$)ȉD$C`D$CP$C`SXC$ыS,C K(uttS,&    '    \$1      S\$ C   SdtChS\SdCX)ЉD$CdK\ȉD$CP$tISdK,ЋS\SSCuttK,&    Cd    Ct;Cs [Ð$P$CX$C\CiR               \$\$ t$t$$C$tjK`)ȉD$C`D$CP$C`SXC$ыS,C K(uttS,t$D$\$1t$ËCX$C`Ci        x                                                                                                                                 4       P   x   d                                                                                                                                                                                                                                                                                      4                                                                                                             S\$uA9HtIAt(@tt& '    @u&    [ËQ;Jut& RB9tA           UWVSl$$t$ }     9tSFÅuH'    HQ9   t>: u9           t& 9tFÅt   [^_]Ív ;st&   C     l$F@$} 뵉$މl$[ǉQt	: w;st#   C     l$F@$뮉$މl$[     D$         D$     <\$,\$Dl$8l$@t$0|$49tatKD$H)4$D$t$Xǉl$$    7؋\$,t$0|$4l$8<$@  맍t&                      16TCPSocketWrapper 8variable    SL$\$QBAtHAB;tA;HtPJQ[ÉPt&             SL$\$QBAtHAB;tA;HtPJQ[ÉPt& `s        zPL |                 6       C D    <   @          C D    X             C DH     x            C DH                 C H       p  1       C        :       C D         .       C(               AAAACp(   ,          AAAACp,   X  	  W  4   AAFAF        @  2       C       L       C       H       C        #       C     P  6       C D (              ACAAC     0           AAC   (   T           AAAAC0              C FH               FGNP,     !    
  AAAAF        `/  W       C IJ       /  #      FGN $   4  0  D  r  FGNIN      \  @6         C DH     |  7  q       C I       7  J    CPIJH        8         C      9         C       9      FGU         0@  _    FNNP,   4  G  	  `  ACAAF      d  PQ  a       C HH       Q         C HH       @R  e       C HH       R  &       C,     R      AFAAF   ,      V    ?  AAAAF      <  X         C ,   T  PY    h  AAAAF        [         C ,     \      ACAAF        _         C ,     `      AAAAF        b      C@O   ,   4  c      AAAFF      d  f     $  CPHQ  ,     g  K  6  AAAAF   ,      k    k  AAAAF   $      n      AAAC@ (     o        AEAAC@    8  q         ACC@      \  0r         ACC@        r         ACC0        `s  Wr    ABI        Wr  F  ABI,      X C    AAAAC   ,     p^ C  K  AAAAC       L  d     FRNQ  ,   p  f     AAAAF         o ]       C@L      o    7  C`LV  $     p =  P  AAACp     	         b  CPDHL (   (	             AAAACP   T	  q        C0L    p	      2       C    	         p  AAC       	           AAC   $   	           AAAC     	           C IH     
           C NH     8
          C DH  (   X
            AAAAC0(   
             AAAAC`(   
             AAAAC`   
      O       C D    
      C       C H          W       C D     0           C@DHH      T      .       C (   l            AAAAC0             C DH               C DH           b       C          n       C D (         t       AAAAC@(   8      t       AAAAC@(   d      t       AAAAC@(         t       AAAAC@(         U       AAAAC (         3      AAAAC`(         U       AAAAC (   @      3      AAAAC`(   l      U       AAAAC (         3      AAAAC`(         U       AAAAC (         3      AAAAC`(                AAAAC`(   H           AAAAC@(   t             AAAAC`(                AAAAC ,               AAAAC   (                AAAAC ,   (            AAAAC   (   X             AAAAC ,               AAAAC   (                AAAAC ,               AAAAC               (  C L    0         H  C L    P         h  C L    p           C L       s 1       C              CPPJ          ~    C`DLH          j       C D                 AC       (             C DH      H             C@DHL    l  `s        C GCC: (GNU) 3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1)  .symtab .strtab .shstrtab .rel.text .rel.data .bss .rodata.str1.1 .rodata.str1.32 .rodata .rel.gcc_except_table .rel.gnu.linkonce.t._ZNSt6vectorIP12image_headerSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EE .rel.gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_ .rel.gnu.linkonce.t._ZNSt6vectorISsSaISsEE5eraseEN9__gnu_cxx17__normal_iteratorIPSsS1_EES5_ .rel.gnu.linkonce.r._ZTV14connectionlist .rel.gnu.linkonce.r._ZTV14imagewindowfit .rel.gnu.linkonce.r._ZTV11syncdisplay .rel.gnu.linkonce.r._ZTV13lutwraparound .rel.gnu.linkonce.r._ZTV15useoffscreenbuf .rel.gnu.linkonce.r._ZTV8tokenize .rel.gnu.linkonce.r._ZTV14list_variables .rel.gnu.linkonce.r._ZTV12get_variable .rel.gnu.linkonce.r._ZTV12set_variable .rel.gnu.linkonce.r._ZTV8imunlink .rel.gnu.linkonce.r._ZTV6imlink .rel.gnu.linkonce.r._ZTV11show_window .rel.gnu.linkonce.r._ZTV11hide_window .rel.gnu.linkonce.r._ZTV14iconize_window .rel.gnu.linkonce.r._ZTV12raise_window .rel.gnu.linkonce.r._ZTV11close_image .rel.gnu.linkonce.r._ZTV5reset .rel.gnu.linkonce.r._ZTV3pan .rel.gnu.linkonce.r._ZTV4zoom .rel.gnu.linkonce.r._ZTV11set_appname .rel.gnu.linkonce.r._ZTV15print_pointfile .rel.gnu.linkonce.r._ZTV3put .rel.gnu.linkonce.r._ZTV4deny .rel.gnu.linkonce.r._ZTV15clear_pointfile .rel.gnu.linkonce.r._ZTV14save_pointfile .rel.gnu.linkonce.r._ZTV14load_pointfile .rel.gnu.linkonce.r._ZTV13set_pointfile .rel.gnu.linkonce.r._ZTV4user .rel.gnu.linkonce.r._ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTCSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE0_So .rel.gnu.linkonce.r._ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTV16interpreter_help .rel.gnu.linkonce.r._ZTV6killme .rel.gnu.linkonce.r._ZTV4quit .rel.gnu.linkonce.r._ZTV4load .rel.gnu.linkonce.r._ZTV4size .rel.gnu.linkonce.r._ZTV4move .rel.gnu.linkonce.r._ZTV4cmap .rel.gnu.linkonce.r._ZTV8complain .rel.gnu.linkonce.r._ZTV22TCPGenericClientStreamIcSt11char_traitsIcEE .rel.gnu.linkonce.r._ZTT22TCPGenericClientStreamIcSt11char_traitsIcEE .rel.gnu.linkonce.r._ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE0_16TCPGenericStreamIcS1_E .rel.gnu.linkonce.r._ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE108_Sd .rel.gnu.linkonce.r._ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE108_Si .rel.gnu.linkonce.r._ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE116_So .rel.gnu.linkonce.r._ZTV15TCPStreamBufferIcSt11char_traitsIcEE .rel.gnu.linkonce.r._ZTV6action .gnu.linkonce.t._ZNSt22_Rb_tree_base_iterator12_M_incrementEv .rel.gnu.linkonce.t._ZN6action7performERSt6vectorISsSaISsEERSs .rel.gnu.linkonce.t._ZN6actionD1Ev .rel.gnu.linkonce.t._ZN6actionD0Ev .rel.gnu.linkonce.t._ZN8complainD0Ev .rel.gnu.linkonce.t._ZN8complainD1Ev .rel.gnu.linkonce.t._ZN16interpreter_helpD1Ev .rel.gnu.linkonce.t._ZN16interpreter_helpD0Ev .rel.gnu.linkonce.t._ZN4denyD1Ev .rel.gnu.linkonce.t._ZN4denyD0Ev .rel.gnu.linkonce.t._ZN4userD1Ev .rel.gnu.linkonce.t._ZN4userD0Ev .rel.gnu.linkonce.t._ZN3putD0Ev .rel.gnu.linkonce.t._ZN3putD1Ev .rel.gnu.linkonce.t._ZN4cmapD1Ev .rel.gnu.linkonce.t._ZN4cmapD0Ev .rel.gnu.linkonce.t._ZN4moveD1Ev .rel.gnu.linkonce.t._ZN4moveD0Ev .rel.gnu.linkonce.t._ZN4sizeD1Ev .rel.gnu.linkonce.t._ZN4sizeD0Ev .rel.gnu.linkonce.t._ZN4loadD1Ev .rel.gnu.linkonce.t._ZN4loadD0Ev .rel.gnu.linkonce.t._ZN4zoomD1Ev .rel.gnu.linkonce.t._ZN4zoomD0Ev .rel.gnu.linkonce.t._ZN3panD1Ev .rel.gnu.linkonce.t._ZN3panD0Ev .rel.gnu.linkonce.t._ZN5resetD1Ev .rel.gnu.linkonce.t._ZN5resetD0Ev .rel.gnu.linkonce.t._ZN11close_imageD1Ev .rel.gnu.linkonce.t._ZN11close_imageD0Ev .rel.gnu.linkonce.t._ZN4quitD1Ev .rel.gnu.linkonce.t._ZN4quitD0Ev .rel.gnu.linkonce.t._ZN6killmeD1Ev .rel.gnu.linkonce.t._ZN6killmeD0Ev .rel.gnu.linkonce.t._ZN15print_pointfileD1Ev .rel.gnu.linkonce.t._ZN15print_pointfileD0Ev .rel.gnu.linkonce.t._ZN11set_appnameD1Ev .rel.gnu.linkonce.t._ZN11set_appnameD0Ev .rel.gnu.linkonce.t._ZN13set_pointfileD1Ev .rel.gnu.linkonce.t._ZN13set_pointfileD0Ev .rel.gnu.linkonce.t._ZN14load_pointfileD1Ev .rel.gnu.linkonce.t._ZN14load_pointfileD0Ev .rel.gnu.linkonce.t._ZN14save_pointfileD1Ev .rel.gnu.linkonce.t._ZN14save_pointfileD0Ev .rel.gnu.linkonce.t._ZN15clear_pointfileD1Ev .rel.gnu.linkonce.t._ZN15clear_pointfileD0Ev .rel.gnu.linkonce.t._ZN14iconize_windowD1Ev .rel.gnu.linkonce.t._ZN14iconize_windowD0Ev .rel.gnu.linkonce.t._ZN12raise_windowD1Ev .rel.gnu.linkonce.t._ZN12raise_windowD0Ev .rel.gnu.linkonce.t._ZN11hide_windowD1Ev .rel.gnu.linkonce.t._ZN11hide_windowD0Ev .rel.gnu.linkonce.t._ZN11show_windowD1Ev .rel.gnu.linkonce.t._ZN11show_windowD0Ev .rel.gnu.linkonce.t._ZN12set_variableD1Ev .rel.gnu.linkonce.t._ZN12set_variableD0Ev .rel.gnu.linkonce.t._ZN12get_variableD1Ev .rel.gnu.linkonce.t._ZN12get_variableD0Ev .rel.gnu.linkonce.t._ZN14list_variablesD1Ev .rel.gnu.linkonce.t._ZN14list_variablesD0Ev .rel.gnu.linkonce.t._ZN8tokenizeD1Ev .rel.gnu.linkonce.t._ZN8tokenizeD0Ev .rel.gnu.linkonce.t._ZN6imlinkD1Ev .rel.gnu.linkonce.t._ZN6imlinkD0Ev .rel.gnu.linkonce.t._ZN8imunlinkD1Ev .rel.gnu.linkonce.t._ZN8imunlinkD0Ev .rel.gnu.linkonce.t._ZN15useoffscreenbufD1Ev .rel.gnu.linkonce.t._ZN15useoffscreenbufD0Ev .rel.gnu.linkonce.t._ZN13lutwraparoundD1Ev .rel.gnu.linkonce.t._ZN13lutwraparoundD0Ev .rel.gnu.linkonce.t._ZN11syncdisplayD1Ev .rel.gnu.linkonce.t._ZN11syncdisplayD0Ev .rel.gnu.linkonce.t._ZN14connectionlistD1Ev .rel.gnu.linkonce.t._ZN14connectionlistD0Ev .gnu.linkonce.t._ZN14connectionlist3setERKSs .rel.gnu.linkonce.t._ZN14imagewindowfitD1Ev .rel.gnu.linkonce.t._ZN14imagewindowfitD0Ev .rel.gnu.linkonce.t._ZN16TCPGenericStreamIcSt11char_traitsIcEED0Ev .rel.gnu.linkonce.t._ZTv0_n12_N16TCPGenericStreamIcSt11char_traitsIcEED0Ev .rel.gnu.linkonce.t._ZThn116_N16TCPGenericStreamIcSt11char_traitsIcEED0Ev .rel.gnu.linkonce.t._ZThn108_N16TCPGenericStreamIcSt11char_traitsIcEED0Ev .rel.gnu.linkonce.t._ZN16TCPGenericStreamIcSt11char_traitsIcEED1Ev .rel.gnu.linkonce.t._ZTv0_n12_N16TCPGenericStreamIcSt11char_traitsIcEED1Ev .rel.gnu.linkonce.t._ZThn116_N16TCPGenericStreamIcSt11char_traitsIcEED1Ev .rel.gnu.linkonce.t._ZThn108_N16TCPGenericStreamIcSt11char_traitsIcEED1Ev .rel.gnu.linkonce.t._ZN16TCPGenericStreamIcSt11char_traitsIcEED2Ev .rel.gnu.linkonce.t._ZN22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev .rel.gnu.linkonce.t._ZTv0_n12_N22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev .rel.gnu.linkonce.t._ZThn116_N22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev .rel.gnu.linkonce.t._ZThn108_N22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev .rel.gnu.linkonce.t._ZN22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev .rel.gnu.linkonce.t._ZTv0_n12_N22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev .rel.gnu.linkonce.t._ZThn116_N22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev .rel.gnu.linkonce.t._ZThn108_N22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev .rel.gnu.linkonce.t._ZN15TCPStreamBufferIcSt11char_traitsIcEED2Ev .rel.gnu.linkonce.t._ZNSt6vectorIP10connectionSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev .rel.gnu.linkonce.t._ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev .rel.gnu.linkonce.t._ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev .gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode .gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj .rel.gnu.linkonce.t._ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev .rel.gnu.linkonce.t._ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev .rel.gnu.linkonce.t._ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv .rel.gnu.linkonce.t._ZNSsC1IPcEET_S1_RKSaIcE .rel.gnu.linkonce.t._ZNSt6vectorIP12image_headerSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ .rel.gnu.linkonce.t._ZN15TCPStreamBufferIcSt11char_traitsIcEED1Ev .rel.gnu.linkonce.t._ZN15TCPStreamBufferIcSt11char_traitsIcEED0Ev .rel.gnu.linkonce.t._ZNSdD1Ev .rel.gnu.linkonce.t._ZTv0_n12_NSdD1Ev .rel.gnu.linkonce.t._ZThn8_NSdD1Ev .rel.gnu.linkonce.t._ZNSdD0Ev .rel.gnu.linkonce.t._ZTv0_n12_NSdD0Ev .rel.gnu.linkonce.t._ZThn8_NSdD0Ev .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE11lower_boundERS1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueESt17_Rb_tree_iteratorIS4_RS4_PS4_ERKS4_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE11lower_boundERS1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueESt17_Rb_tree_iteratorIS4_RS4_PS4_ERKS4_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE11lower_boundERS1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueESt17_Rb_tree_iteratorIS3_RS3_PS3_ERKS3_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE11lower_boundERS1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueESt17_Rb_tree_iteratorIS3_RS3_PS3_ERKS3_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE4findERS1_ .rel.gnu.linkonce.t._ZSt26__uninitialized_fill_n_auxIPSsjSsET_S1_T0_RKT1_12__false_type .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE4findERS1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE9_M_insertEPSt18_Rb_tree_node_baseSB_RKS4_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueERKS4_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE9_M_insertEPSt18_Rb_tree_node_baseSB_RKS4_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueERKS4_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS3_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueERKS3_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS3_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueERKS3_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE14_M_create_nodeERKS4_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE14_M_create_nodeERKS4_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE14_M_create_nodeERKS3_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE14_M_create_nodeERKS3_ .rel.gnu.linkonce.r._ZTISd .rel.gnu.linkonce.r._ZTI6action .rel.gnu.linkonce.r._ZTI8complain .rel.gnu.linkonce.r._ZTI16interpreter_help .rel.gnu.linkonce.r._ZTI4deny .rel.gnu.linkonce.r._ZTI4user .rel.gnu.linkonce.r._ZTI3put .rel.gnu.linkonce.r._ZTI4cmap .rel.gnu.linkonce.r._ZTI4move .rel.gnu.linkonce.r._ZTI4size .rel.gnu.linkonce.r._ZTI4load .rel.gnu.linkonce.r._ZTI4zoom .rel.gnu.linkonce.r._ZTI3pan .rel.gnu.linkonce.r._ZTI5reset .rel.gnu.linkonce.r._ZTI11close_image .rel.gnu.linkonce.r._ZTI4quit .rel.gnu.linkonce.r._ZTI6killme .rel.gnu.linkonce.r._ZTI15print_pointfile .rel.gnu.linkonce.r._ZTI11set_appname .rel.gnu.linkonce.r._ZTI13set_pointfile .rel.gnu.linkonce.r._ZTI14load_pointfile .rel.gnu.linkonce.r._ZTI14save_pointfile .rel.gnu.linkonce.r._ZTI15clear_pointfile .rel.gnu.linkonce.r._ZTI14iconize_window .rel.gnu.linkonce.r._ZTI12raise_window .rel.gnu.linkonce.r._ZTI11hide_window .rel.gnu.linkonce.r._ZTI11show_window .rel.gnu.linkonce.r._ZTI12set_variable .rel.gnu.linkonce.r._ZTI12get_variable .rel.gnu.linkonce.r._ZTI14list_variables .rel.gnu.linkonce.r._ZTI8tokenize .rel.gnu.linkonce.r._ZTI6imlink .rel.gnu.linkonce.r._ZTI8imunlink .rel.gnu.linkonce.r._ZTI15useoffscreenbuf .rel.gnu.linkonce.r._ZTI13lutwraparound .rel.gnu.linkonce.r._ZTI11syncdisplay .rel.gnu.linkonce.r._ZTI14connectionlist .rel.gnu.linkonce.r._ZTI14imagewindowfit .rel.gnu.linkonce.r._ZTI15TCPStreamBufferIcSt11char_traitsIcEE .rel.gnu.linkonce.r._ZTI16TCPGenericStreamIcSt11char_traitsIcEE .rel.gnu.linkonce.r._ZTI22TCPGenericClientStreamIcSt11char_traitsIcEE .rel.gnu.linkonce.r._ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .gnu.linkonce.r._ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .gnu.linkonce.r._ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE .gnu.linkonce.r._ZTS22TCPGenericClientStreamIcSt11char_traitsIcEE .gnu.linkonce.r._ZTS16TCPGenericStreamIcSt11char_traitsIcEE .gnu.linkonce.r._ZTS15TCPStreamBufferIcSt11char_traitsIcEE .gnu.linkonce.r._ZTS14imagewindowfit .gnu.linkonce.r._ZTS14connectionlist .gnu.linkonce.r._ZTS11syncdisplay .gnu.linkonce.r._ZTS13lutwraparound .gnu.linkonce.r._ZTS15useoffscreenbuf .gnu.linkonce.r._ZTS8imunlink .gnu.linkonce.r._ZTS6imlink .gnu.linkonce.r._ZTS8tokenize .gnu.linkonce.r._ZTS14list_variables .gnu.linkonce.r._ZTS12get_variable .gnu.linkonce.r._ZTS12set_variable .gnu.linkonce.r._ZTS11show_window .gnu.linkonce.r._ZTS11hide_window .gnu.linkonce.r._ZTS12raise_window .gnu.linkonce.r._ZTS14iconize_window .gnu.linkonce.r._ZTS15clear_pointfile .gnu.linkonce.r._ZTS14save_pointfile .gnu.linkonce.r._ZTS14load_pointfile .gnu.linkonce.r._ZTS13set_pointfile .gnu.linkonce.r._ZTS11set_appname .gnu.linkonce.r._ZTS15print_pointfile .gnu.linkonce.r._ZTS6killme .gnu.linkonce.r._ZTS4quit .gnu.linkonce.r._ZTS11close_image .gnu.linkonce.r._ZTS5reset .gnu.linkonce.r._ZTS3pan .gnu.linkonce.r._ZTS4zoom .gnu.linkonce.r._ZTS4load .gnu.linkonce.r._ZTS4size .gnu.linkonce.r._ZTS4move .gnu.linkonce.r._ZTS4cmap .gnu.linkonce.r._ZTS3put .gnu.linkonce.r._ZTS4user .gnu.linkonce.r._ZTS4deny .gnu.linkonce.r._ZTS16interpreter_help .gnu.linkonce.r._ZTS8complain .gnu.linkonce.r._ZTS6action .gnu.linkonce.r._ZTSSd .gnu.linkonce.r._ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE .gnu.linkonce.r._ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode .gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv .gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi .gnu.linkonce.t._ZN15TCPStreamBufferIcSt11char_traitsIcEE6setbufEPci .rel.gnu.linkonce.t._ZN15TCPStreamBufferIcSt11char_traitsIcEE4syncEv .rel.gnu.linkonce.t._ZN15TCPStreamBufferIcSt11char_traitsIcEE9underflowEv .rel.gnu.linkonce.t._ZN15TCPStreamBufferIcSt11char_traitsIcEE8overflowEi .rel.gnu.linkonce.r._ZTV16TCPGenericStreamIcSt11char_traitsIcEE .rel.gnu.linkonce.r._ZTT16TCPGenericStreamIcSt11char_traitsIcEE .rel.gnu.linkonce.r._ZTC16TCPGenericStreamIcSt11char_traitsIcEE108_Sd .rel.gnu.linkonce.r._ZTC16TCPGenericStreamIcSt11char_traitsIcEE108_Si .rel.gnu.linkonce.r._ZTC16TCPGenericStreamIcSt11char_traitsIcEE116_So .rel.gnu.linkonce.r._ZTV8variable .rel.gnu.linkonce.r._ZTVSd .rel.gnu.linkonce.r._ZTTSd .rel.gnu.linkonce.r._ZTCSd0_Si .rel.gnu.linkonce.r._ZTCSd8_So .gnu.linkonce.t._ZNSt22_Rb_tree_base_iterator12_M_decrementEv .rel.gnu.linkonce.t._ZSt18_Rb_tree_rebalancePSt18_Rb_tree_node_baseRS0_ .rel.gnu.linkonce.t._ZN8variableD1Ev .rel.gnu.linkonce.t._ZN8variableD0Ev .rel.gnu.linkonce.t._ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag .rel.gnu.linkonce.r._ZTI8variable .rel.gnu.linkonce.r._ZTI16TCPSocketWrapper .gnu.linkonce.r._ZTS16TCPSocketWrapper .gnu.linkonce.r._ZTS8variable .gnu.linkonce.t._ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_ .gnu.linkonce.t._ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_ .rel.ctors .rel.eh_frame .note.GNU-stack .comment                                                        @   |s                   	            (d  M           )             s                    %   	               M           /             @t <                  4      2       @t a                C      2       { k                 S             +                   _             8                  [   	           Ԃ    M  	         u              X                  q   	           ܂    M                        p                      	            @   M           (            0                   $  	           $    M                                             	           4 0   M                                             	           d 0   M                       @                     	            0   M                       `                     	           ă 0   M           $                                  	            0   M           N                               J  	           $     M           p                               l  	           D     M                       Ч                     	           d     M                                            	                M  !                                           	                M  #         	                                 	           Ą     M  %         )            0                   %  	                M  '         O            H                   K  	                M  )         u            `                   q  	           $     M  +                     x                     	           D     M  -                                          	           d     M  /                                          	                M  1         
                                 	                M  3         '            ب                   #  	           ą     M  5         E                               A  	                M  7         k                               g  	                M  9                                           	           $     M  ;                     8                     	           D     M  =                     P                     	           d     M  ?                     h                     	                M  A         #                                 	                M  C         L                               H  	           Ć     M  E         t                               p  	                M  G                      (                     	            0   M  I                                          	           4     M  K         &              (                   "  	           T 0   M  M         t            ` D                   p  	               M  O                                          	                M  Q                                          	           $     M  S                     ت                     	           D     M  U         #                                 	           d     M  W         A                               =  	                M  Y         _                                [  	                M  [         }            8                   y  	           Ĉ     M  ]                     P                     	                M  _                                           	               M  a                       <                     	           ĉ x   M  c         I            @                    E  	           <    M  e                      <                     	            H   M  g                       (                     	           D 0   M  i         A	            @ (                   =	  	           t 0   M  k         	             @                   	  	            x   M  m         	                               	  	                M  o         	             P                  *
            0 2                  &
  	           < (   M  r         i
            p                   e
  	           d    M  t         
                               
  	           l    M  v         
                               
  	           |    M  x         
                               
  	               M  z         
                               
  	               M  |         '                               #  	               M  ~         U            Ю                   Q  	               M           v                               r  	               M                        N                    	           Č    M                       @ U                    	           ܌     M                                            	               M                                            	               M                                            	               M           :            Я                   6  	               M           [                               W  	           ,    M           |                               x  	           4    M                                             	           D    M                                            	           L    M                                             	           \    M                        0                     	           d    M           !            @                     	           t    M           B            P                   >  	           |    M           c            `                   _  	               M                       p                     	               M                                            	               M                                            	               M                                            	               M                                            	           č    M           9                               5  	           ԍ    M           Z            а                   V  	           ܍    M           {                               w  	               M                                            	               M                                             	               M                                            	               M                                             	               M           D            0                   @  	           $    M           m            @                   i  	           4    M                       P                     	           <    M                       `                     	           L    M                       p                     	           T    M                                            	           d    M           G                               C  	           l    M           s                               o  	           |    M                                            	               M                                            	               M                       б                     	               M           %                               !  	               M           O                               K  	               M           y                                u  	           Ď    M                                            	           ̎    M                                             	           ܎    M                       0                     	               M                       @                     	               M           G            P                   C  	               M           q            `                   m  	               M                       p                     	               M                                            	           $    M                                            	           ,    M                                            	           <    M           B                               >  	           D    M           g                               c  	           T    M                       в                     	           \    M                                            	           l    M                                            	           t    M                                             	               M           $                                  	               M           Q                                M  	               M           |            0                   x  	               M                       @                     	               M                       P                     	               M                       `                     	           ̏    M           %            p                   !  	           ԏ    M          M                               ~                               z  	               M                                           	               M                                           	               M  	                    p                     	               M          d             
                  `  	               M                       
                    	               M                                           	               M          ;            `                   7  	           ,    M                       
                    	           4    M                       
                    	           <    M                                           	           D    M          ]                                Y  	           T p   M                      ж                     	           đ    M                       
                    	           ̑    M          G              
                  C  	           ԑ    M  !                                         	           ܑ h   M  #                                         	           D    M  %        1             
                  -  	           L    M  '                     
                  }  	           T    M  )                                         	           \ P   M  +                                        	            (   M  -                                          	           Ԓ    M  /                    к                     	               M  1        S             ~                  O  	            (   M  3                      q                    	                M  5                     O                    	           < 8   M  7        2            м                   .  	           t    M  9                     C                              @                   A              W                  =  	           | @   M  =                    `                     	               M  ?                                         	           ē    M  A        /              .                  +  	           ܓ    M  C        \            P                  X  	            (   M  E                    `                    	            P   M  G                     p                     	           \ X   M  I        V              b                  R   	            H   M  K        t                                p   	               M  M                      
                     	               M  O                       n                     	            P   M  Q                                           	           \    M  S        !             
                     	           d    M  U        $!             t                   !  	           l    M  W        !            @ t                  !  	               M  Y         "             t                  "  	               M  [        "            @ t                  "  	               M  ]        #             U                  #  	           ̕    M  _        #              3                 #  	           ԕ 8   M  a        $            ` U                  $  	               M  c        $             3                 $  	            8   M  e         %              U                  %  	           L    M  g        %            ` 3                 %  	           T 8   M  i        !&             U                  &  	               M  k        &              3                 &  	            8   M  m        "'            @                   '  	           ̖    M  o        '                               '  	           ܖ 0   M  q        '                               '  	               M  s        H(            @                   D(  	                M  u        (                               (  	           <     M  w        ?)                               ;)  	           \     M  y        )                              )  	           |     M  {        :*                               6*  	                M  }        *                              *  	                M          1+                               -+  	           ܗ     M          +            p                  +  	                M          (,                               $,  	            8   M          ,                                ,  	           T 8   M          -                               
-  	            8   M          -                                |-  	           Ę 8   M          -             (                   -  	                M          .                               	.  	               M          -.                               ).  	           ,    M          O.                               K.  	           D    M          z.                               v.  	           \    M          .                               .  	           t    M          .                               .  	               M          .                               .  	               M          .                               .  	               M          /                               /  	           ԙ    M          -/                               )/  	               M          K/                               G/  	               M          i/            (                   e/  	               M          /            4                   /  	           4    M          /            @                   /  	           L    M          /            L                   /  	           d    M          /            X                   /  	           |    M          	0            d                   0  	               M          30            p                   /0  	               M          Y0            |                   U0  	           Ě    M          0                               }0  	           ܚ    M          0                               0  	               M          0                               0  	               M          0                               0  	           $    M          &1                               "1  	           <    M          M1                               I1  	           T    M          s1                               o1  	           l    M          1                               1  	               M          1                               1  	               M          1                               1  	               M          2                                2  	           ̛    M          22                               .2  	               M          R2                               N2  	               M          t2            $                   p2  	               M          2            0                   2  	           ,    M          2            <                   2  	           D    M          2            H                   2  	           \    M          3            T                   3  	           t    M          >3            `                   :3  	               M          }3             (                   y3  	                M          3             (                   3  	           Ĝ     M          4                               3  	               M          I4                               E4  	               M          4              2                   4            @ .                   5             .                   Y5             (                   5              '                   5            '                   5            8                   6            I                   <6            W                   `6            g                   6            y 
                  6                               6             
                  6                               7                               &7                               I7                               k7                               7                               7                               7                                7                                8            #                   E8            4                   i8            D                   8            R                   8            d                   8            l                   8            r                   	9                               $9                               =9                               W9                               q9                               9                               9                               9                               9                               9                               :                               3:             
                  Q:                               m:                               :                               :                                ;                               ;  	            (   M          p;                              l;  	           <    M          ;             N                 ;  	           D    M          Q<                                <              j                  <             ~                 <  	           L H   M          ;=                               =             j                  =  	               M          =                               =  	               M          >                               >  	               M          \>                                X>  	           ĝ    M  !        >              ,                   >  	            X   M  #        >            @ <                   >  	           ܞ H   M  %        "?             (                   ?  	           $ 0   M  '        h?             (                   d?  	           T 0   M  )        ?                               ?  	            0   M  +        ?              <                   ?  	            H   M  -        ?            \                   ?  	            8   M  /        @             (                   @  	           4 0   M  1        %@             (                   !@  	           d 0   M  3        @@             e                  @            `                  ~@  	                M  6        @            p                   @  	               M  8        @                               @  	               M  :        A                               A  	           ̠ 8   M  <        hA                                dA  	               M  >        A            (                   A  	               M  @        A            0                   A            C 
                  A            P D                  <B             D                  B                               B  	           $    M  F        B                              B  	           , H  M  H        B             h                    B             h E                                 B                                p9  N  W        	              , H                                                                                                                                                        '                         	 K           m              Pr >                    (           r >        0          8        -  r >                                                                                                                                                                            !              #              %              '              )              +              -              /              1              3              5              7              9              ;              =              ?              A              C              E              G              I              K              M              O              Q              S              U              W              Y              [              ]              _              a              c              e              g              i              k              m              o 5  q      e  s      m   s 1                  q              r              t              v              x              z              |              ~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	                                                                                                                                                            !             #             %             '             )             +             -             /             1             3             5             7             9             ;             <             =             ?             A             C             E             G             I             K             M             O             Q             S             U             W             Y             [             ]             _             a             c             e             g             i             k             m             o             q             s             u             w             y             {             }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	             
                                                                                                                                                                                                                !             #             %             '             )             +             -             /             1             3             5             6             8             :             <             >             @             B             C             D             Eu  `s                   F             H             J             K      \           6                                 @        	             #             <             J          s                                                                                                $             5  p  1     ^    :                      .                                    ! G                                        +             G             X             m                                                             ! o                         	  W                 7             J         ! K                    (   ! I              +      D   ! O ]      C   " ;                          7         " Ao                                                                              >      q   " 5s  @  2                                   L     	             	             6	    H     j	             	     #     	             	  P  6     	         
           $
             +
             A
         X
         s
  @  m     
      X   "  
                                                        /             9             D             b             l             s                                         |          !                                %             7             =             P         " /         " 1                          !             +        " E  `/  W                    /  #                                           %             =             D  0  D    m                                                                          "  8             E  @6       m               7  q                                 7  J                 5             V  8          9                       9                                "             9             H             ]             l                                                                                                                                               -             ;             O             T             o  0@  _                                                                                  7             X             x                                                      G  	    &             @      @   ! m k      <   ! c          ! a                                         t                                  " -                          &             6             T             u         "                PQ  a       Q           o ]     F  @R  e     x  o        R  &       p =      R      !  U       ?             P  f       j  V         Pg          V        X                                              "             J  @Y       c  PY      }  [         `\         \        _         pg  @                  ,  _       F  g  K    Y  `      t  b         k                                  c                                   n      G  o      e  q                      0r         r         `s  Wr             ! _              0      U   " _      3  " a	         ! U          ! S          ! Q 6         ! 9 L         ! = V         ! ; _             l             w                      ! 7          ! E          ! C          ! A          ! ?          ! W          ! [          ! Y          ! ]          ! 5          ! 3 "         ! 1 -         ! / ?         ! - R         ! + g         ! ) y         ! '          ! !          !           !           !           ! %          ! #       U   " cJ      3  " e         !           !           !            !            !  1       U   " g       3  " i
!      U   " kd!      3  " m!             !      t   " Wb"             "      t   " Y#      t   " [p#      t   " ]#    Wr    #   X C    $      P   " q 1$  p^ C    F$  d     {$         " o$             $  f     %         " qI%             X%             x%             %         "  %             %         " sH&             P&             `&         ! u&         " &         "  &         " &         ! &         " &         " '         ! '         "  .'         "  C'         ! W'         "  n'         "  '         ! '         "  '         "  '         ! '         "  '         "  '         ! (         "  *(         "  B(         ! U(         "  k(         "  (         ! (         "  (         "  (         ! (         "  (         "  (         ! (         "  )         "  )         ! ,)         "  A)         "  V)         ! h)         "  })         "  )         ! )         "  )         "  )         ! )         "   *         "  *         ! (*         "  =*         "  R*         ! ]*         "  k*         "  y*         ! *         "  *         "  *         ! *         "  *         "  *         ! *         "  *         "  *         ! +         "  )+         "  B+         ! K+         "  W+         "  c+         ! m+         "  z+         "  +         ! +         "  +         "  +         ! +         "  +         "  ,         ! ),         "  A,         "  Y,         ! m,         "  ,         "  ,         ! ,      N   "  ,      U   "  ,         ! ,      O   " 7.-      W   " =g-         " 9-         " ?-      (   ! M #.             *.             4.             >.             P.             b.         ! .      ~   " 3.             /         " C/        " /      N  "  0             30             k0             0         " 0             1      j   " P1             1      ~  " 1         " <2         ! 2         " | 92         " ~ S2         ! _2         "  n2         "  }2         ! 2         "  2         "  2         ! 2         "  2         "  2         ! 2         "  2         "  2         ! 2         "   3         "  3         ! 3         "  $3         "  13         ! ?3         " z P3         " x a3      (   ! 3         " #3         " 3         " 24             4             4      j   " 5         " L5             5         " 5      
   " )5      
   " !16      
   " 'm6      
   " 6         " %6         " #7         ! e o7      <   ! g 7      (   ! i 7      (   ! k 8      (   ! C8         " r8         " 	8      
   " 8      
   " 9      
   " C9      
   " y9         " 9         " 9      (   ! 9      b   " K9      n   " Q:      
   " O:      
   " U :         " M2:         " SD:             K:             U:             _:             q:             :         ! :        " G:        " I
;         ! ;      2   " r A;         " t P;         " v _;             w;         ! +;         ! !;      ,   ! #;        " +<      .   " C$<         " <d<      <   ! -k<         ! /r<      e   " 5<        " w<         " uo=        " {=         " yB>        " >         " }?        " n?         " ?             ?         " L@        " 6@         " @         " >A         " A             A             A         ! A             B         ! B             @B      
   ! NB         ! 
eB         ! 	oB         ! yB         ! B         ! B         ! B         ! B         ! B         ! B         ! B         !  B         ! B         ! B         ! B         ! C         ! C         ! ,C         ! AC         ! VC         ! lC         ! C         ! C         ! C         ! C         ! C         ! C         ! C      
   ! D         ! D      
   ! D         ! 1D         ! >?D         ! SD         ! eD         ! zD         ! D      '   ! D             D      (   ! E      .   ! EE         ! @\E      .   ! E      2   ! E         !  F         ! <F             PF             F             F             F             F      <   ! %-G      (   ! '_G      (   ! )G             G         " 8G         " :G      (   ! 1G      (   ! 3G      D   " DH      D   " EIH             gH             nH             H      
   ! CH         ! BH              interpreter.cxx _ZSt8__ioinit uservar _ZZN4userC1EvE19__PRETTY_FUNCTION__ _ZGVZN14connectionlist3getEvE3res _ZZN14connectionlist3getEvE3res __tcf_0 _ZGVZ13tostr_convertiE5mystr _ZZ13tostr_convertiE5mystr __tcf_1 _ZGVZN11interpreter13listVariablesEvE6result _ZZN11interpreter13listVariablesEvE6result __tcf_2 _Z41__static_initialization_and_destruction_0ii __tcf_3 __tcf_4 _GLOBAL__I_ActionResult ActionResult _ZN8complain7performERSt6vectorISsSaISsEERSs strlen _ZNSs6assignEPKcj _ZN4cmap7performERSt6vectorISsSaISsEERSs _Z9noclut_cbP9Fl_WidgetPv _ZNSs4_Rep11_S_terminalE _Z7setClutPKc _ZN4move7performERSt6vectorISsSaISsEERSs __strtol_internal mainWindow _ZN4size7performERSt6vectorISsSaISsEERSs mainViewer _ZN11imageViewer6resizeEv _ZN4load7performERSt6vectorISsSaISsEERSs _Z9openimagePKci syncDisplay im_draw_finished _ZN4quit7performERSt6vectorISsSaISsEERSs _ZN6killme7performERSt6vectorISsSaISsEERSs main_terminate _ZN16interpreter_help7performERSt6vectorISsSaISsEERSs _Unwind_Resume _ZN4userC2Ev _ZTV4user _ZNSs20_S_empty_rep_storageE getenv _ZNSsC1EPKcRKSaIcE _ZNKSs13find_first_ofEPKcjj _Z9dbgprintfPKcz _ZNSs7replaceEjjPKcj _ZNKSs4findEPKcjj _ZNSs6assignERKSs _Z9errprintfPKcz _ZNSs4_Rep10_M_destroyERKSaIcE _ZTV6action __assert_fail _ZN4userC1Ev _ZN4user7performERSt6vectorISsSaISsEERSs _ZTVSt9basic_iosIcSt11char_traitsIcEE _ZNSt8ios_baseC2Ev _ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E _ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev _ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode _ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc _ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c _ZN4putm12ref_pathnameE _ZTVSt15basic_streambufIcSt11char_traitsIcEE _ZNSt6localeD1Ev _ZNSt8ios_baseD2Ev _ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev _ZN13set_pointfile7performERSt6vectorISsSaISsEERSs PtFileMngr _ZN9pointfile13setPtFileNameEPKc _ZN14load_pointfile7performERSt6vectorISsSaISsEERSs _ZN9pointfile8readlistEv _ZN9Fl_Widget6redrawEv _ZN14save_pointfile7performERSt6vectorISsSaISsEERSs _ZN9pointfile8savelistEb _ZN15clear_pointfile7performERSt6vectorISsSaISsEERSs _ZN9pointfile11rmAllPointsEv _ZN4deny7performERSt6vectorISsSaISsEERSs _ZN3put11find_headerEPKc _ZN3put3imhE strcmp _Z13srv_dbgprintfPKcz _ZN3put11find_headerEj _ZN3put13delete_headerEPKc _ZN3put13delete_headerEP12image_header _ZNSt6vectorIP12image_headerSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EE _ZN3put13delete_headerEj free _ZdlPv _ZdaPv _ZN3put8callbackEPvm _ZSt4cerr IOBlackBox _ZN7imageIO8typeSizeE7pixtype _ZNSolsEm malloc _ZN7imageIO13pleaseDisplayERKSs _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ _ZNSolsEPFRSoS_E _ZN3put7id_poolE _ZN3put7performERSt6vectorISsSaISsEERSs _Znwj strdup _ZNSs6appendEPKcj _Znaj imview_interpreter _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ is _ZN13imview_server17open_data_channelERSs _ZNSolsEl _ZNSt6vectorIP12image_headerSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _ZN15print_pointfile7performERSt6vectorISsSaISsEERSs _ZN9pointfile8savelistERSs _ZN11set_appname7performERSt6vectorISsSaISsEERSs appName sprintf strcpy _ZN9Fl_Window5labelEPKc sscanf _ZN4zoom7performERSt6vectorISsSaISsEERSs _Z10cmp_nocaseRKSsS0_ _ZN11imageViewer9zoomToBoxEiiiib __strtod_internal _ZN11imageViewer10zoomFactorEdbb _ZN11imageViewer20setDefaultZoomFactorEdb _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_ _ZNSsC1ERKSs _ZN3pan7performERSt6vectorISsSaISsEERSs _ZN11imageViewer3panEii _ZN5reset7performERSt6vectorISsSaISsEERSs _Z9unzoom_cbP9Fl_WidgetPv _ZN11imageViewer12resetDisplayEbb _ZN11close_image7performERSt6vectorISsSaISsEERSs _Z8close_cbP9Fl_WidgetPv _Z15closeoverlay_cbP9Fl_WidgetPv _ZN12raise_window7performERSt6vectorISsSaISsEERSs _ZN14iconize_window7performERSt6vectorISsSaISsEERSs _ZN9Fl_Window7iconizeEv _ZN11hide_window7performERSt6vectorISsSaISsEERSs toolbarPanel printPrefsPanel _ZN10printprefs4hideEv savePrefsPanel _ZN9saveprefs4hideEv imageInfoPanel _ZN9imageinfo4hideEv transferEditorPanel _ZN8transfer4hideEv spectraPanel _ZN7spectra4hideEv profilePanel _ZN7profile4hideEv userprefsPanel _ZN9userprefs4hideEv bivHistPanel _ZN7bivhist4hideEv progressPanel _ZN8progress4hideEv help _ZN14Fl_Help_Dialog4hideEv _ZN11show_window7performERSt6vectorISsSaISsEERSs _Z10toolbar_cbP9Fl_WidgetPv titleBox _Z13printprefs_cbP9Fl_WidgetPv _Z7save_cbP9Fl_WidgetPv _Z12imageinfo_cbP9Fl_WidgetPv _Z11transfer_cbP9Fl_WidgetPv _Z15showspectrum_cbP9Fl_WidgetPv _Z14showprofile_cbP9Fl_WidgetPv _Z17userprefspanel_cbP9Fl_WidgetPv _Z14showbivhist_cbP9Fl_WidgetPv _Z15showprogress_cbP9Fl_WidgetPv _Z13onlinehelp_cbP9Fl_WidgetPv _ZN6imlink7performERSt6vectorISsSaISsEERSs _ZN16TCPSocketWrapperC2Ev _ZTV15TCPStreamBufferIcSt11char_traitsIcEE _ZTT22TCPGenericClientStreamIcSt11char_traitsIcEE _ZTV22TCPGenericClientStreamIcSt11char_traitsIcEE _ZN16TCPSocketWrapper7connectEPKci _ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc _ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_ _ZNKSs5rfindEPKcjj imview_linkmanager _ZNSt6vectorIP10connectionSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _ZN16TCPSocketWrapperD2Ev __cxa_begin_catch __cxa_end_catch _ZN16TCPSocketWrapper5closeEv _ZN16TCPSocketWrapper5writeEPKvi _ZN16TCPGenericStreamIcSt11char_traitsIcEED2Ev _ZTI22SocketRunTimeException _ZN8imunlink7performERSt6vectorISsSaISsEERSs _ZN12set_variable7performERSt6vectorISsSaISsEERSs _ZN11interpreter11setVariableERKSsS1_ _ZN12get_variable7performERSt6vectorISsSaISsEERSs _ZN11interpreter11getVariableERKSsRSs _ZN14list_variables7performERSt6vectorISsSaISsEERSs _ZN11interpreter13listVariablesEv _ZN8tokenize7performERSt6vectorISsSaISsEERSs _ZN15useoffscreenbuf3setERKSs useOffscreenBuff _Z15fromstr_convertRKSsRb _ZN15useoffscreenbuf3getEv _Z13tostr_convertb _ZN15useoffscreenbuf4listEv _ZN13lutwraparound3setERKSs lutWraparound mainMenuBar _ZN13imViewMenuBar14setFlagsByNameEPKciP12Fl_Menu_Itemi _ZN11imageViewer19displayCurrentImageEv _ZN13lutwraparound3getEv _ZN13lutwraparound4listEv _ZN11syncdisplay3setERKSs _ZN11syncdisplay3getEv _ZN11syncdisplay4listEv _ZN14imagewindowfit3setERKSs _Z15fromstr_convertRKSsRi _ZN11imageViewer14setdisplaymodeE11displaymode _ZN14imagewindowfit3getEv _Z13tostr_converti _ZN14imagewindowfit4listEv _ZN14connectionlist3getEv _ZN11linkmanager17print_connectionsEv __dso_handle __cxa_atexit _ZN14connectionlist4listEv falsestr truestr _ZN11linkmanager11getresponseEP22TCPGenericClientStreamIcSt11char_traitsIcEE _ZN11linkmanager7zoomboxEiiii _ZN11linkmanager10zoomfactorEd _ZNSolsEd _ZN11linkmanager20setDefaultZoomFactorEd _ZN11linkmanager12resetDisplayEv _ZN11interpreterC2Ev _ZTV8complain _ZNSt24__default_alloc_templateILb1ELi0EE8allocateEj _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE11lower_boundERS1_ _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueESt17_Rb_tree_iteratorIS4_RS4_PS4_ERKS4_ _ZTV4quit _ZTV6killme _ZTV16interpreter_help _ZTV15print_pointfile _ZTV4deny _ZTV3put _ZN4putmC1Ev _ZTV5ppath _ZTV4putp _ZTV11set_appname _ZTV13set_pointfile _ZTV14load_pointfile _ZTV14save_pointfile _ZTV15clear_pointfile _ZTV4load _ZTV4move _ZTV4size _ZTV4cmap _ZTV4zoom _ZTV3pan _ZTV5reset _ZTV11close_image _ZTV12raise_window _ZTV14iconize_window _ZTV11hide_window _ZTV11show_window _ZTV12set_variable _ZTV12get_variable _ZTV14list_variables _ZTV8tokenize _ZTV6imlink _ZTV8imunlink _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE11lower_boundERS1_ _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueESt17_Rb_tree_iteratorIS4_RS4_PS4_ERKS4_ _ZTV15useoffscreenbuf _ZTV13lutwraparound _ZTV11syncdisplay _ZTV14imagewindowfit _ZTV14connectionlist _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE11lower_boundERS1_ _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueESt17_Rb_tree_iteratorIS3_RS3_PS3_ERKS3_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE11lower_boundERS1_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueESt17_Rb_tree_iteratorIS3_RS3_PS3_ERKS3_ _ZNK6NocaseclERKSsS1_ _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E _ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E _ZN11interpreterC1Ev _ZN11interpreterD2Ev _ZNSt22_Rb_tree_base_iterator12_M_incrementEv _ZN11interpreterD1Ev _ZN11interpreter8evaluateERSsRSt6vectorISsSaISsEES0_ _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE4findERS1_ _ZNSs6appendERKSs _ZN11interpreter12parseCommandERSsS0_ _ZSt26__uninitialized_fill_n_auxIPSsjSsET_S1_T0_RKT1_12__false_type _ZNSsC1ERKSsjj _ZNKSs17find_first_not_ofEPKcjj _ZSt20__throw_out_of_rangePKc _ZNSt6vectorISsSaISsEE5eraseEN9__gnu_cxx17__normal_iteratorIPSsS1_EES5_ _ZNSs12_M_leak_hardEv _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE4findERS1_ memmove _ZNSs7reserveEj _ZTI14connectionlist _ZN14connectionlist3setERKSs _ZN14connectionlistD1Ev _ZN14connectionlistD0Ev _ZTI14imagewindowfit _ZN14imagewindowfitD1Ev _ZN14imagewindowfitD0Ev _ZTI11syncdisplay _ZN11syncdisplayD1Ev _ZN11syncdisplayD0Ev _ZTI13lutwraparound _ZN13lutwraparoundD1Ev _ZN13lutwraparoundD0Ev _ZTI15useoffscreenbuf _ZN15useoffscreenbufD1Ev _ZN15useoffscreenbufD0Ev _ZTI8tokenize _ZN8tokenizeD1Ev _ZN8tokenizeD0Ev _ZTI14list_variables _ZN14list_variablesD1Ev _ZN14list_variablesD0Ev _ZTI12get_variable _ZN12get_variableD1Ev _ZN12get_variableD0Ev _ZTI12set_variable _ZN12set_variableD1Ev _ZN12set_variableD0Ev _ZTI8imunlink _ZN8imunlinkD1Ev _ZN8imunlinkD0Ev _ZTI6imlink _ZN6imlinkD1Ev _ZN6imlinkD0Ev _ZTI11show_window _ZN11show_windowD1Ev _ZN11show_windowD0Ev _ZTI11hide_window _ZN11hide_windowD1Ev _ZN11hide_windowD0Ev _ZTI14iconize_window _ZN14iconize_windowD1Ev _ZN14iconize_windowD0Ev _ZTI12raise_window _ZN12raise_windowD1Ev _ZN12raise_windowD0Ev _ZTI11close_image _ZN11close_imageD1Ev _ZN11close_imageD0Ev _ZTI5reset _ZN5resetD1Ev _ZN5resetD0Ev _ZTI3pan _ZN3panD1Ev _ZN3panD0Ev _ZTI4zoom _ZN4zoomD1Ev _ZN4zoomD0Ev _ZTI11set_appname _ZN11set_appnameD1Ev _ZN11set_appnameD0Ev _ZTI15print_pointfile _ZN15print_pointfileD1Ev _ZN15print_pointfileD0Ev _ZTI3put _ZN3putD1Ev _ZN3putD0Ev _ZTI4deny _ZN4denyD1Ev _ZN4denyD0Ev _ZTI15clear_pointfile _ZN15clear_pointfileD1Ev _ZN15clear_pointfileD0Ev _ZTI14save_pointfile _ZN14save_pointfileD1Ev _ZN14save_pointfileD0Ev _ZTI14load_pointfile _ZN14load_pointfileD1Ev _ZN14load_pointfileD0Ev _ZTI13set_pointfile _ZN13set_pointfileD1Ev _ZN13set_pointfileD0Ev _ZTI4user _ZN4userD1Ev _ZN4userD0Ev _ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTCSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE0_So _ZTISo _ZNSoD1Ev _ZNSoD0Ev _ZTv0_n12_NSoD1Ev _ZTv0_n12_NSoD0Ev _ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev _ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode _ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv _ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv _ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj _ZTI16interpreter_help _ZN16interpreter_helpD1Ev _ZN16interpreter_helpD0Ev _ZTI6killme _ZN6killmeD1Ev _ZN6killmeD0Ev _ZTI4quit _ZN4quitD1Ev _ZN4quitD0Ev _ZTI4load _ZN4loadD1Ev _ZN4loadD0Ev _ZTI4size _ZN4sizeD1Ev _ZN4sizeD0Ev _ZTI4move _ZN4moveD1Ev _ZN4moveD0Ev _ZTI4cmap _ZN4cmapD1Ev _ZN4cmapD0Ev _ZTI8complain _ZN8complainD1Ev _ZN8complainD0Ev _ZTI22TCPGenericClientStreamIcSt11char_traitsIcEE _ZN22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev _ZN22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev _ZN15TCPStreamBufferIcSt11char_traitsIcEE6setbufEPci _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode _ZN15TCPStreamBufferIcSt11char_traitsIcEE4syncEv _ZN15TCPStreamBufferIcSt11char_traitsIcEE9underflowEv _ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi _ZN15TCPStreamBufferIcSt11char_traitsIcEE8overflowEi _ZThn108_N22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev _ZThn108_N22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev _ZThn116_N22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev _ZThn116_N22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev _ZTv0_n12_N22TCPGenericClientStreamIcSt11char_traitsIcEED1Ev _ZTv0_n12_N22TCPGenericClientStreamIcSt11char_traitsIcEED0Ev _ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE0_16TCPGenericStreamIcS1_E _ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE108_Sd _ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE108_Si _ZTC22TCPGenericClientStreamIcSt11char_traitsIcEE116_So _ZTI16TCPGenericStreamIcSt11char_traitsIcEE _ZN16TCPGenericStreamIcSt11char_traitsIcEED1Ev _ZN16TCPGenericStreamIcSt11char_traitsIcEED0Ev _ZThn108_N16TCPGenericStreamIcSt11char_traitsIcEED1Ev _ZThn108_N16TCPGenericStreamIcSt11char_traitsIcEED0Ev _ZThn116_N16TCPGenericStreamIcSt11char_traitsIcEED1Ev _ZThn116_N16TCPGenericStreamIcSt11char_traitsIcEED0Ev _ZTv0_n12_N16TCPGenericStreamIcSt11char_traitsIcEED1Ev _ZTv0_n12_N16TCPGenericStreamIcSt11char_traitsIcEED0Ev _ZTISd _ZNSdD1Ev _ZNSdD0Ev _ZThn8_NSdD1Ev _ZThn8_NSdD0Ev _ZTv0_n12_NSdD1Ev _ZTv0_n12_NSdD0Ev _ZTISi _ZNSiD1Ev _ZNSiD0Ev _ZTv0_n12_NSiD1Ev _ZTv0_n12_NSiD0Ev _ZTI15TCPStreamBufferIcSt11char_traitsIcEE _ZN15TCPStreamBufferIcSt11char_traitsIcEED1Ev _ZN15TCPStreamBufferIcSt11char_traitsIcEED0Ev _ZTI6action _ZN6action7performERSt6vectorISsSaISsEERSs _ZN6actionD1Ev _ZN6actionD0Ev _ZNSt8ios_base4InitC1Ev _ZTV8variable _ZTV16TCPGenericStreamIcSt11char_traitsIcEE _ZTT16TCPGenericStreamIcSt11char_traitsIcEE _ZN15TCPStreamBufferIcSt11char_traitsIcEED2Ev _ZNSsC1IPcEET_S1_RKSaIcE _ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag _ZTVSd _ZTTSd _ZNSt22_Rb_tree_base_iterator12_M_decrementEv _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueERKS4_ _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE9_M_insertEPSt18_Rb_tree_node_baseSB_RKS4_ _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE13insert_uniqueERKS4_ _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE9_M_insertEPSt18_Rb_tree_node_baseSB_RKS4_ _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueERKS3_ _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS3_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE13insert_uniqueERKS3_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS3_ __cxa_rethrow _ZNSt8_Rb_treeISsSt4pairIKSsP6actionESt10_Select1stIS4_E6NocaseSaIS4_EE14_M_create_nodeERKS4_ _ZSt18_Rb_tree_rebalancePSt18_Rb_tree_node_baseRS0_ _ZNSt8_Rb_treeISsSt4pairIKSsP8variableESt10_Select1stIS4_E6NocaseSaIS4_EE14_M_create_nodeERKS4_ _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE14_M_create_nodeERKS3_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE14_M_create_nodeERKS3_ _ZNSt8ios_base4InitD1Ev _ZTVN10__cxxabiv121__vmi_class_type_infoE _ZTSSd _ZTVN10__cxxabiv117__class_type_infoE _ZTS6action _ZTVN10__cxxabiv120__si_class_type_infoE _ZTS8complain _ZTS16interpreter_help _ZTS4deny _ZTS4user _ZTS3put _ZTS4cmap _ZTS4move _ZTS4size _ZTS4load _ZTS4zoom _ZTS3pan _ZTS5reset _ZTS11close_image _ZTS4quit _ZTS6killme _ZTS15print_pointfile _ZTS11set_appname _ZTS13set_pointfile _ZTS14load_pointfile _ZTS14save_pointfile _ZTS15clear_pointfile _ZTS14iconize_window _ZTS12raise_window _ZTS11hide_window _ZTS11show_window _ZTS12set_variable _ZTS12get_variable _ZTS14list_variables _ZTS8tokenize _ZTS6imlink _ZTS8imunlink _ZTS15useoffscreenbuf _ZTI8variable _ZTS13lutwraparound _ZTS11syncdisplay _ZTS14connectionlist _ZTS14imagewindowfit _ZTS15TCPStreamBufferIcSt11char_traitsIcEE _ZTISt15basic_streambufIcSt11char_traitsIcEE _ZTS16TCPGenericStreamIcSt11char_traitsIcEE _ZTS22TCPGenericClientStreamIcSt11char_traitsIcEE _ZTI16TCPSocketWrapper _ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE _ZNSsC1EPKcjRKSaIcE _ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl _ZNSs4_Rep11_S_max_sizeE _ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc _ZN16TCPSocketWrapper4readEPvi _ZTC16TCPGenericStreamIcSt11char_traitsIcEE108_Sd _ZTC16TCPGenericStreamIcSt11char_traitsIcEE108_Si _ZTC16TCPGenericStreamIcSt11char_traitsIcEE116_So __cxa_pure_virtual _ZN8variableD1Ev _ZN8variableD0Ev _ZTCSd0_Si _ZTCSd8_So _ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_ _ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_ _ZNSs4_Rep9_S_createEjRKSaIcE memcpy _ZSt19__throw_logic_errorPKc _ZTS8variable _ZTS16TCPSocketWrapper __gxx_personality_v0    	   W    Y %   Z r   \    W    Y    Z    ]    ^   ] -  ` 4  ] b  ` h  a   W   Y   Z   ]   ` $  ] R  ` X  c r  a   c   d   W   Y   Z   ]   f   g   h :  W B  Y V  Z v    {  Y       Z   W   Y   Z   k       Y       Z -  o ;  p C  p H    P  q p  r w    ~  Y       s   ]       t       Y       u       Y     +  v B  ] O    X  t _    d  Y m      u   w   ]       t   ]      	  t         &  x 4  y C    H  Y Q    a  Z   z   m   y       	        {   y   o   p #  p (    0  q P  r W    ^  Y g    w  s   ]       t       Y       u       Y       v "  ] /    8  t ?    D  Y R    f  u {  w   ]       t   ]       t         	  x 	  y #	    (	    -	  Y A	  Z h	  z p	  m 	  y 	    	  	  	    	  { 	  y 	  ~ 
   !
   0
   L
   S
   ]
   e
   l
   s
  p {
  p 
  p 
   
   
   
  ~ 
       	      $   )   4  p =  p R   e   l  p r  p                   w                            w :   ?   D   x              ~                1   6   A   N  ~ V   v  y   y   y   y              	      w V   a   m                 ~          	   )   M   R   ]   j  ~ r     y   y   y   y                      (   3   ?   d   o  ~                         4   9   D   Q  ~ Y   v  y   y   y   y       Y       Z          F   l   q   }     ~                      $   1  ~ 9   V  y n  y   y   ~      m            y      ~    "   '   A   ^           y          	  y    N   Y   e           y   y   y S  ] `   h     ]               c      ]             $   ,   1  c 9   Y  W a  Y u  Z                 	                                   2    7   B   O   [   i    n                         -    2   o                                    a   f  ~ r   ~                    p   p          K   S                                               #    ,   6   ;   @   q              ~      y (               r                g    y       %    +   h 6    B    G     P    e    m    v       ~        m                y             !   *!   R!   W!   p!  y !  y !   !  ~ !   !   "   "   ("   0"   7"   >"  p F"  p W"   f"   u"   z"   "  ~ "   "   "   "   "   "   "  p #  p #   .#   S#   ]#   c#   }#   #  ] #   #    #  t #   #    #  t #   #   $  ] -$  ` c$    v$   $   $    $   $    $   $   $    $   $   $  w %   ,%   8%   G%    L%  Y U%    a%   f%   k%   ~%   %   %   %   %   &  ~ &    &   5&   A&   a&   &   &   &   &  ~ &   &  y &  y &  y '   N'  ] o'  ` '  ] '  ` '  ] (  ` 4(  ] U(  ` (  ] (  ` (  ] (  ` )   1)   \)   )   )  ] )  ` *   *   *   *   !+   )+    2+   E+   V+   m+   |+  w +  y +   +  W +  Y +  Z +  W +  Y ,  Z #,  W +,  Y ;,  Z S,    X,  t ,   ,   ,  W ,  Y ,  Z ,  ~ ,   ,  m -   -   -   !-  y --   6-  ~ O-   [-   `-   l-   -   -   -   -  y .   .   ".   A.  y M.   v.   {.   .   .   .   .  y /  y d/   /   /  W /  Y /  Z /   /  ] 0   0    )0   40   90   >0   G0  a O0   s0   x0    0   0  ] 0  W 0  Y 0  Z 21  c =1    B1    G1  Y W1  Z 1    1  r 1   2  ] 22  ` ?2  ] g2  ` n2  ] 2  ` 2  ] 2  ` 2  g 2  h  3  c 3   3    43  r B3   3  ] 3   3  c 3   3    3  r 
4   I4  ] l4   4  c 4   4  W 4   4   4    4    4  Y 4   4  w /5  y D5  y \5  y m5  y ~5  y 5  m 5  y )6  y q6  c |6  ] 6  ` 6  ] 6  ` 6  g 6  h 6  c 7   7  c .7   B7  c J7   Z7  W b7  Y v7  Z 7  c 7   7    7  r 8   >8   F8  W N8  Y l8  Z 8  y 8  W 8  Y 8  m 8  y 8  a 9  a 9   S9  a 9    9  r 9   9   :    :  r ":   P:   `:   u:    :  r :   :   :   :    :  r :   *;   :;   H;    [;  r i;   ;   ;   ;    ;  r ;   <   <   "<    5<  r C<   q<   <   <    <  r <   <   <   <    	=  r =   ?=   O=   ]=    m=  r {=   =   =   =    =  r =   >   >   >  W &>  Y =>  Z S>  y a>  y r>  y >  y >  y >  y >  y >  y >  y >  y >  y ?   D?  m P?  y x@  a @    @  r @   A   (A    ;A  r IA   wA   A   A    A  Y A    A  Z A    A  r A   B   0B   <B    AB  Y OB    bB  r pB   B   B    B  r B   C   #C    6C  r DC   C   C    C  r C   C   C    
D  r D   SD   aD    qD  r D   D   D    D  r D   E   #E    3E  r AE   rE   }E  W E  Y E  Z E  y E  y E  y E  y E  y F  y F  y #F  y 8F  y IF  y ZF  y F  m F  y G  W G  Y G  Z G   H  p H  p H  w $H  ] PH  ` \H  ] oH    |H  t H   H  ] H   H  ~ H   H   H   H   H   :I   OI   ^I   yI   ~I   I   I   I   I   I   I   I   I   I   I    I    I  q J    J   )J   1J   :J   AJ  p GJ  p uJ   J   J    J  t J  W J  Y J   J    J  t J   TK   gK  y K  y K   K   K   K    K  t K   K    K    K  Y 
L   L  W  L   (L  Y 8L   HL  w L  y L  y L   L    L  Y L    L   L  W L   L  Y  M   M  w CM  y VM   M   M   M  ~ M   M   M  m M   N  r N  W N   .N   5N    :N  Y CN    ON   _N  w N   N  y N  y N  y N  	 N    O   #O  
 5O   ?O   cO   lO   O  y O  y P  y ^P  y P   P  y P  y P  y <Q  y tQ  W |Q  Y Q  Z Q  W Q  Y Q  W Q  Y Q  Z R   &R   2R  W :R  Y ^R   fR   R  W R  Y R  Z R   R   R  w R  ~ S   S   S   8S   >S   HS   PS   WS   ^S  p fS  p wS   S   S   S    S   S   S  w T   T   T   ?T   aT   fT   rT   T  ~ T   T  y T  y T  ~ T   T  m T   T    U   U  y U   QU   VU   [U   U   U   U   U  y U  y U   V   6V   ;V  ~ DV   PV   kV   qV   {V   V   V   V  p V  p V   V   V   V   V    V   V   V   W   W   $W   )W   ZW   rW   wW   W   W  ~ W   W  y W  ~ W   W  m W   X   X   X  y *X   1X   8X   MX   lX   X   X   X  y X   X   X   X    X   X   X   Y   
Y  c CY   fY   kY  ~ tY   Y   Y   Y   Y   Y   Y   Y  p Y  p Y   Y   Y   Y    Z    Z   Z   (Z   ?Z   GZ   LZ   UZ   Z   Z   Z   Z   Z  ~ Z   Z  y Z  ~  [   [  m .[   3[   =[   N[  y Z[   k[   t[   [   [   [   [   [  y [   [  g \  g "\    +\   3\   8\   @\   c\  g \   \  ~ \   \   \   \   \   \   \   \  p \  p 
]   ]    ]  g +]   3]    >]   J]   []   r]   z]   ]   ]   ]   ]   ]   ]   ]  ~ ]   ^  y &^  ~ 1^   9^  m ^^   c^   m^   ~^  y ^   ^   ^   ^   ^   ^   ^   _  y #_  & B_    G_  t L_   T_   v_    _   _   _  c _  ' _    _    _  c &`   +`  ~ 4`   @`   [`   a`   k`   s`   z`   `  p `  p `   `   `  c `  ) `    `   `   `   a   a   a   a   Na   fa   ka   wa   a  ~ a   a  y a  ~ a   a  m a   a   a   b  y b   +b   4b   @b   \b   ~b   b   b  y b    b   b  , b    b  w c    c  y #c    (c  Y 1c    <c    Ac  Z Jc  p Qc    Wc  - \c  p hc    sc    xc  . c  m c  y c  ~ c   c   c   d   d   d   #d   *d   1d  p 9d  p Jd   Yd   ^d   vd    d   d   d    d   d   d   d   d   e   7e   <e   He   Ue  ~ ]e   }e  y e    e   e  ~ e   e  m e   e   e   e  y 
f   f   f   -f   Lf   nf   sf   f  y f    f  r f    g  y 4g  m @g  y Vg  0 [g  1 g  ] g  ` g   g   g  ~ g   h   h   h    h   'h   .h  p 6h  p Gh   Vh   \h    h   h   h    h  w h   h   h   i   .i   3i   ?i   Li  ~ Ti   _i    pi  y ~i  y i   i  p i    i  p i    i  - i    i  . i  ~ i   i  m j   j   j   .j  y :j   aj   fj   }j   j   j   j   j  y j  y k   "k  ~ +k   7k   Rk   Xk   bk   jk   qk   xk  p k  p k   k   k    k   k    k   k   k    k   l   l   (l   Il   Ql   ^l   cl   l   l   l   l   l  ~ l   l  y  m   m  ~  m   (m  m Nm   Sm   ]m   nm  y zm   m   m   m   m   m   m   m  y n  p n  p >n   Qn   tn    yn  Y n    n   n    n  Y n    n   n    n  Y n    n   o  ] o    "o  t ^o  y go    lo  t o  m o  y o    p   6p   >p    Gp   qp   yp    p   p   p    p   p   p   p   p  2 8q   Hq   ]q   rq   q    q   q  5 q   q   r  2 pr    |r   r  5 r   r   r  2 s    s   $s   -s   ?s  2 qs  9 s  : s  : t  : Gt  : t    t   t  r t  ; t   2u  < qu   wu  = u    u  r u  ; u   1v  < pv   vv  = v    v  r v  ; v   0w  < ow   uw  = w    w  r w  ; w   /x  < nx   tx  = x    x  r x  ; x   .y  < my   sy  > y    y  r y  ; y   -z  < lz   rz  ? z    z  r z  ; z   ,{  < k{   q{  ? {    {  r {  ; {   +|  < j|   p|  @ |    |  r |  ; |   *}  < i}   w}  | }    }  r }  ; ~   7~  < v~   |~  A ~    ~  r ~  ;    6  < u   {  B       r   ;    5  < t     C       r ـ  ;    B  <      D       r ؁  ;    A  <      E       r ׂ  ;    @  <      F       r փ  ;    ?  < ~     G       r Մ  ; 
   >  < }     H       r ԅ  ; 	   =  < |     I       r ӆ  ;    <  < {     J       r ҇  ;    ;  < z     K       r ш  ;    :  < y     L       r Љ  ;    9  < x   ~  M       r ϊ  ;    8  < w   }  N       r ΋  ;    7  < v   |  O       r ͌  ;    6  < u   {  P       r ̍  ;    5  < t   z  Q       r ˎ  ;     4  < s   y  R       r ʏ  ;    3  < r   x  S       r ɐ  ;    2  < q   w  T       r ȑ  ;    1  < p   v  U       r ǒ  ;    0  < o   u  V       r Ɠ  ;    /  < n   t  W       r Ŕ  ;    .  < m   s  X       r ĕ  ;    -  < l   r  Y       r Ö  ;    ,  < k   q  Z       r   ;    +  < j   p  [       r   ;    *  < i   o  \       r ƙ  ]    5  ^ t   z  _       r њ  ]    @  ^      `       r ܛ  ]    K  ^      a     Ȝ  r   ]    V  ^      b     ӝ  r   ] '   a  ^      c Ş    ޞ  r   d 2   l  e     ٟ  r   d -   g  e     Ԡ  r   d (   b  e     ϡ  r   d #   ]  e     ʢ  r   d    X  e     ţ  r   d    S  e       r ߤ  d    N  e       r ڥ  f    I  g       r զ  f 
   D  g       r Ч  f    ?  g       r ˨  f     :  g       r Ʃ  f    5  g       r   f    0  g       r   f    +  g       r   f    &  g z      r   f    !  g u      r   f      g }      r   f ݯ     g k      r   f ذ     g f      r   f ӱ     g a    z  r   f β     g i  y }  y   h   y ӳ  y   h   y 0  y Q  h v  y   y   h Ӵ  y   y   h 0  y G  y h  h   y   y ŵ  h   y   y "  h G  y ^  y   h   y   y ܶ  h   y   y 9  h ^  y u  y   h   y ҷ  y   h   y /  y P  h u  y   y   h Ҹ  y   y 
  h /  y F  y g  h   y   y Ĺ  h   y    y !  h F  y ]  y ~  h   y   y ۺ  h    y   y 8  h ]  y t  y   h   y ѻ  y   h   y .  y O  h t  y   y   h Ѽ  y   y 	  h .  y E  y f  h   y   y ý  h   y   y    h E  y \  y }  h   y   y ھ  h   y   y 7  h \  y s  y   h   y п  y   h   y -  y N  h s  y   y   h   y   y   h -  y D  y e  h   y   y   h   y   y   h D  y [  y |  h   y   y   h   y   y 6  h [  y r  y   h   y   y   h   y ,  y M  h r  y   y   h   y   y   h ,  y C  y d  h   y   y   h   y   y   h C  y Z  y {  h   y   y   h   y   y 5  h Z  y q  y   h   y   y   h   y +  y L  h q  y   y   h   y   y   h +  y B  y c  h   y   y   h   y   y   h 8  z @  m [  i   j   k   j    l \  j   m 
  j   j 2  y I  y   y   y 
  y !  y q  y   y   y   y ?  y V  y   y   y   y $  y t  y   y      y   y T  y k  y   y   y    4  y K  y   y   y   y   y i  y   y   y   y 7  y N  y   y   y   y   y l  y   y   y   y :  y Q  y   y   y   y   y o  y   y   y   y =  y T  y   y   y   y "  y r  y   y   y   y @  y W  y   y   y   y %  y u  y   y   y   y C  y Z  y   y   y   y (  y x  y   y   y   y F  y ]  y   y   y   y +  y {  y   y   y   y I  y `  y   y   y   y .  y ~  y   y   y   y L  y c  y   y   y   y 1  y   y   y   y   y O  y f  y   y   y   y 4  y   y   y   y   y R  y i  y   9   : #  : e  :   :          r )  ; ^     <      =       r (  ; ]     <      =       r '  ; \     <      =       r &  ; [     <      =       r %  ; Z     <      >       r $  ; Y     <      ?     
  r #  ; X     <      ?     	  r "  ; W     <      @       r !  ; V     <      |       r .  ; c     <      A       r -  ; b     <      B       r ,  ; a     <      C        r 9  ; n     <      D       r 8  ; m     <      E       r 7  ; l     <      F       r 6  ; k     <      G       r 5  ; j     <      H       r 4  ; i     <      I       r 3  ; h     <      J       r 2  ; g     <      K       r 1  ; f     <      L       r 0  ; e     <      M       r /  ; d     <      N 	      r .  ; c     <      O       r -  ; b     <      P       r ,  ; a     <      Q      r + ; `   <    R     r * ; _   <    S     r ) ; ^   <    T     r ( ; ]   <    U     r ' ; \   <    V     r & ; [   <    W     r % ; Z   <    X     r $ ; Y   <    Y    
	 r #	 ; X	  	 < 	  	 Z 	   	
 r "
 ; W
  
 < 
  
 [ 
    r ! ; V   <    \     r & ] [   ^    _     r 1 ] f   ^    `     r < ] q   ^    a    ( r G ] |   ^    b    3 r R ]    ^     c %   > r ] d    e     9 r X d    e    4 r S d    e    / r N d    e    * r I d ~   e    % r D d y   e      r ? d t   e     r : f o   g     r 5 f j   g     r 0 f e   g     r + f `   g     r & f [   g     r ! f V   g     r  f Q   g     r  f L   g     r   f G     g       r ! f B!  |! g !   ! r " f ="  w" g "   " r # f 8#  r# g #   # r # f 3$  m$ g $   $ r $ f .%  h% g % y % y % h & y 3& y T& h y& y & y & h & y & y ' h 3' y J' y k' h ' y ' y ' h ' y ( y %( h J( y a( y ( h ( y ( y ( h ) y ) y <) h a) y x) y ) h ) y ) y ) h * y 2* y S* h x* y * y * h * y * y + h 2+ y I+ y j+ h + y + y + h + y , y $, h I, y `, y , h , y , y , h - y - y ;- h `- y w- y - h - y - y - h . y 1. y R. h w. y . y . h . y . y / h 1/ y H/ y i/ h / y / y / h / y 0 y #0 h H0 y _0 y 0 h 0 y 0 y 0 h 1 y 1 y :1 h _1 y v1 y 1 h 1 y 1 y 1 h 2 y 02 y Q2 h v2 y 2 y 2 h 2 y 2 y 3 h 03 y G3 y h3 h 3 y 3 y 3 h 3 y 4 y "4 h G4 y ^4 y 4 h 4 y 4 y 4 h 5 y 5 y 95 h ^5 y u5 y 5 h 5 y 5 y 5 h 6 y /6 y P6 h u6 y 6 y 6 h 6 y 6 y 
7 h /7 y F7 y g7 h 7 y 7 y 7 h 7 y  8 y !8 h F8 y ]8 y ~8 h 8 y 8 y 8 h  9 y 9 y 89 h ]9 y t9 y 9 h 9 y 9 y 9 h : y .: y O: h t: y : y : h : y : y 	; h .; y E; y f; h ; y ; y ; h ; y ; y  < h E< y \< y }< h < z < m < i < j = k T= j = l = j .> m j> j ~> j > y > y > y ? y j? y ? y ? y ? y 8@ y O@ y @ y @ y A y A y mA y A y A y A y A  MB y dB y B y B y C y 2C y DC  C y C y C y D y bD y yD y D y D y 0E y GE y E y E y E y F y eF y |F y F y F y 3G y JG y G y G y H y H y hH y H y H y H y 6I y MI y I y I y J y J y kJ y J y J y J y 9K y PK y K y K y L y L y nL y L y L y L y <M y SM y M y M y 
N y !N y qN y N y N y N y ?O y VO y O y O y P y $P y tP y P y P y P y BQ y YQ y Q y Q y R y 'R y wR y R y R y R y ES y \S y S y S y T y *T y zT y T y T y T y HU y _U y U y U y V y -V y }V y V y V y V y KW y bW y W y W y 1X   CX t X p X  ,Y  eY j qY  Y m Y j Y l 4Z j PZ k Z j Z i Z j Z z Z j [ y 4[ m k[ l [ i &\ m _\ j x\ l \ j \ k \ j  ] i c] j i] z u] m ] j ] j ] y ^   ^ t ^ p 0_  |_  _ j _  _ m +` j L` l ` j ` k ` j ` i )a j /a z Ka j `a y a m a l a i vb m b j b l  c j c k Oc j pc i c j c z c m c j c j  d y 
e s Be W Je Y Ze  e   e r e W e  e t e y f y "f X _f m kf y yf y f p f p f p f p f p f p f : g p  g p 9g v ]g   bg   gg Y }g s g   g   g Y g Z Fh y [h y ph y h j h y h w h w h ] i   i t Ti   Yi Y bi   ri x i   i Y i   i s i   i y j w j w 4j ] Jj   Sj t tj w j y j z j   j t j r k y k y k j k y k   k   k Y l s 5l   :l y Vl w fl w l   l y l w l w m y m { $m { 3m { Bm { \m y tm y m m m y m y n y <n j Tn y n y n y Bo | o | o  o   o Y o   p  p w Ap y fp m rp y p   p   p Y p   p   p Z p   p t q p 4q   Dq y Sq p Zq   `q p eq - kq   |q   q . q m q y q   q 6 q   q - r . r   r   r  'r  ,r - ;r . Zr   r y r   r y r   s y s   %s  *s  Ks j V   V   Y   LY   o\    `  ) s N             $     (     ,     0     4     8     <     @     D     H     L     P     T     X     \     `     d     h     l     p     t        O   } #   Y ,   p 3   p H   ~ g   u s   t    m    y ?   w    y            +    /                %    (    *                "    #    $                         !                                                                                                                                                                                                                                                                                                                                                                                                        }                              $                                          $                                     $    (    ,    0    4    8    <    @           l                j                i                e                b                _                 [                X                            	    
      $    (    ,    0    4    8    <    @    L    P    T    `    d    h    t    x    |                                          $    (    ,    0    4    8                       	    
      $    (    ,    0    4    8    <    @    L    P    T    `    d    h     t    x   ! |   "    #    $    %    #     & $   ' 0   # 4   ( 8   )    *    +    ,    *     - $   .                      $       /    0    1        	    
          $    (    ,    0    4    8    <       2    3    4    5                  %       z    z        z        z    z    z        z    z        o /   z H   y    o /   z 7    O   y    z        z    z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        z    z        7    7        7    7        7    7        7    7        7    7        8    8    8 #   8 (   9 3   9 ;   9 C   9 N   9 W   9 b   9 t   : {   ~        ~        m                    8    8    8 #   8 (   9 3   9 ;   9 C   9 N   9 W   9 b   9 t   : {   ~        ~        m             l   : {   m         !    (    /    ;    F    K   ~ _           ~        m s                    	        "    /    ;    F    K   ~ _    y    ~   ~        m                 I    m       	            
            m B   }    }    }    j    : ?   h    h ?   h    h     /    S    [    x   y     /    S    k   y             $    .    8   ~ C                    $    .    ;   ~ C    S        g   ;        m     < B   }    }    }    j    :     I    m       	            
            m     I    m       	            
            m     	   =    =    =    > )   > 3   > >   > O   ~ Z       $    $    =    =    =     > +   > 4   > >   > R   ~ Z    j       %    % +   i R   j n   y +   k R   j n   y +   l R   j n   y +   m R   j n   y /   h ;   ? R   h j   @    h    A    h %  h /   h ;   ? R   h j   B    h    C    h %  h /   h ;   ? R   h j   D    h    E    h %  h /   h ;   ? R   h j   F    h    G    h %  h ?   h    h %    ?    x   y    H        m ?   h    h +   I ]   J    h    I A   h    A    ?    h +   K ]   J    h    K A   h    C    ?    h +   L ]   J    h    L A   h    E    ?    h +   M ]   J    h    M A   h    G    ?    h    : 0    T    e   j j   H s    {   m    : 0    T    e   j j   H s    {   m    : 0    T    e   j j   H s    {   m    : 0    T    e   j j   H s    {   m     O    P    *         Q    R     S    T    2     S    U    2     S    V    2     S    W    2     S    X    2     S    Y    2     S    Z    2     S    [    2     S    \    2     S    ]    2     S    ^    2     S    _    2     S    `    2     S    a    2     S    b    2     S    c    2     S    d    2     S    e    2     S    f    2     S    g    2     S    h    2     S    i    2     S    j    2     S    k    2     S    l    2     S    m    2     S    n    2     S    o    2     S    p    2     S    q    2     S    r    2     S    s    t     S    u    t     S    v    t     S    w    t     S    x    t     S    y    z     O    {    /    #     O    |    }         S    ~    z     S         P    \   w    y    m    y        d           w    ~      y 2   l  m x  y %   
 B        1   
 r                           	    
      $    (    ,    0    4    8    <    @    L    P    T    `    d    h     t    x   ! |   "     8                                 8 $   8 (   8    #    $    %    #     & $   ' 0   # 4   ( 8   )    *    +    ,    *     - $   .                      $       t                        #    $    %    #     & $   ' 0   # 4   ( 8   )     =                    =    =    *    +    ,    *     - $   .                      $                      7    7     3    H    O   ] q     v       p    p     Q         Q               $     @     \     |                                 0    9    \    e                            4    X                                8    A    `                                        8    A    h                                @    X    a                                !    8    A    h    q                                <    `                                     )    P    Y    t    }                        	    	    ,	    X	    t	  L  	    	    	    	    	    	    	    
    
    %
    <
    E
    \
    
    
    
    
        4    =    X    p                                <    h                    D    p                     L    U    x                 ,    \                        4    =    T    ]    t    }          3       8       :   ; ,  < L  K p    imshared.o/     1121289497  520   20    100644  33864     `
ELF                      hC      4     ( f c             t$t$ \$   F F =     u$       $        D$   D$   D$$$$    A   L$F@tg     T$D$F$F@t#4$uFF    \$t$ $D$$     $D$$@   $   $   /wil/tmp   lcra   sh     1          $v '    t$t$ \$   F F =     u$       $        D$   D$   D$$$$    A   D$F@tg     \$L$F$F@t#4$uFF    \$t$ $D$$     $D$$@   $   $   lcra/tmp/wil   sh     1          &       $\$\$    $    1D$1D$1D$C$@   { t(C$@tR1D$1D$C$@t   \$ $D$$@  '     $D$$   $D$$  Z   $v '    \$\$    $    11ɉD$1D$L$C$@   { t(C$@tR11T$D$C$@t   \$ $D$$@  '     $D$$   $D$$  Z   $v '    \$\$    $    11҉D$1T$D$C$@   { t(C$@tR1D$1D$C$@t   \$ \$ $D$$@   $D$$   $D$$  Z   $v '    UW1VS  1ۋ$  $   $  $  D$h$<  T$d$   $8     P$      *$   \$H)$E    ]EX    $E      ET       1C   1C,   CEL$T$$P8\$EX$$   D$hx   F)  $    1D$XD$l   ;        @ L  tB       X؈$D$PD$$@  T$P$D$H
  @$  D$T$H\$lBCL$P    B    SAP    A1҉T$11҉T$L$$C\$lSC    D҉D$L~F)9D$L  ,$   D$$L$LL$$"   |$$0   \$V$)T$$6   T$$   $   D$$D$d\$$$   JBM     D$X-   D$l $D$l@$D$l$D$X   $  D$L$d  D$$$4        $       J$8  $   B~w111҉$     1ۉ$   $  $   $$   $      P$      *E\EX   $D$X  [^_]É$D$pD$t    )     $D$pD$&    $C1ҋ\$l1D$`   ;SD$\I  1D$L$\[P    1҉T$
   1҉L$T$$L$D$lXD$\   P    1҉T$
   1҉L$T$$T$DD$lXD$\   P    1҉T$
   1҉L$T$$T$DD$lXD$\   P    1҉T$
   1҉L$T$$T$DD$lXD$\   P    1҉T$
   1҉L$T$$T$DD$lXD$\   P    1҉T$
   1҉L$T$$T$L$\DD$l    @SD$D   T$ȉD$$   $C1ɋ$   $   9tJT$D$D    T$<LD$l$   T$\@D$@   $ЍS(D$T$C(1ɋ$   $   9tJD$<T$@LD$lXD$\    P    1҉T$
   1҉L$T$$T$L$D \$l1SD
$D

D
  D
|  D
=  D$`(D$\	L$D$`;CD$X  1ۺ   1\$011ɉT$T\$lT$XD$8;St$4L$,}^1@D0D$    $D$4\$lD$8CT00L0 T0D$4(L$0T$,T$8D$T;S|D$hL$Tx K.  D$Xz  ;|$T  ,$8   \$ @D@u   |$$$K   L$ @D@u   $L$TL$$
   T$$   $   D$$T$d\$$$   JB~T$X$T$pT$݉$D$TD$r|$$&,$^   |$ @D@ut&$L$TL$$m   t$$D$TD$؋L$T\$l$CD$lPu*   D$XZ    D$l@@    D$l@D$D$h$6  ;|$T|;|$T$`  D$l11ۉ\$(p;P}wL$01҉T$L$$1ɉL$ XD$$$T$D$1;T$0   \$lD$ KL$D$,D$44B;T$0|D$(؃D$(D$ (T$(;S|$  D$l@$$   $   D$D$l $D$\$    $$   JB
$T$pT$\$l]+   t$X$$t   D$T$dt   D$$)   D$X$      D$L$d|$$   t$X:$   D$T$d   D$$   D$X$      D$D$d\$$   L$X$   \$lC    +T$D$lD$$    $  D$T$d  D$$
   D$X=$   D$T$d   D$$   $4  $       J$8     $   B~r   11$   11$   $  $  $$   $      P$      *E\EX   $   C$D$pD$yt& EX   E\$4$t& SPƍ$   JB~$   E P   *먉|$$Չ$ы$   ƸJB   &    '       $4  $       J$8     $   B~P   11$   11$   $  $$   $   $     $   !$T$pT$랍D$pD$$M    '    9$   ƸJBT$pT$뷐SB   (fD$  \$0fD$fD$  D$$    C	  D$B       L$T$$`    D$ D$C$C@   1D$1D$C$C@tW$  fD$     D$D$D$CfD$ $@tC1([$      $D$$       $D$$`      $D$$     s11ɉ\$\$ D$   D$L$C$@      1҉D$   T$D$C$@th   D$   D$   D$C$1@t
\$Ѓ $D$$  '       Ǎt&  $D$$   ԍt&  $D$$`  봍t&   D$D$$$       D$U  WVS<D$PfD$   fD$"D$fD$$  L$$   $       T$   $  |$ |$T$   D$fD$  BfD$"$@t{T$Bs vz$  $   |$T$   D$fD$  BfD$" $@t"$     BÃ<[^_]$   \$D$D$T$j$`  붃$   D$   D$D$$   Ð&    '    $  D$  D$D$$   Ð&    '    |$  tÃ|$u$   $       D$1D$̐&    '       D$  D$$                       a %d
 Put syntax error, expected   arguments, 
 Got:  
 Failed! Received:   bytes, Expected:  OK! Received:   bytes Shared memory setup failed
 Put: incorrect pixel type
 Put: incorrect image type
 Put: no data
 No previous unique id found
 531 POSIX IPC not supported
 531 POSIX IPC Not supported
 default action!      putm::putm: Could not get sem ID, %s
                           putm::putm: Could not get sem_key, %s
                          putm::putm: Unique file could not be created. Semaphore set creation will fail
                 putm::putm: could not secure unique temporary file name. This is not good
                      putm: could not remove shared memory segment, %s
               putm: could not detach shared memory: %s
                       putm: could not get rid of semaphore: %s
                       Data transfer using Unix SysV style shared memory
              Looking for previous header with same label: %s
                Unique ID associated with this previous header: %d
             
Syntax: put "name" nbcomp nx ny nz ox oy oz IMG_TYPE PIX_TYPE spp
        with as many times (nx ny ... spp) as there are nbcomp
                              putm: transfer was successful, building the image
              putm: deleting previous image with same name                    Put: incomplete argument list
  Internal semaphore handling failed. shared memory put not available
                            RefPathname: %s, char: %c, shared memory ID: %p                 setup_shm: server now allowing access to shared memory segment
 setup_shm: semaphore operation failed
                          putm::setup: Could not get pointer to data, %s
                 putm::setup: Could not get shm ID, %s
                          putm::setup: Could not get shm_key, %s
                         putm::reset_sem: Could not control SEM_WR semaphore, %s
        putm::reset_sem: Could not control SEM_RD semaphore, %s
        putm::reset_sem: Could not control SEM_ACS semaphore, %s
       putm: server now trying to read
                                putm: Server allows client to write to buffer
                  putm: semaphore operation failed
                               putm: Timeout! this is bad...
  attempt to create string with null pointer J   J   B   B   B   ^<  x        	          
f   O [ >                                                         X                                                     X                                                                                                                                                                                       +  L$$    $    T$                 D$         D$     D$         D$     UWVSLD$dl$hD$ Xƅt6z    '    l$CD$<$u[ދ[uT$t$09ƉD$ uT$`D$`L[^_] l$FD$D$$tT$ƋD$0[         UWVSLD$dl$hD$ Xƅt6z    '    l$CD$<$u[ދ[uT$t$09ƉD$ uT$`D$`L[^_] l$FD$D$$tT$ƋD$0[         D$         D$     ,\$$\$0t$(t$SP   JB~C   C0C C    C    C,    $$\$$t$(,Ðt& t$$  ,\$$\$0t$(t$SP   JB~6   C0C C    C    C,    $\$$t$(,Ét$$               \$\$ C   CX    $   P   CX   \$\$ D$AD$              \$\$t$|$l$K,SP΃zD$St9Sl$,Cku!tttK,|$ t0S$C,S K(uttC,&    D$ C$\$1t$|$l$   \$\$ C   CX    $   P   C\CX   $\$ \$         D$AD$              UWVS|$0l$4t$8W;Wt6tBBGB)l$)D$$] [^_]Ë   D$)ʉtD$1D$D$utL$D$)ˉ\$$T$t_rl$4$)\$3G)u_T$L$Gm$D$׋D$$D$r         <\$0\$Dt$4t$@|$8C,tcCPK xC(|$9v)ȍT$9D$D$CЋD$D$ D$D$L$C 4$D$\$0t$4|$8< 4$CPD$ډ$       D$,D$ D$D$(D$D$$$T$                                                                             St19basic_ostringstreamIcSt11char_traitsIcESaIcEE               St15basic_stringbufIcSt11char_traitsIcESaIcEE 4putp 4putm 5ppath 6action                      LL$T\$@T$Xt$D\$Pɉ|$Htu؋t$D\$@|$HLÉT$D$ t$0D${PL$4$t$<$T$0t$JB~11҉L$T$$P8딉t$$܋T$0Ít$JB~&    $t$$      UWVS\\$p|$t$   C    C    W,D$? Ѓtt|$|tD$?&    t1t1ҋO   uu|$?    t& 11ɋwl$81L$41Ʉl$L$0u|$? tOoL$8l$u|$? tO$o(L$4l$011Ƀ|$|l$,   |$|   u|$? tJD$xxB)t$9D$|8L$@l$x11G1D$Dl$HD$DCD$HC        u|$? tT$,T$xx)t$09T$0}\[^_] G$<$1))1T$|$DD$,t$HD$@D$DCD$HC뻋L$l$0))l$,1    L$8l$4      UWVS<t$P|$TL$dF    F    o   D$ W,1D$\$XЃttD$    '    t1t1D$ 1Ʉu|$ t GۉD$Gx+D$9
D$t& u|$ t%GW T$x)9    '    |$ uYtEG$<$T$)Љ)T$        \$ 11l$$|$(D$$FD$(F<[^_] t& G؄ɉGt  T$Bt	;Bs ø      L$\$\$D$St9Ss:Ju+|$ uBCȍt& \$ÍBC1E|$ uBCJ      \t$Pt$`\$L|$T|$dl$XNF9F$F,t6   ;NFVCЋD$   D$;    v    \$Lt$P|$Tl$X\Ét$\$0nP$\$,$T$0\$ JB~V,$D$D$D$^ FF$)؉D$NF4$)ȉD$R8V$   T$4$Y\$$뜉4$D$3v 1E#T$0Ít$ JB~$t$$  <\$,\$Dl$8l$@t$0|$49tatKD$H)4$D$t$Xǉl$$    7؋\$,t$0|$4l$8<$  맍t&        0         zPL |                 v      C DH     @     ~     C DH     `            C D    |         -   C D             <   C D ,         _  K   AACAF         `  p      AH0                 C H (         P      AFAACP   L  P  1       C   d    1       C   |    A       C         2       C(                AAAAC`(                AAAAC`         O       C D           W       C D (   <            AAAAC0    h            C@DHH            .       C                CPPJ          ~     C`DLH                  C@DHL      0         C GCC: (GNU) 3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1)  .symtab .strtab .shstrtab .rel.text .data .bss .rodata.str1.1 .rodata.str1.32 .gcc_except_table .rel.gnu.linkonce.r._ZTV4putp .rel.gnu.linkonce.r._ZTV5ppath .rel.gnu.linkonce.r._ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTCSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE0_So .rel.gnu.linkonce.r._ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTV4putm .rel.gnu.linkonce.r._ZTV6action .rel.gnu.linkonce.t._ZN6action7performERSt6vectorISsSaISsEERSs .rel.gnu.linkonce.t._ZN6actionD1Ev .rel.gnu.linkonce.t._ZN6actionD0Ev .rel.gnu.linkonce.t._ZN5ppathD1Ev .rel.gnu.linkonce.t._ZN5ppathD0Ev .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ .rel.gnu.linkonce.t._ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ .rel.gnu.linkonce.t._ZN4putpD1Ev .rel.gnu.linkonce.t._ZN4putpD0Ev .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev .rel.gnu.linkonce.t._ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev .rel.gnu.linkonce.t._ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev .gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj .rel.gnu.linkonce.t._ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev .rel.gnu.linkonce.t._ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev .rel.gnu.linkonce.t._ZNSt6vectorIP12image_headerSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ .rel.gnu.linkonce.t._ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv .rel.gnu.linkonce.t._ZNSsC1IPcEET_S1_RKSaIcE .rel.gnu.linkonce.r._ZTI6action .rel.gnu.linkonce.r._ZTI5ppath .rel.gnu.linkonce.r._ZTI4putm .rel.gnu.linkonce.r._ZTI4putp .rel.gnu.linkonce.r._ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .gnu.linkonce.r._ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .gnu.linkonce.r._ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE .gnu.linkonce.r._ZTS4putp .gnu.linkonce.r._ZTS4putm .gnu.linkonce.r._ZTS5ppath .gnu.linkonce.r._ZTS6action .gnu.linkonce.r._ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE .gnu.linkonce.r._ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode .gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv .gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi .rel.gnu.linkonce.t._ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag .rel.ctors .rel.eh_frame .note.GNU-stack .comment                                                      @   L                    	           @s    d            %                                  +                                  0      2         ;                ?      2                          O             #                    e             p$                    a   	           ~      d                         $                       	           ~      d   
                      $  (                      	             0   d                         $                       	           8      d            6            $  (                   2  	           X  0   d                         %  D                     	                d                        h%                      	                 d                        %                      	           (      d                        %  2                    	           H  (   d            G            %                    C  	           p     d            j            %                    f  	           x     d                         &                      	                d                        &                      	                d                          &                      	                d   "         7            &                    3  	                d   $                     '                      	                d   &                     '                      	           Ȁ     d   (                     '  ~                    	           ؀  (   d   *         (             (  q                  $  	                  d   ,         q            (  O                  m  	              8   d   .                     (                      	           X     d   0                     )                    g            )  W                  c  	           `  @   d   3                     0*                      	                d   5         	            P*                     	             (   d   7                     `+                    {  	           Ё     d   9                      ,  .                    	                d   ;                     0,                      	                d   =                     8,                      	                 d   ?         7            D,                    3  	                d   A         U            P,                    Q  	           0     d   C         s            \,                    o  	           H     d   E                     h,                      	           `     d   G                     ,  2                   E            ,  .                               ,                                ,                                ,                                -                                -                    >	            -                    	             -                    	  	           x  (   d   Q         	             .                   	  	                d   S         N
            /  N                 J
  	                d   U         
            01                                P1  j                  ]            1  ~                 Y  	             H   d   Y                     @3                      	             8   d   [                     3                      	           0     d   ]                     3                      	           8    d   _                      6                     &             6  E                                97  /                               XS    e   B         	              (a                                                                                                                                                          *     -                                
                                                                                     A     A     q                                                                                               "              $              &              (              *              ,              .              0              2              3              5              7              9              ;              =              ?              A              C              E              G              I              J              K              L              M              N              O              P              Q              S              U              W              X              Y              [ y   0                    ]              _              a              b                                  v              !                                                                                                   	                      /             8             I         !  U    ~    b          o             v             }                                                                _                                       !  C                   (   !                     D   !                =             C             P             i             p                                                                          " 9 &             8             =             D             V                                                                                                                 " " N         " $                                                     	                  P    %             >             Q             q  `  p                         " 7              *      q   " , _             f             l             r             y                                                      P  1         1              !           ! C          " &          " (          ! 
 &         ! ? 1         "  ?         "   M         ! G       O   " .       W   " 3          " 0 6	         " 5 w	      (   !  	             	             	             	             	             	         ! E "
      ~   " * W
             
         " Q 
        " S -      N  " U                                        0         " W m                   j   " X                    ~  " Y R         " 2          ! A          ! =       2   "           "           "                                         '             1             l             }                                                    
      .   " ; #             0         " [ p                                   ! N                       ! M          ! L                       ! K       .   ! J =             j      2   ! I          ! O          ! P              ,             k                                                                               imshared.cxx _ZSt8__ioinit sysv_alrm_env _Z17sysv_alarmHandleri _Z41__static_initialization_and_destruction_0ii __tcf_0 _GLOBAL__I__ZN4putm12ref_pathnameE _ZN4putm12ref_pathnameE _Unwind_Resume _ZN4putmC2Ev _ZTV4putm tmpnam fopen getpid fprintf fclose ftok semget _ZN4putm9sem_resetEv __errno_location strerror _Z9dbgprintfPKcz _ZTV6action _ZN4putmC1Ev _ZN4putmD2Ev unlink semctl shmdt shmctl _ZN4putmD1Ev _ZN4putmD0Ev _ZdlPv _ZN4putm7performERSt6vectorISsSaISsEERSs _ZNSt8ios_baseC2Ev _ZTVSt9basic_iosIcSt11char_traitsIcEE _ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E _ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev _ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNSs20_S_empty_rep_storageE _Znwj _ZN3put3imhE _ZNSs4_Rep11_S_terminalE strdup _ZN3put11find_headerEPKc _ZN3put7id_poolE __strtol_internal _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc _ZNSolsEm _ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv _ZNSs6assignERKSs free strlen _ZNSs6appendEPKcj _ZTVSt15basic_streambufIcSt11char_traitsIcEE _ZNSt6localeD1Ev _ZNSt8ios_baseD2Ev _ZNSs4_Rep10_M_destroyERKSaIcE syncDisplay im_draw_finished _Znaj imview_interpreter _ZNSt8_Rb_treeISsSt4pairIKSs7imgtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ _ZNSt8_Rb_treeISsSt4pairIKSs7pixtypeESt10_Select1stIS3_E6NocaseSaIS3_EE4findERS1_ IOBlackBox _ZN7imageIO8typeSizeE7pixtype _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c _ZNSolsEl malloc _ZN4putm8get_dataEPc _ZN3put13delete_headerEj _ZNSsC1EPKcRKSaIcE _ZN7imageIO13pleaseDisplayERKSs _ZN4putm9setup_shmEv _ZNSs6assignEPKcj _ZNSt6vectorIP12image_headerSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev shmget shmat semop signal longjmp __sigsetjmp alarm memcpy _ZN5ppath7performERSt6vectorISsSaISsEERSs _ZN4putp7performERSt6vectorISsSaISsEERSs _ZTV4putp _ZTI4putp _ZN4putpD1Ev _ZN4putpD0Ev _ZTV5ppath _ZTI5ppath _ZN5ppathD1Ev _ZN5ppathD0Ev _ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTCSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE0_So _ZTISo _ZNSoD1Ev _ZNSoD0Ev _ZTv0_n12_NSoD1Ev _ZTv0_n12_NSoD0Ev _ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev _ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode _ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv _ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv _ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj _ZTI4putm _ZTI6action _ZN6action7performERSt6vectorISsSaISsEERSs _ZN6actionD1Ev _ZN6actionD0Ev _ZNSt8ios_base4InitC1Ev __dso_handle __cxa_atexit _ZSt4cerr _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ _ZNSolsEPFRSoS_E _ZNK6NocaseclERKSsS1_ memmove _ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj _ZNSt24__default_alloc_templateILb1ELi0EE8allocateEj _ZNSsC1IPcEET_S1_RKSaIcE _ZNSsC1ERKSs _ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag _ZNSt8ios_base4InitD1Ev _ZTVN10__cxxabiv117__class_type_infoE _ZTS6action _ZTVN10__cxxabiv120__si_class_type_infoE _ZTS5ppath _ZTS4putm _ZTI3put _ZTS4putp _ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZTISt15basic_streambufIcSt11char_traitsIcEE _ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE _ZNSsC1EPKcjRKSaIcE _ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl _ZNSs4_Rep11_S_max_sizeE _ZNSs7reserveEj _ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc _ZNSs4_Rep9_S_createEjRKSaIcE _ZSt19__throw_logic_errorPKc __gxx_personality_v0    E     B  )   B  .   F  =   B  B     K   G  Z   H  c     o   I  w   J  ~   B     K     L     M     N     O          P     N    O          !  P  *    /  P  >  B  H  B  R  B  Z  B  _  B  j  Q  r  C    E    B    B    F    B        G    H        I    J    B    K  /  L  =  M  ]  N  g  O  r    w  P  ~  N    O            P        P    B    B    B    B    B    Q    C    E    B    T  6  U  N  V  h  W  q  Q  ~  N    O        P    N    O        N    O        P    Q    C    E    B    T  6  U  N  V  h  W  q  Q  ~  N    O        P    N    O        N    O        P    Q    C    E    B    T  6  U  N  V  h  W  q  Q    N    O        P    N    O        N    O        P    Q    C  =  \  B  ]  N  ^  ]  ^  y  _    `    `    a    b    c    c    c    _        P  !  d  +  e  1  e  O  e  V  f  k  g  z      P    h        P    i    i    f    j  8    A  k  Q  l  Y    b  k  j    s  k    l        k    m    n    e  	  o  	  o  	  Z  /	    4	  p  A	    M	  q  Y	  `  ^	  b  j	  `  	  r  	  s  	  ^  	  ^  	  ]  	  t  
  u  
  v  *
  w  @
  u  Z
  x  
  f  
  j  
  f  
  j  6  f  W  j    f    j    f    j    f  >  j  T  y    z    y    {  4  f  U  j    |    }        k    l        k    l     ~    m  -  n  f  u  x              k    l        k          I    j    o  P          	  P      <    E  |  M    y  u            p                    p            p  $    0    E    J    O  p  c    x    }  P    e            p                p          	  `    `  +  b  E  r    s    ^    ^    ]    t    u    ]    t    C        ^  !  ^  2  u  >    q  `    `    b    r    s    ^    u    u    B    K    B        P                P  6    K    P  P  \  N  f  O  q    v  P    N    O        P    N    O        P    U  !  U  J  U  ^  N  h  O  s      P    N    O        N    O                          5    <    J    Y    b  P            P                    P  4    @    E  P  V    [  p  d    t          p                              !      Z  *                                                                      $         `               `                            $                                              $     (     ,     0     4     8     <     @             [     X     Y                                   k       %        Q     Q     Z     Q     Q     Z  ?          ?             Q     Q     Z     b  /   r  S   s  [   Z  x   u     b  /   r  S   s  k   u     `     `       $   ^  .   ^  8   ]  C   t          `     `       $   ^  .   ^  ;   ]  C   t  S   Z       B                         g             C                                                                                                   P     \   n     u     C     u           d        m     n             u  2    l  C  x  u  3     H     O   f  q     v        c     c             $     -     D     M     d     m                                            $    P    h                         $  #  @  %  l  &  u      '    6        ;        <      socketstream.o/ 1121289500  520   20    100644  26220     `
ELF                      1      4     ( P M             ,D$4\$(\$0D$$         C    C\$(,Ív '    ,D$4\$(\$0D$$         C    C\$(,Ív '    ,  $   $   $0  $$  |$0$  $(  $      1ɉ$   PD$0   :D$0L$P:$   _GX    $G      GT       1C   1C,   CGT$l$$P8\$GX$4$D$<$F$<$ù    L$\$$\$D$4$nD$\$,$D$l$ ڍHP   F   P       vD$0ڸ    $   $   L$4HP~wD$D 1   D$<1D$@1D$`D$dT$4$   PD$0   :G\GX   $$  $   $$  $(  ,  Él$$xl$$ ƉGX   G\$E#  4$ՉƋSPJB~$   P   :뫉$D$ D$҉$Ɖ̉ՉƋT$\$ JB~~   $   D$0    J$      D$4B~:D$D 11ɉD$`1һ   \$4D$d$L$<T$@   D$0F\$$븉\$$qƉՍ\$ dƉt& 4$&    D$T$D$BD$BD$BD$BÐ&    D$T$D$BD$BD$BD$BÐ&    D$@    Ít& D$@    Ít& T$L$BABABABA   AÍt& T$L$BABABABA   AÍt& D$PuÍt&  D$t& D$HuÍt&  D$t& \\$T\$`t$XCt~D$0\$@D$   D$$$   $Ɖ\$   T$@\$ JB~    D$    D$4$\$$$   1   D$t$@H  111҉D$1L$D$D$dffD$   D$D$T$D$fD$ $@   D$hD$$@t/C    C    C    C    C   \$Tt$X\ÍD$ \$@D$   D$$$   $Ɖ\$T$@\$0JB~        D$\$\$$ۍD$ \$@D$,   D$$$   $Ɖ\$뉍&    8   D$ \$\$@D$$$   $Ɖ\$Ft& 4$Ít$ T$@JB~    '    $t$$4$Ít$0됍t& |\$p$   t$t|$x{   D$P|$`D$F   D$<$$   $É|$   T$`t$@JB~$        D$|$t$$؉1T$0      ׉t$,t T$D$,D$$tST$D$0D$D$4D$D$8D$D$<D$$   $$   \$pt$t|$x| &    D$@[   \$`D$L$$$   $Ɖ\$T$`\$PJB~4$        T$D$\$$؉$Ǎ\$@T$`JB~t& <$\$$4$Ǎ\$P뼐v '    VSTt$`\$dNt~D$0   \$@D$T$$$   $Ɖ\$   T$@\$ JB~    D$    D$4$\$$$   1D$   D$@  $D$@        D$D$\$$'  xtqD$     \$@D$T$$$   $Ɖ\$T$@\$0JB~    D$    \$$F    NF    F    F    @C$T$D$D$hffF   fF D$FD$$@tF   T[^ÍD$ \$@D$i   D$$$   $Ɖ\$D$ x   \$@D$L$$$   $Ɖ\$$D$ \$@D$8   D$$$   $Ɖ\$v 4$Ít$ T$@JB~    '    $t$$4$Ít$0v 䍴&    '    LT$P\$Dt$HBv~D$ \$0D$   D$$$   $Ɖ\$   T$0\$JB~4$        D$\$\$$؋B$\$Dt$HLÐ4$Ít$T$0JB~    '    $t$$捶    LT$P\$Dt$HBwBf\$Dt$HLÍD$ \$0D$   D$$$   $Ɖ\$   T$0\$JB~4$    D$    D$\$$ؐ4$Ít$T$0JB~    '    $t$$捶    WVS@|$Pt$T\$XG   ~0t& '    \$1D$t$$t)ƅۃ@[^_ÍD$   \$0D$L$$$   $Ɖ\$T$0\$ JB~        T$D$4$\$$؍D$ \$0D$   D$$$   $Ɖ\$   T$0\$JB~    D$    뀉\$$4$Ít$T$0JB~t& $t$$4$Ít$ 뼐v '    LT$P\$Dt$HBv~D$ \$0D$   D$$$   $Ɖ\$   T$0\$JB~        D$\$4$\$$؋D$X1ɉL$D$D$TD$$t\$Dt$HLÍD$   \$0D$T$$$   $Ɖ\$T$0\$ JB~    D$    D$R\$$ۉ4$Ít$T$0JB~    '    $t$$4$Ít$ 봐v '    L\$D\$Pt$HCu\$Dt$HLË$u	C    ݍD$ \$0D$   D$$$   $Ɖ\$T$0\$JB~4$    D$    D$\$$؉4$Ít$T$0JB~$t$$ꍶ               Ív '    Ð&    '    |$  tÃ|$u$    $      1҉L$T$̐&    '        D$  D$$   ,  socket not in CLOSED state listen failed bind failed socket failed socket not listening accept failed connect failed cannot resolve address socket not connected write failed read failed close failed    927oF      }  8. H            8 R K      M, F h                2 L c  I c L  %C  t         2 L 3      '  Q k >  
f   O [ >                 address resolved with TCP incompatible type                     attempt to create string with null pointer                                                      X                                                     X                                                                                                                                                       ,\$$\$0t$(t$S   JB~$\$$t$(,Ét$$ ,\$$\$0t$(t$S   JB~#$$\$$t$(,Í&    t$$  \$\$   $$\$       D$    $       ,\$$\$0t$(t$SP   JB~C   C0C C    C    C,    $$\$$t$(,Ðt& t$$  ,\$$\$0t$(t$SP   JB~6   C0C C    C    C,    $\$$t$(,Ét$$               \$\$ C   CX    $   P   CX   \$\$ D$AD$              \$\$t$|$l$K,SP΃zD$St9Sl$,Cku!tttK,|$ t0S$C,S K(uttC,&    D$ C$\$1t$|$l$   \$\$ C   CX    $   P   C\CX   $\$ \$         D$AD$              <\$0\$Dt$4t$@|$8C,tcCPK xC(|$9v)ȍT$9D$D$CЋD$D$ D$D$L$C 4$D$\$0t$4|$8< 4$CPD$ډ$       D$,D$ D$D$(D$D$$$T$                                                               St19basic_ostringstreamIcSt11char_traitsIcESaIcEE               St15basic_stringbufIcSt11char_traitsIcESaIcEE 20SocketLogicException 22SocketRunTimeException                 LL$T\$@T$Xt$D\$Pɉ|$Htu؋t$D\$@|$HLÉT$D$ t$0D${PL$4$t$<$T$0t$JB~11҉L$T$$P8딉t$$܋T$0Ít$JB~&    $t$$      UWVS\\$p|$t$   C    C    W,D$? Ѓtt|$|tD$?&    t1t1ҋO   uu|$?    t& 11ɋwl$81L$41Ʉl$L$0u|$? tOoL$8l$u|$? tO$o(L$4l$011Ƀ|$|l$,   |$|   u|$? tJD$xxB)t$9D$|8L$@l$x11G1D$Dl$HD$DCD$HC        u|$? tT$,T$xx)t$09T$0}\[^_] G$<$1))1T$|$DD$,t$HD$@D$DCD$HC뻋L$l$0))l$,1    L$8l$4      UWVS<t$P|$TL$dF    F    o   D$ W,1D$\$XЃttD$    '    t1t1D$ 1Ʉu|$ t GۉD$Gx+D$9
D$t& u|$ t%GW T$x)9    '    |$ uYtEG$<$T$)Љ)T$        \$ 11l$$|$(D$$FD$(F<[^_] t& G؄ɉGt  T$Bt	;Bs ø      L$\$\$D$St9Ss:Ju+|$ uBCȍt& \$ÍBC1E|$ uBCJ      \t$Pt$`\$L|$T|$dl$XNF9F$F,t6   ;NFVCЋD$   D$;    v    \$Lt$P|$Tl$X\Ét$\$0nP$\$,$T$0\$ JB~V,$D$D$D$^ FF$)؉D$NF4$)ȉD$R8V$   T$4$Y\$$뜉4$D$3v 1E#T$0Ít$ JB~$t$$  <\$,\$Dl$8l$@t$0|$49tatKD$H)4$D$t$Xǉl$$    7؋\$,t$0|$4l$8<$@   맍t&                 zPL |                 F       C0H    <   P   F       C0H     X            FNNR   |   P    =   C`DH             y   CDO          	       AAC`                 CPL                CPL   $   $         AAACP    L      =  CPL      l  @     a  CPDH       `  A       C         O       C D          W       C D              x  C@DHH             .       C               CPPJ    8      ~    C`DLH     \             C@DHL               C GCC: (GNU) 3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1)  .symtab .strtab .shstrtab .rel.text .data .bss .rodata.str1.1 .gcc_except_table .rodata.str1.32 .rel.gnu.linkonce.r._ZTV22SocketRunTimeException .rel.gnu.linkonce.r._ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTCSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE0_So .rel.gnu.linkonce.r._ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTV20SocketLogicException .rel.gnu.linkonce.t._ZN22SocketRunTimeExceptionD1Ev .rel.gnu.linkonce.t._ZN22SocketRunTimeExceptionD0Ev .rel.gnu.linkonce.t._ZN20SocketLogicExceptionD0Ev .rel.gnu.linkonce.t._ZN20SocketLogicExceptionD1Ev .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev .rel.gnu.linkonce.t._ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev .rel.gnu.linkonce.t._ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev .gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj .rel.gnu.linkonce.t._ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev .rel.gnu.linkonce.t._ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev .rel.gnu.linkonce.t._ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv .rel.gnu.linkonce.t._ZNSsC1IPcEET_S1_RKSaIcE .rel.gnu.linkonce.r._ZTI22SocketRunTimeException .rel.gnu.linkonce.r._ZTI20SocketLogicException .rel.gnu.linkonce.r._ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE .rel.gnu.linkonce.r._ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .gnu.linkonce.r._ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE .gnu.linkonce.r._ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE .gnu.linkonce.r._ZTS20SocketLogicException .gnu.linkonce.r._ZTS22SocketRunTimeException .gnu.linkonce.r._ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE .gnu.linkonce.r._ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode .gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv .gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi .rel.gnu.linkonce.t._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi .rel.gnu.linkonce.t._ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag .rel.ctors .rel.eh_frame .note.GNU-stack .comment                                                        @                       	           dZ  P  N            %                                  +                                 0      2                          ?                                Q      2         k                  e                                 a   	           a      N                         @  (                      	           a  0   N   
                      h                       	           b      N            *              (                   &  	           $b  0   N            x              D                   t  	           Tb     N                                              	           b      N                           O                    	           b     N            !            p  ^                    	           c      N            U              )                  Q  	           ,c     N                                               	           Dc     N                           ~                    	           Tc  (   N                          q                    	           |c      N            K               O                  G  	           c  8   N                         p                      	           c     N   "                                         A            P  W                  =  	           c  @   N   %                                           	           d     N   '                                           	           $d     N   )         /            p  .                  +  	           <d     N   +         \                                X  	           Dd     N   -                                           	           \d     N   /                                           	           td     N   1                                           	           d     N   3         H              2                                  .                               N                                e                    (                                t                                                                  	           d  (   N   ;                     p                     	           d     N   =                     P   N                   	           d     N   ?                     !                    B	            !  j                  	            0"  ~                 	  	           d  H   N   C         	            #                    	  	           $e  8   N   E         7
            @$                    3
  	           \e     N   G         B
            D$                   >
  	           de    N   I         L
             &                     \
             &  E                                '  e
                               >     O   4         	              $I  @                                                                                                                                                                        
                                                             `  A     P                                                                                                                          "              $              %              '              )              +              -              /              1              3              5              6              7              8              9              :              ;              =              ?              A              B              C              E X                       G              I              K              L        F                             !                                P   F     3             B         f             y         !                                  (   ! 
 P                   D   !                                                  " ) H             Z             s                                                                       q   "  H             ^  0  '       `  '                           ,     8    ,     j                        0         P                                             
         !  %         "  C         ! / ^             j             q             v             }      O   "           ! -                                     	                   "             0             7             ?             M          n             x                                                       @         @         P             ^   "  ?         ! 3 u      O   "         W   " %          " " (	         " ' i	      (   !  	             	             	             	             	             	         ! 1 
      ~   "  I
             
         " ; 
        " =       N  " ?                                        "         " A _                   j   " B                    ~  " C D         " $       )   "                                                                                             *      .   " + C             P         " E                                    ! 8                       ! 7              3      .   ! 6 e                   2   ! 5          ! 9          ! : @             T                                                                              +              socketstream.cxx _ZSt8__ioinit _Z41__static_initialization_and_destruction_0ii __tcf_0 _GLOBAL__I__ZN22SocketRunTimeExceptionC2ERKSs _ZN22SocketRunTimeExceptionC2ERKSs _ZNSt13runtime_errorC2ERKSs _ZTV22SocketRunTimeException _ZNSs20_S_empty_rep_storageE __errno_location _ZN22SocketRunTimeExceptionC1ERKSs _Unwind_Resume _ZNK22SocketRunTimeException4whatEv _ZNSt8ios_baseC2Ev _ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZTVSt9basic_iosIcSt11char_traitsIcEE _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E _ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev _ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNKSt13runtime_error4whatEv _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc strerror _ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv _ZNSs6assignERKSs _ZNSs4_Rep11_S_terminalE _ZTVSt15basic_streambufIcSt11char_traitsIcEE _ZNSt6localeD1Ev _ZNSt8ios_baseD2Ev _ZNSs4_Rep10_M_destroyERKSaIcE _ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev __cxa_call_unexpected _ZN16TCPSocketWrapper17TCPAcceptedSocketC2Ei11sockaddr_in _ZN16TCPSocketWrapper17TCPAcceptedSocketC1Ei11sockaddr_in _ZN16TCPSocketWrapperC2Ev _ZN16TCPSocketWrapperC1Ev _ZN16TCPSocketWrapperC2ERKNS_17TCPAcceptedSocketE _ZN16TCPSocketWrapperC1ERKNS_17TCPAcceptedSocketE _ZN16TCPSocketWrapperD2Ev close _ZN16TCPSocketWrapperD1Ev _ZN16TCPSocketWrapper6listenEii _ZNSsC1EPKcRKSaIcE __cxa_allocate_exception _ZNSt11logic_errorC2ERKSs _ZTV20SocketLogicException _ZN20SocketLogicExceptionD1Ev _ZTI20SocketLogicException __cxa_throw socket bind listen _ZN22SocketRunTimeExceptionD1Ev _ZTI22SocketRunTimeException __cxa_free_exception _ZN16TCPSocketWrapper6acceptEv accept _ZN16TCPSocketWrapper7connectEPKci inet_addr gethostbyaddr memcpy connect gethostbyname _ZNK16TCPSocketWrapper7addressEv inet_ntoa _ZNK16TCPSocketWrapper4portEv _ZN16TCPSocketWrapper5writeEPKvi send _ZN16TCPSocketWrapper4readEPvi recv _ZN16TCPSocketWrapper5closeEv _Z11socketsInitv _Z10socketsEndv _ZN22SocketRunTimeExceptionD0Ev _ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev _ZTCSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE0_So _ZTISo _ZNSoD1Ev _ZNSoD0Ev _ZTv0_n12_NSoD1Ev _ZTv0_n12_NSoD0Ev _ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev _ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode _ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv _ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv _ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj _ZN20SocketLogicExceptionD0Ev _ZNKSt11logic_error4whatEv _ZNSt8ios_base4InitC1Ev __dso_handle __cxa_atexit _ZNSt13runtime_errorD2Ev _ZdlPv _ZNSt11logic_errorD2Ev _ZNSsC1IPcEET_S1_RKSaIcE _ZNSsC1ERKSs _ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag _ZNSt8ios_base4InitD1Ev _ZTVN10__cxxabiv120__si_class_type_infoE _ZTS22SocketRunTimeException _ZTISt13runtime_error _ZTS20SocketLogicException _ZTISt11logic_error _ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE _ZTISt15basic_streambufIcSt11char_traitsIcEE _ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE _ZNSsC1EPKcjRKSaIcE _ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl _ZNSs4_Rep11_S_max_sizeE _ZNSs7reserveEj _ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc _ZNSs4_Rep9_S_createEjRKSaIcE _ZSt19__throw_logic_errorPKc __gxx_personality_v0    5     6  )   7  0   7  5   8  g   5  m   6  y   7     7     8     <     =     >     =    ?    @     @  (  A  /  B  6  7  >  7  C  7  x  ?    C    D    E        D    D    F    G    B    H    @  $  @  N  I  n  J  s  =    =    >    K    L    L    >    K    :  !  M  &  =  0  =  E  L  S  N  w  @    @    B    I    J    =    L    L  $  O  s      Z    [    \    ]    ^    _    `    L    a  L  b  e  c        Z    [    9    d    e  
  L      )  Z  5  [  C  9  Q    i  Z  u  [    9    f    :    L      )  Z  5  [  C  \  I  ]  j  ^  o  _  |  `    L    h    Q  %	    9	  Z  E	  [  S	  9  t	  d  y	  e  	  L  	  f  	  :  	  L  	
    
  Z  )
  [  7
  \  =
  ]  [
  ^  d
  _  p
  `  |
  L  
  a  
  j  
  k  
       Z    [    9  8  d  A  e  R  L    l    m        Z    [    9      !  Z  -  [  ;  9  H  n  ^    j  Z  v  [    9    f    :    L  '    3  Z  ?  [  M  \  S  ]  t  ^  y  _    `    L    p    f    :    L  >    J  Z  V  [  d  \  j  ]    ^    _    `    L    f    :    L  D  s  a    u  Z    [    9    d    e    `    L        Z    [    \    ]  +  ^  4  _  B  L  R  f  t  :    L        Z    [    \    ]    ^    _  &  `  2  L  T  u  n      Z    [    9    d    e    L    f    :     L  h  W        Z    [    9    d    e    `    L    f    :  $  L  {                        '  W  G  W         e     d     y     ;     z     {     |     z      }  $   ~      @               @                            $             N                                 $     (     ,     0     4     8     <     @        _     ^               6  1     I   L     6  1     9     X   L     ]            	   ]          B  /   I  S   J  [     x   L     B  /   I  S   J  k   L     @     @     N  $   =  .   =  8   >  C   K     {     @     @     N  $   =  .   =  ;   >  C   K  S        |  g             :                                                                        P     \   G     L     :     L           d        F     G             L  2    l  :  x  L  3     H   l  O   H  q     v        7     7             $     @     \     e                                                     (    1    P    Y    p    y                              (  %    <  -  E    `  .                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /*
 * $Id: spectraBox.cxx,v 4.0 2003/04/28 14:40:03 hut66au Exp $
 *
 * Imview, the portable image analysis application
 * http://www.cmis.csiro.au/Hugues.Talbot/imview
 * ----------------------------------------------------------
 *
 *  Imview is an attempt to provide an image display application
 *  suitable for professional image analysis. It was started in
 *  1997 and is mostly the result of the efforts of Hugues Talbot,
 *  Image Analysis Project, CSIRO Mathematical and Information
 *  Sciences, with help from others (see the CREDITS files for
 *  more information)
 *
 *  Imview is Copyrighted (C) 1997-2001 by Hugues Talbot and was
 *  supported in parts by the Australian Commonwealth Science and 
 *  Industry Research Organisation. Please see the COPYRIGHT file 
 *  for full details. Imview also includes the contributions of 
 *  many others. Please see the CREDITS file for full details.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
 * */

/*------------------------------------------------------------------------
 *
 * The code for the spectrum display panel
 *
 * Hugues Talbot	 1 Aug 1998
 *      
 *-----------------------------------------------------------------------*/

#include <string.h>
#include "imview.hxx"
#include "spectraBox.hxx"
#include "saveSpect.hxx"
#include "printSpect.hxx"

extern savespect        *saveSpectPanel;
extern printspect       *printSpectPanel;

void mySpectraBox::setSpectrum(double *theSpectrum, int nbval)
{
    if (theSpectrum != 0) {
	if (spectrum) delete[] spectrum;
	spectrum = new double[nbval];
	memcpy(spectrum, theSpectrum, nbval*sizeof(double));
	nbSpectrumValues = nbval;
	recomputeLimits();
    } else {
	if (spectrum) delete[] spectrum;
	spectrum = 0;
	nbSpectrumValues = 0;
    }

    return;
}

void mySpectraBox::recomputeLimits(void)
{
    if (spectrum) {
	if (!absolute)
	    mins = maxs = spectrum[0];
	// else they have already been set to 0
	for (int i = 1 ; i < nbSpectrumValues ; i++) {
	    if (spectrum[i] > maxs) maxs = spectrum[i];
	    if (spectrum[i] < mins) mins = spectrum[i];
	}
	// special case of the char values.
	if (absolute && (mins >= 0.0) && (maxs <= 255.0)) {
	    mins = 0.0;
	    maxs = 255.0;
	}
	// what if they are both equal?
	if (maxs == mins)
	    maxs = 1.0;
	if (theSpectra) {
	    theSpectra->setAxisBoxesLimits(0, nbSpectrumValues,
					   mins, maxs);
	}
    }

    return;
}

int mySpectraBox::handle(int event)
{
    int retval = 0;
    int button;

    if (spectrum) {
	button = Fl::event_button();
	switch (event) {
	  case FL_PUSH:
	    handleButtonPushed();
	    retval = 1;
	    break;

	  case FL_DRAG:
	    handleButtonDragged();
	    retval = 1;
	    break;

	  case FL_RELEASE:
	    handleButtonReleased();
	    retval = 1;
	    break;

	  case FL_LEAVE:
	    // Return to normal cursor
	    fl_cursor(FL_CURSOR_DEFAULT);
	    retval = 1;
	    break;
	    
	  default:
	    retval = 0;
	    break;
	}
    }
    
    return retval;
}

void mySpectraBox::handleButtonPushed()
{

    fl_cursor((Fl_Cursor)MY_CURSOR_VLINE);
    handleButtonDragged();
    
    return;
}

void mySpectraBox::handleButtonDragged()
{
    int index;
    int xx = Fl::event_x();
    int realwidth = w() - WIDTHMARGIN;
    
    index = (int)(((double)xx-x()-WIDTHMARGIN/2)*(nbSpectrumValues-1)/realwidth);
    if ((index >= 0) && (index < nbSpectrumValues) && theSpectra) {
	theSpectra->setXValue(index);
	theSpectra->setYValue(spectrum[index]);
    } 
    return;
}

void mySpectraBox::handleButtonReleased()
{
    fl_cursor(FL_CURSOR_DEFAULT);

    return;
}

void mySpectraBox::draw()
{
    // superclass draw:
    draw_box();
    draw_label();

    if (spectrum != 0) {
	int xa, ya, xb, yb;
	int realwidth = w() - WIDTHMARGIN;
	int realheight = h() - HEIGHTMARGIN;

	fl_clip(x(),y(),w(),h());
	fl_color(FL_BLACK);
	for (int i = 1 ; i < nbSpectrumValues ; i++) {
	    xa = ((i-1)*realwidth)/(nbSpectrumValues-1) + WIDTHMARGIN/2;
	    ya = (int)((1.0 - (spectrum[i-1]-mins)/(maxs-mins))*realheight) + HEIGHTMARGIN/2;
	    xb = (i*realwidth)/(nbSpectrumValues - 1) + WIDTHMARGIN/2;
	    yb = (int)((1.0 - (spectrum[i]-mins)/(maxs-mins))*realheight) + HEIGHTMARGIN/2;
	    dbgprintf("Drawing from: (%d, %d) to (%d, %d)\n",
		      xa, ya, xb, yb);
	    fl_line(xa+x(), ya+y(), xb+x(), yb+y());
	}
	fl_pop_clip();
    }
    
    return; 
}


/// The spectra stuff

spectra::spectra()
{
    dbgprintf("Spectra display dialog created\n");
    spectraWindow = 0; // fluid depends on that
    spectraBox = 0;
    
    return;
}

void spectra::setDefaults(void)
{
    // we display relative values by default
    relative->set(); // button appearance
    spectraBox->setRelative(); // set the variable correctly
    spectrumTitle->value("Position: undefined");
    xvalue->value("0");
    yvalue->value("0");
    // the spectraBox needs to know us
    spectraBox->setSpectra(this);
    
    
    return;
}

// pass on the data...
void spectra::setData(double *s, int nb, int x, int y)
{
    static char buff[100];
    
    spectraBox->setSpectrum(s,nb);

    sprintf(buff, "Position: x=%d, y=%d", x, y);
    xIm = x;
    yIm = y;
    spectrumTitle->value(buff);

    return;
}

int spectra::visible()
{
    return spectraWindow->visible();
}

void spectra::redraw()
{
    spectraBox->redraw();
    return;
}

void spectra::show()
{
    spectraWindow->show();
}

void spectra::hide()
{
    spectraWindow->hide();
}

void spectra::setAxisBoxesLimits(double xminlimit, double xmaxlimit,
				 double yminlimit, double ymaxlimit)
{
    abcissaBox->setRange(xminlimit, xmaxlimit);
    ordinateBox->setRange(yminlimit, ymaxlimit);
    abcissaBox->redraw();
    ordinateBox->redraw();
}


/// The Spectra callbacks.

void relativecheck_cb(Fl_Check_Button *, spectra *panel)
{
    panel->displayRelative();
    return;
}

void absolutecheck_cb(Fl_Check_Button *, spectra *panel)
{
    panel->displayAbsolute();
    return;
}		      
    

void printbutton_cb(Fl_Button *, spectra *)
{
    dbgprintf("Print button pressed\n");
    if (printSpectPanel == 0) {
	printSpectPanel = new printspect;
	printspect &printref = *printSpectPanel;
	// initializes the fluid-generated panel
	printspect_panel(printref);
	// do our own initialization
	printSpectPanel->setDefaults();
    }

    // show the panel
    printSpectPanel->setCallerType(SPECTRAPANEL);
    printSpectPanel->show();
    
    return;
}

void savebutton_cb(Fl_Button *, spectra *)
{
    dbgprintf("Save button pressed\n");
    if (saveSpectPanel == 0) {
	saveSpectPanel = new savespect;
	savespect &saveref = *saveSpectPanel;
	// initializes the fluid-generated panel
	savespect_panel(saveref);
	// do our own initialization
	saveSpectPanel->setDefaults();
    }
    // show the panel
    saveSpectPanel->setCallerType(SPECTRAPANEL);
    saveSpectPanel->show();

    return;
}

void okbutton_cb(Fl_Return_Button*, spectra *panel)
{
    // this is very simple...
    panel->hide();
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           /*
 * $Id: printSpect.cxx,v 4.0 2003/04/28 14:39:56 hut66au Exp $
 *
 * Imview, the portable image analysis application
 * http://www.cmis.csiro.au/Hugues.Talbot/imview
 * ----------------------------------------------------------
 *
 *  Imview is an attempt to provide an image display application
 *  suitable for professional image analysis. It was started in
 *  1997 and is mostly the result of the efforts of Hugues Talbot,
 *  Image Analysis Project, CSIRO Mathematical and Information
 *  Sciences, with help from others (see the CREDITS files for
 *  more information)
 *
 *  Imview is Copyrighted (C) 1997-2001 by Hugues Talbot and was
 *  supported in parts by the Australian Commonwealth Science and 
 *  Industry Research Organisation. Please see the COPYRIGHT file 
 *  for full details. Imview also includes the contributions of 
 *  many others. Please see the CREDITS file for full details.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
 * */

/*------------------------------------------------------------------------
 *
 * A print preference panel using fluid.
 *
 * Hugues Talbot	21 Apr 1998
 *      
 *-----------------------------------------------------------------------*/

#include <stdio.h>
#include <stdlib.h>
#include "imunistd.h"
#include <string.h>
#include <errno.h>
#include <setjmp.h>
#include <signal.h>
#include <FL/Fl_File_Chooser.H>
#include <FL/fl_ask.H>
#include "imview.hxx"
#include "io/imSystem.hxx"
#include "imageIO.hxx"
#include "imageViewer.hxx"
#include "spectraBox.hxx"
#include "profileBox.hxx"
#include "io/gplot2.hxx"
#include "printSpect.hxx"

extern char appName[];
extern imageIO *IOBlackBox;
extern profile     *profilePanel;
extern spectra     *spectraPanel; 

// print panel methods

printspect::printspect()
{
    dbgprintf("Print panel constructed\n");
    prefWindow = 0; // fluid depend on that...
    return;
}

void printspect::setDefaults()
{
    static char buff[100];
    char *myenv;

    // we print to a real printer by default
    printerCheck->set();

    // default printing output
    if ((myenv = getenv("PRINTER")) != 0)
	sprintf(buff, "lpr -P%s", myenv);
    else
	strcpy(buff, "lpr");
    commandInput->value((const char *)buff);

    // default value for file
    sprintf(buff, "%s.ps", appName);
    filenameInput->value(buff);

    // empty title is fine...

    // orientation should be landscape
    landscapeCheck->set();

    // Paper size should be A4
    A4Check->set();
    
    // no smoothing by default
    linesCheck->set();

    // number of copies should be just one
    nbcopiesInput->value("1");

    // Panel is SPECTRA by default.
    whichPanel = SPECTRAPANEL;
    // that's it
    
    return;
}

// this method switches between the `File' and the `Printer' defaults
void printspect::toggleToFile()
{
    // disable the Print command
    commandInput->deactivate();
    commandInput->color(47); // got that from fluid...
    commandInput->textcolor(31);
    commandInput->labelcolor(31);
    // enable the "file" command
    filenameInput->activate();
    filenameInput->color(43);
    filenameInput->textcolor(FL_BLACK);
    filenameInput->labelcolor(FL_BLACK);
    // enable the browse button
    browseButton->activate();
    browseButton->labelcolor(FL_BLACK);

    prefWindow->redraw();
    
    return;
}

void printspect::toggleToPrinter()
{
    // disable the Print command
    filenameInput->deactivate();
    filenameInput->color(47); // got that from fluid...
    filenameInput->textcolor(31);
    filenameInput->labelcolor(31);
    // enable the "file" command
    commandInput->activate();
    commandInput->color(43);
    commandInput->textcolor(FL_BLACK);
    commandInput->labelcolor(FL_BLACK);
    // disable the browse button
    browseButton->deactivate();
    browseButton->labelcolor(31);

    prefWindow->redraw();

    return;
}

void printspect::allowTitle(bool b)
{
    if (b) {
	// setting the title is allowed
	titleInput->activate();
	titleInput->color(43); // fluid...
	titleInput->textcolor(FL_BLACK);
	titleInput->labelcolor(FL_BLACK);
    } else {
	titleInput->deactivate();
	titleInput->color(47);
	titleInput->textcolor(31);
	titleInput->textcolor(31);
    }
    
    prefWindow->redraw();
    
    return;
}

void printspect::printFileName(const char *fn)
{
    // this copies it to something more permanent.
    filenameInput->value(fn);
    return;
}


int printspect::doThePrinting()
{
    int     retval = 0; 
    char    papertype; 
    char    jointype; 
    char    orientation;
    int     nbcopies; 
    char   *title, *filename = 0, *pipeCommand = 0; 
    static char tmptitle[1024];
    int     nx = 0;
    double *dbuff = 0, *rbuff = 0, *gbuff = 0, *bbuff = 0;


    if (whichPanel == SPECTRAPANEL) {
	nx = spectraPanel->getNbVal();
	dbuff = spectraPanel->getData();
    } else if (whichPanel == PROFILEPANEL) {
	nx = profilePanel->getNbVal();
	dbuff = rbuff = profilePanel->getDataR();
	gbuff = profilePanel->getDataG();
	bbuff = profilePanel->getDataB();
    }
    
    if (dbuff != 0) {
	// get all the options now
	if (A3Check->value()) papertype = A3_PAGE;
	else if (letterCheck->value()) papertype = LETTER_PAGE;
	else papertype = A4_PAGE;

	if (landscapeCheck->value()) orientation = LANDSCAPE;
	else orientation = PORTRAIT;

	if (linesCheck->value()) jointype = LINES;
	else jointype = SPLINES;
    
	nbcopies = trivmax(atoi(nbcopiesInput->value()), 1);

	title = (char *)(titleInput->value());
	if ((title != 0) && (title[0] == '\0'))
	    title = 0; // empty string
    
	// open the pipe!
	if (printerCheck->value()) {
	    // we pipe to a command, which hopefully will print
	    // (not our problem if it doesn't...

	    // get the pipe command
	    pipeCommand = (char *)commandInput->value();
	    if ((pipeCommand != 0) && (pipeCommand[0] == '\0')
		|| (pipeCommand == 0)) {
		errprintf("Please specify a print command\n");
		retval = 1;
	    } else {
		// prepare a `pipe file name'
		strcpy(tmptitle, "|");
		strcat(tmptitle, pipeCommand);
		filename = tmptitle;
	    }
	
	} else {
	    // we send to a file
	    filename = (char *)filenameInput->value();
	    if ((filename != 0) && (filename[0] == '\0')
		|| (filename == 0)) {
		errprintf("Please specify a file to print to\n");
		retval = 4;
	    } else {
		if (access(filename, W_OK) == 0) {
		    // the file aready exist, do we really want to do this?
		    static char alrtmsg[1024];
		    sprintf(alrtmsg,
			    "File %s already exists\n"
			    "Do you want to overwrite?\n",
			    filename);
		    if (fl_ask(alrtmsg) == 0) {
			retval = 6;
		    } 
		} 
	    }
	}

	if (retval == 0) {
	    // all is fine, we can send the postscript code away.
	    dbgprintf("Composing gnuplot code\n");
	    thePlot = openPlot(title);
	    if (thePlot != 0) {
		send2plot(thePlot, "set terminal postscript %s",
			  (orientation == PORTRAIT)? "eps": "");
		send2plot(thePlot, "set output \"%s\"", filename);
		if (whichPanel == SPECTRAPANEL) {
		    send2plot(thePlot,
			      "set xlabel 'Spectrum of %s at position x=%d, y=%d'",
			      IOBlackBox->getImName(),
			      spectraPanel->getXpos(),
			      spectraPanel->getYpos());
		    plotDoubles(dbuff, nx, thePlot,
				(jointype == SPLINES));
		} else if (whichPanel == PROFILEPANEL) {
		    double *vecs[3];
		    char   *lbl[3];
		    int     len[3];
		    send2plot(thePlot, "set data style lines");
		    send2plot(thePlot,
			      "set xlabel 'Profile of %s from position x=%d, y=%d"
			      " to position x=%d, y=%d'",
			      IOBlackBox->getImName(),
			      profilePanel->getXstart(),
			      profilePanel->getYstart(),
			      profilePanel->getXend(),
			      profilePanel->getYend());
		    vecs[0] = rbuff;
		    vecs[1] = gbuff;
		    vecs[2] = bbuff;
		    lbl[0] = "Red";
		    lbl[1] = "Green";
		    lbl[2] = "Blue";
		    len[0] = len[1] = len[2] = nx;
		    dataMPlot(thePlot,
			      // this is to show that we know what we are talking about...
			      (char * (*) (...))writeDoubleVector, 
			      3,
			      (void**)vecs,
			      lbl,
			      len,
			      0); // no splines			      
		}

		closePlot(thePlot);
	    }
		
	}
    }

    return retval;
}


int printspect::doThePreview()
{
    int     retval = 0;
    char    jointype;
    char   *title;
    int     nx = 0; 
    double *dbuff = 0, *rbuff = 0, *gbuff = 0, *bbuff = 0;

    if (whichPanel == SPECTRAPANEL) {
	nx = spectraPanel->getNbVal();
	dbuff = spectraPanel->getData();
    } else if (whichPanel == PROFILEPANEL) {
	nx = profilePanel->getNbVal();
	dbuff = rbuff = profilePanel->getDataR();
	gbuff = profilePanel->getDataG();
	bbuff = profilePanel->getDataB();
    }
    
    if (dbuff != 0) {
	if (linesCheck->value()) jointype = LINES;
	else jointype = SPLINES;
    
	title = (char *)(titleInput->value());
	if ((title != 0) && (title[0] == '\0'))
	    title = 0; // empty string
    

	// all is fine, we can send the postscript code away.
	dbgprintf("Composing gnuplot code\n");
	thePlot = openPlot(title);
	if (thePlot != 0) {
	    if (whichPanel == SPECTRAPANEL) {
		char    xlabel[1024];
		
		sprintf(xlabel, "spectrum of %s at position x=%d, y=%d",
			IOBlackBox->getImName(),
			spectraPanel->getXpos(),
			spectraPanel->getYpos());
		send2plot(thePlot, "set xlabel '%s'", xlabel);
		plotDoubles(dbuff, nx, thePlot,
			    (jointype == SPLINES));
	    } else if (whichPanel == PROFILEPANEL) {
		double *vecs[3];
		char   *lbl[3];
		int     len[3];
		send2plot(thePlot, "set data style lines");
		send2plot(thePlot,
			  "set xlabel 'Profile of %s from position x=%d, y=%d"
			  " to position x=%d, y=%d'",
			  IOBlackBox->getImName(),
			  profilePanel->getXstart(),
			  profilePanel->getYstart(),
			  profilePanel->getXend(),
			  profilePanel->getYend());
		vecs[0] = rbuff;
		vecs[1] = gbuff;
		vecs[2] = bbuff;
		lbl[0] = "Red";
		lbl[1] = "Green";
		lbl[2] = "Blue";
		len[0] = len[1] = len[2] = nx;
		dataMPlot(thePlot,
			  (char * (*) (...))writeDoubleVector,
			  3,
			  (void **)vecs,
			  lbl,
			  len,
			  0); // no splines	
	    }
	}
    }
    return retval;
}

int printspect::closePreview()
{
    if (thePlot != 0)
	closePlot(thePlot);

    return 0;
}

void printspect::show()
{
    prefWindow->show();
    return;
}

void printspect::hide()
{
    prefWindow->hide();
    return;
}

    

// print panel associated callbacks

void printercheck_cb(Fl_Check_Button *, printspect *panel)
{
    dbgprintf("Printer check callback\n");
    panel->toggleToPrinter();
    
    return;
}

void filecheck_cb(Fl_Check_Button *, printspect *panel)
{
    dbgprintf("File check callback\n");
    panel->toggleToFile();

    
    return;
}

void commandInput_cb(Fl_Input *, printspect *)
{
    dbgprintf("Command input callback\n");

    return;
}

void filenameInput_cb(Fl_Input *, printspect *)
{
    dbgprintf("filename input callback\n");

    return;
}

void browsebutton_cb(Fl_Button *, printspect *panel)
{
    const char *currentfile;
    static const char *p = 0;

    dbgprintf("Browse Button pressed on print prefs panel\n");

    currentfile = panel->filenameInputValue();
    
    p = fl_file_chooser("Print to file", "*[pP][sS]", currentfile);
			
    if (p) panel->printFileName(p);
    
    return;
}


void titleInput_cb(Fl_Input *, printspect *)
{
    dbgprintf("title input callback\n");

    return;
}

void portraitcheck_cb(Fl_Check_Button *, printspect *)
{
    dbgprintf("Portrait check callback\n");

    return;
}

void landscapecheck_cb(Fl_Check_Button *, printspect *)
{
    dbgprintf("Landscape check callback\n");

    return;
}


void a4check_cb(Fl_Check_Button *, printspect *)
{
    dbgprintf("A4 check callback\n");

    return;
}

void lettercheck_cb(Fl_Check_Button *, printspect *)
{
    dbgprintf("Letter check callback\n");

    return;
}

void a3check_cb(Fl_Check_Button *, printspect *)
{
    dbgprintf("A3 check callback\n");

    return;
}

void pscheck_cb(Fl_Check_Button *, printspect *panel)
{
    dbgprintf("PS check callback\n");
    panel->allowTitle(true);
    
    return;
}

void epscheck_cb(Fl_Check_Button *, printspect *panel)
{
    dbgprintf("EPS check callback\n");
    panel->allowTitle(false);
    
    return;
}

void nbcopies_cb(Fl_Input *, printspect *)
{
    dbgprintf("Nb of copies callback\n");
    return;
}

void linescheck_cb(Fl_Check_Button *, printspect *)
{
    dbgprintf("Lines check callback\n");
    
    return;
}

void splinescheck_cb(Fl_Check_Button *, printspect *)
{
    dbgprintf("Splines check callback\n");
    
    return;
}


void cancelbutton_cb(Fl_Button *, printspect *panel)
{
    dbgprintf("Cancel Button pressed on print prefs panel\n");
    // hide the window
    panel->hide();
    return;
}

void previewbutton_cb(Fl_Button *b, printspect *panel)
{
    dbgprintf("preview Button pressed on print spect panel\n");
    if (b->value()) panel->doThePreview();
    else panel->closePreview();
    return;
}

// This is really the `print' button...
void okbutton_cb(Fl_Return_Button *, printspect *panel)
{
    dbgprintf("Print Button pressed on print prefs panel\n");
    if (panel->doThePrinting() == 0) {
	// hide the window
	panel->hide();
    } // else leave the panel around for the user to correct things
    return;
}


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /*
 * $Id: bivHist.cxx,v 4.2 2003/06/03 16:11:49 hut66au Exp $
 *
 * Imview, the portable image analysis application
 * http://www.cmis.csiro.au/Hugues.Talbot/imview
 * ----------------------------------------------------------
 *
 *  Imview is an attempt to provide an image display application
 *  suitable for professional image analysis. It was started in
 *  1997 and is mostly the result of the efforts of Hugues Talbot,
 *  Image Analysis Project, CSIRO Mathematical and Information
 *  Sciences, with help from others (see the CREDITS files for
 *  more information)
 *
 *  Imview is Copyrighted (C) 1997-2001 by Hugues Talbot and was
 *  supported in parts by the Australian Commonwealth Science and 
 *  Industry Research Organisation. Please see the COPYRIGHT file 
 *  for full details. Imview also includes the contributions of 
 *  many others. Please see the CREDITS file for full details.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
 * */

/*------------------------------------------------------------------------
 *
 * This file contains the code for the bivariate histogram,
 * Both the GUI interface (with bivhist) and the code for the
 * histogram `canvas'
 *
 * Hugues Talbot	26 Apr 1999    
 *  
 *-----------------------------------------------------------------------*/

#include <stdlib.h>
#include <stdio.h> // for sprintf

#include <algorithm>

#include "imview.hxx"
#include "imageIO.hxx"
#include "imageViewer.hxx"
#include "machine.hxx"
#include "bivHist.hxx"
#include "nocase.hxx"
#include "io/newprefio.hxx"


using std::upper_bound;
using std::lower_bound;
using std::sort;


extern imageIO *IOBlackBox;
extern imageViewer *mainViewer;
extern imprefs      *fileprefs;


//
// Comparison function for points
//

// returns true if a is less than b
bool cmpBHPoints::operator() (const BHPoint &a, const BHPoint &b) const
{
    // order by Y first
    if (a.Yvalue < b.Yvalue)
	return true;
    else if (a.Yvalue > b.Yvalue)
	return false;
    // then order by X
    else if (a.Xvalue < b.Xvalue)
	return true;
    else
	return false; // if b <= a
}

//
// Implementation for bivHistBox class.
//

bivHistBox::bivHistBox(int x, int y, int w, int h, const char *l)
    : Fl_Box(x,y,w,h,l)
{
    box(FL_FLAT_BOX);
    color(FL_WHITE);
    dataIsInteger = true;
    xCorrection = yCorrection = 1.0;
    return; 
}


int bivHistBox::handle(int event)
{
    int    retval = 0;
    double xval, yval;

    if (!allPoints.empty()) {

	switch (event) {
	  case FL_ENTER:
	    fl_cursor(FL_CURSOR_CROSS);
	    retval = 1;
	    break;

	  case FL_MOVE: // no button held down
	    retval = handleMouseMoved(xval, yval); // in this case the xval and yval are thrown away
	    break;

	  case FL_PUSH:
	  case FL_DRAG:
	    retval = handleMouseButtonPushed();
	    break;

	  case FL_RELEASE:
	    //IOBlackBox->applyOverlayToCurrentImage();
	    IOBlackBox->applyImageParameters(0, 0, 0, true);
	    mainViewer->displayCurrentImage(); // this can be quite slow 
	    retval = 1;
	    break;
	    
	  case FL_LEAVE:
	    fl_cursor(FL_CURSOR_DEFAULT);
	    retval = 1;
	    break;
	    
	}
    }
    
    return retval;
}

int bivHistBox::handleMouseMoved(double &xval, double &yval)
{
    int                 Xmouse, Ymouse;
    char                p[100];   
    int                 retval = 1;
    double              realw, realh;
    
    Xmouse = Fl::event_x() - x();
    Ymouse = Fl::event_y() - y();

    realw = (double) w() - xCorrection;
    realh = (double) h() - yCorrection;
    
    xval = minXval + ((double)Xmouse * (maxXval - minXval)) / realw;
    yval = minYval + ((h() - (double)Ymouse) * (maxYval - minYval)) / realh;

    if (dataIsInteger) {
	xval = floor(xval);
	yval = floor(yval);
    }

    sprintf(p, "X= %.5g , Y=%.5g", xval, yval);
    
    parentPanel->setPosition(p);   
    
    return retval;
}

int bivHistBox::handleMouseButtonPushed(void)
{
    double              xval, yval, delta, mindelta, distance;
    int                 retval = handleMouseMoved(xval, yval);
    BHPColour           currentColour;
    bhpointIterator     l,u,p;
    BHPoint             highPoint, lowPoint;

    

    if (parentPanel->selectRegionIsOn())
	currentColour = (BHPColour)(parentPanel->getCurrentColour() + 1);
    else
	currentColour = BHPBlack;

    delta = parentPanel->getPenWidth() * (maxYval - minYval)/h() ;
    mindelta = trivmin(delta, parentPanel->getPenWidth() * (maxXval - minXval)/w() );
    
    highPoint = BHPoint(currentColour, 0, xval, yval+delta);
    lowPoint = BHPoint(currentColour, 0, xval, yval-delta);
    // and paint the point...
    u = std::upper_bound(allPoints.begin(), allPoints.end(), highPoint, cmpBHPoints());
    l = std::lower_bound(allPoints.begin(), allPoints.end(), lowPoint, cmpBHPoints());

    dbgprintf("Mouse coordinates: (%g, %g)\n", xval, yval);
    dbgprintf("Lower and upper bounds:\n");
    if (u != allPoints.end()) {
	dbgprintf("    Lower: (%g,%g)\n", (*l).Xvalue, (*l).Yvalue);
    }
    if (l != allPoints.end()) {
	dbgprintf("    Upper: (%g,%g)\n", (*u).Xvalue, (*u).Yvalue);
    }
    if ((l ==  allPoints.end()) && (u == allPoints.end())) {
	dbgprintf(" No upper or lower bounds !\n");
    }
    
    parentPanel->makeCurrent();

    fl_color((int)currentColour);
    
    for (p = l; p != u ; ++p) {
	distance = sqrt(((*p).Xvalue - xval) * ((*p).Xvalue  - xval) + ((*p).Yvalue - yval) * ((*p).Yvalue  - yval));
	if (distance <= mindelta) {
	    (*p).colour = currentColour;
	    drawPointWithJitter((*p).Xvalue, (*p).Yvalue, currentColour);
	    // this is the `linked window' bit.
	    IOBlackBox->setPixelInOverlay((*p).imgOffset, (int)currentColour);
	}
    }

    return retval;
}

void bivHistBox::draw(void)
{
    bhpointIterator  i;

    // superclass draw:
    draw_box();
    draw_label();

    // clip to scroll area dimensions
    parentPanel->getScrollClip(xo,yo,wo,ho);
    fl_clip(xo,yo,wo,ho);

    workoutCorrection();
    
    for (i = allPoints.begin() ; i != allPoints.end() ; ++i) {
	// draw with jitter
	drawPointWithJitter((*i).Xvalue, (*i).Yvalue, (*i).colour);
    }
    
    fl_pop_clip();
    return; 
}

// Work out the size of the jitter. Depends
// a lot on whether the data is integer or double.
void bivHistBox::workoutCorrection(void)
{
    if (dataIsInteger) {
	xCorrection = ((double)w()/(maxXval - minXval));
	yCorrection = ((double)h()/(maxYval - minYval));
    } else {
	xCorrection = 1.0;
	yCorrection = 1.0;
    }
}

// this assumes that the drawing environment is in place: i.e: within draw, or after make_current
// In this function, it turns out that INT_MAX is more portable than RAND_MAX.
void bivHistBox::drawPointWithJitter(double xval, double yval, BHPColour colour)
{
    int              xa, ya;
    double           realwidth,realheight;
    double           jitterX, jitterY;
    
    jitterX = (double)random()/INT_MAX * xCorrection;
    jitterY = (double)random()/INT_MAX * yCorrection;
    
    realwidth = (double)w() - xCorrection;
    realheight =  (double)h() - yCorrection ;
    
    xa = (int)(x() + realwidth*((xval-minXval)/(maxXval-minXval)) + jitterX);
    ya = (int)(y() + realheight*(1.0 - (yval-minYval)/(maxYval-minYval)) + jitterY);

    if ((xa >= xo) && (ya >= yo) && (xa < xo+wo) && (ya < yo+wo)) {
	fl_color(colour);
	fl_point(xa, ya);
    }

    return;
}

void bivHistBox::setData(int Xcomp, int Ycomp)
{
    bhpointIterator i;
    
    IOBlackBox->subsetForBH(allPoints, Xcomp, Ycomp, minXval, minYval, maxXval, maxYval);
    dbgprintf("Collected %d points, minX = %g, minY = %g\n"
	      "                     maxX = %g, maxY = %g\n",
	      allPoints.size(),
	      minXval, minYval,
	      maxXval, maxYval);

    // sample the data and determine if integer or not
    dataIsInteger = true;
    for (i = allPoints.begin(); i < allPoints.end(); i += 101) {
	if ((floor((*i).Xvalue) != (*i).Xvalue)
	    || (floor((*i).Yvalue) != (*i).Yvalue)) {
	    dataIsInteger = false;
	    break;
	}
    }
    if (dataIsInteger)
	dbgprintf("Data is integer\n");
    else
	dbgprintf("Data is floating point\n");
    
    // sort the data
	std::sort(allPoints.begin(), allPoints.end(), cmpBHPoints());
    
    return;
}

// the bivhist implementation
bivhist::bivhist()
{
    dbgprintf("Bivariate histogram dialog created\n");
    bivhistWindow=0; // fluid depend on this behaviour
    histoBox=0;
    return;
}

bivhist::~bivhist()
{
    dbgprintf("Bivariate histogram dialog destroyed\n");

    return;
}

void bivhist::show()
{
    bivhistWindow->show();
}

void bivhist::hide()
{
    bivhistWindow->hide();
}

// The coordinate change in this case is quite difficult
//
void bivhist::enlargeHisto()
{
    int x, y, w, h, x2, y2, w2, h2;
    int relx, rely, newx, newy;

    x = histoBox->x();
    y = histoBox->y();
    w = histoBox->w();
    h = histoBox->h();

    x2 = bivhistScroll->x();
    y2 = bivhistScroll->y();
    w2 = bivhistScroll->w();
    h2 = bivhistScroll->h();

    // relative coordinates
    relx = x2 - x;
    rely = y2 - y;

    newx = -2*relx-w2/2 + x2;
    newy = -2*rely-h2/2 + y2;

    dbgprintf("oldx: %d, relx: %d, newx, %d\n",
	      x, relx, newx);
    
    histoBox->resize(newx, newy, w*2, h*2);

    bivhistScroll->type(Fl_Scroll::BOTH);
    bivhistScroll->redraw();
}

// and this is just as hard
void bivhist::shrinkHisto()
{
    int x, y, w, h, x2, y2, w2, h2;
    int relx, rely, newx, newy;

    x = histoBox->x();
    y = histoBox->y();
    w = histoBox->w();
    h = histoBox->h();

    x2 = bivhistScroll->x();
    y2 = bivhistScroll->y();
    w2 = bivhistScroll->w();
    h2 = bivhistScroll->h();

    // relative coordinates
    relx = x2 - x;
    rely = y2 - y;

    newx = relx/2 + w2/4 + x2;
    newy = rely/2 + h2/4 + y2;
    
    histoBox->resize(newx, newy, w/2, h/2);
    
    bivhistScroll->type(Fl_Scroll::BOTH);
    bivhistScroll->redraw();
}

void bivhist::fitHisto()
{
    int x, y, w, h;

    x = bivhistScroll->x();
    y = bivhistScroll->y();
    w = bivhistScroll->w();
    h = bivhistScroll->h();
    
    histoBox->resize(x+BHP_MARGIN/2, y+BHP_MARGIN/2, w+BHP_MARGIN, h+BHP_MARGIN);

    bivhistScroll->type(0); // get rid of the scrollbars
    bivhistScroll->redraw();
}

// must be called first
void bivhist::setDefaults(void)
{
    // we are viewing comp. #1 vs. #2 by default.
    Xinput->value("0");
    Yinput->value("1");
    histoBox = 0; // very important
    
    return;
}

// the crux of the matter
void bivhist::computeNewBH()
{
    int    Xcomp, Ycomp;
    double minX, minY, maxX, maxY;
    // get all the elements
    Xcomp = atoi(Xinput->value());
    Ycomp = atoi(Yinput->value());
    // delete the previous canvas
    if (histoBox) {
	bivhistScroll->remove(histoBox);
	delete histoBox; // this should destroy all the data associated with histoBox
    }

    // create a new bivHistBox with the same dimensions as the current canvas
    histoBox = new bivHistBox(bivhistScroll->x()+BHP_MARGIN/2, bivhistScroll->y()+BHP_MARGIN/2,
			      bivhistScroll->w()-BHP_MARGIN, bivhistScroll->h()-BHP_MARGIN);

    histoBox->setParentPanel(this);
    bivhistScroll->add(histoBox);

    histoBox->setData(Xcomp, Ycomp);

    // set the limits
    histoBox->limits(minX, minY, maxX, maxY);
    absissaBox->setRange(minX, maxX);
    ordinateBox->setRange(minY, maxY);

    // redraw everything
    bivhistWindow->redraw();
    
    return;
}

void bivhist::setTransparency(double v)
{
    transparencyValue->value(v);
    fileprefs->overlayTransparency(v);
    mainViewer->displayCurrentImage(); // this should take the new transparency into account
}

////////// All the bivhist callbacks

void computebivhist_cb(Fl_Return_Button*, bivhist *panel)
{
    dbgprintf("Computing a new 2-D histogram\n");
    panel->computeNewBH();
}

void dismissbutton_cb(Fl_Button*, bivhist *panel)
{
    panel->hide();
}


void setpenwidth_cb(Fl_Roller *r, bivhist *panel)
{
    panel->setPenWidth(r->value());
}

void zoominbutton_cb(Fl_Button*, bivhist *panel)
{
    panel->enlargeHisto();
}

void zoomoutbutton_cb(Fl_Button*, bivhist *panel)
{
    panel->shrinkHisto();
}

void resetbutton_cb(Fl_Button*, bivhist *panel)
{
    panel->fitHisto();
}

void settransparency_cb(Fl_Roller *r, bivhist *panel)
{
    panel->setTransparency(r->value());
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /*------------------------------------------------------------------------
 *
 * The top-level code for point annotation.
 *
 * Hugues Talbot	13 Jan 2001
 *
 * Following discussions with PSL. 
 *      
 *-----------------------------------------------------------------------*/

#include "imview.hxx"
#include "annotatePoints.hxx"
#include "pointfile.hxx"

extern pointfile    *PtFileMngr;

annotatept::annotatept()
{
    dbgprintf("Point annotation dialog created\n");
    annotateWindow = 0; // fluid depends on this
    return;
}

annotatept::~annotatept()
{
    dbgprintf("Point annotation dialog destroyed\n");
    return;
}

void annotatept::setDefaults()
{
    return;
}

void annotatept::show()
{
    annotateWindow->show();
}

void annotatept::hide()
{
    annotateWindow->hide();
}

void annotatept::getPointParams(void)
{
    int          font, size, length;
    string       ann;
    Fl_Color     col;
    str_quadrant q;
    bool         h;
    int          ptsize;
    
    if (PtFileMngr->getNearestPointParameters(X_,Y_, ann, col, font, size, length, q, h, ptsize)) {
	setAnnotation(ann.c_str());
	fontChoice->value(font);
	fontColourChoice->value(col);
	fontSizeSlider->value(size);
	distanceValue->value(length);
	fontQuadrant = q;
	hide(h);
	setPointSize(ptsize);
    }
    // else do nothing.
}

// the annotatept callbacks

void setdistance_cb(Fl_Roller *r, annotatept *panel)
{
    panel->setDistance((int)(r->value())); // forward value to Value holder
}

void cancelbutton_cb(Fl_Button *b, annotatept *panel)
{
    panel->hide();
}

void okbutton_cb(Fl_Return_Button *b, annotatept *panel)
{
    int    xx, yy;
    
    panel->getXY(xx,yy);
    PtFileMngr->annotatePoint(xx, yy);
    
    panel->hide();
}

void annotateinput_cb(Fl_Input *, annotatept *)
{
    return;
}

void SE_cb(Fl_Round_Button *, annotatept *panel)
{
    panel->setFontQuadrant(STR_SE);
}

void NE_cb(Fl_Round_Button *, annotatept *panel)
{
    panel->setFontQuadrant(STR_NE);
}

void NW_cb(Fl_Round_Button *, annotatept *panel)
{
    panel->setFontQuadrant(STR_NW);
}

void SW_cb(Fl_Round_Button *, annotatept *panel)
{
    panel->setFontQuadrant(STR_SW);
}


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   /* config.h.in.  Generated automatically from configure.in by autoheader.  */
/* Hacked by hand by Hugues Talbot	 8 Aug 2000 */

/* Guards */

#ifndef CONFIG_H
#define CONFIG_H

/* these are my own! Hugues Talbot	 7 Aug 2000 */

#if defined(WIN32) && !defined(__CYGWIN__)
#	define WIN32_NOTCYGWIN 1
#else
#	undef  WIN32_NOTCYGWIN
#endif

/* imview version */
#define IMVIEW_MAJOR 0
#define IMVIEW_MINOR 0
#define IMVIEW_MICRO 0

/* Define if you have the Magick library (-lMagick).  */
#undef HAVE_MAGICK 

/* Define if if ImageMagick uses the new exception structure */
#undef MAGICK_USES_REASON

/* Define if if ImageMagick uses InitializeMagick */
#undef MAGICK_USES_INIT

/* Define if ImageMagick requires extra reference to exceptions in arguments */
#undef MAGICK_NEEDS_MORE_EXCEPTION

/* define is accept() uses socklen_t */
#undef ACCEPT_USES_SOCKLEN_T

/* Define if you have the jpeg library (-ljpeg).  */
#undef HAVE_JPEG 

/* Define if you have the pthread library (-lpthread).  */
#undef HAVE_PTHREADS 

/* Define if we only really have DEC threads, precursors to pthreads */
#undef HAVE_DECTHREADS

/* Define if you have the tiff library (-ltiff).  */
#undef HAVE_TIFF 

/* define if you have the Unix SYSV IPC */
#undef HAVE_SYSV_IPC

/* define if you have the Unix POSIX IPC */
#undef HAVE_POSIX_IPC 

/* when using POSIX IPC, can we specify a path under /tmp or is it implicit? */
#undef POSIX_IPC_PREFIX

/* Define if you have the GL library (-lGL).  */
#undef HAVE_GL

/* define if your multiple-screen system supports xinerama -- a way to merge screens seamlessly */
#undef HAVE_XINERAMA

/* stupid C++ ANSI compatibility issues */
/* define if your compiler supports class member templates */
#undef HAVE_MEMBER_TEMPLATES

/* define if one can have function template without a template argument */
#undef HAVE_TEMPLATE_KEYWORD_QUALIFIER

/* define if the compiler supports templates as template arguments */
#undef HAVE_TEMPLATES_AS_TEMPLATE_ARGUMENTS

/* define if the compiler supports default template parameters */
#undef HAVE_DEFAULT_TEMPLATE_PARAMETERS

/* define if the compiler knows about standard char traits */
#undef HAVE_STANDARD_CHAR_TRAITS

/* define if your compiler rejects array casts in templates */
#undef HAVE_TEMPLATE_CAST_ARRAY

/* CAREFUL, for these the *VALUE* is used, not the definition! */
/* define if you have scandir */
#define HAVE_SCANDIR 0

/* define if you have snprintf */
#define HAVE_SNPRINTF 0

/* define if you have vsnprintf */
#define HAVE_VSNPRINTF 0

/* sleep functions */
#undef HAVE_USLEEP
#undef HAVE_NANOSLEEP

/* Define the installation path */
#undef PrefPath

/* these were generated by autoheader (I think...) */

/* Define to empty if the keyword does not work.  */
#undef const

/* Define as the return type of signal handlers (int or void).  */
#undef RETSIGTYPE

/* Define if the setvbuf function takes the buffering type as its second
   argument and the buffer pointer as the third, as on System V
   before release 3.  */
#undef SETVBUF_REVERSED

/* Define to `unsigned' if <sys/types.h> doesn't define.  */
#undef size_t

/* Define if you have the ANSI C header files.  */
#undef STDC_HEADERS

/* Define if you can safely include both <sys/time.h> and <time.h>.  */
#undef TIME_WITH_SYS_TIME

/* Define if your <sys/time.h> declares struct tm.  */
#undef TM_IN_SYS_TIME

/* Define if you have the getcwd function.  */
#undef HAVE_GETCWD

/* Define if you have the select function.  */
#undef HAVE_SELECT

/* Define if you have the socket function.  */
#undef HAVE_SOCKET

/* Define if you have the strdup function.  */
#undef HAVE_STRDUP

/* Define if you have the strerror function.  */
#undef HAVE_STRERROR

/* Define if you have the strstr function.  */
#undef HAVE_STRSTR

/* Define if you have the strtol function.  */
#undef HAVE_STRTOL

/* Define if you have the uname function.  */
#undef HAVE_UNAME

/* Define if you have the <dirent.h> header file.  */
#undef HAVE_DIRENT_H

/* Define if you have the <fcntl.h> header file.  */
#undef HAVE_FCNTL_H

/* Define if you have the <limits.h> header file.  */
#undef HAVE_LIMITS_H

/* Define if you have the <malloc.h> header file.  */
#undef HAVE_MALLOC_H

/* Define if you have the <ndir.h> header file.  */
#undef HAVE_NDIR_H

/* Define if you have the <sys/dir.h> header file.  */
#undef HAVE_SYS_DIR_H

/* Define if you have the <sys/ndir.h> header file.  */
#undef HAVE_SYS_NDIR_H

/* Define if you have the <sys/time.h> header file.  */
#undef HAVE_SYS_TIME_H

/* Define if you have the <unistd.h> header file.  */
#undef HAVE_UNISTD_H

/* Define if you don't have vprintf but do have _doprnt.  */
#undef HAVE_DOPRNT

/* Define if you have the vprintf function.  */
#undef HAVE_VPRINTF

#endif // CONFIG_H
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /*
 * $Id: transferRGBBox.hxx,v 4.0 2003/04/28 14:40:15 hut66au Exp $
 *
 * Imview, the portable image analysis application
 * http://www.cmis.csiro.au/Hugues.Talbot/imview
 * ----------------------------------------------------------
 *
 *  Imview is an attempt to provide an image display application
 *  suitable for professional image analysis. It was started in
 *  1997 and is mostly the result of the efforts of Hugues Talbot,
 *  Image Analysis Project, CSIRO Mathematical and Information
 *  Sciences, with help from others (see the CREDITS files for
 *  more information)
 *
 *  Imview is Copyrighted (C) 1997-2001 by Hugues Talbot and was
 *  supported in parts by the Australian Commonwealth Science and 
 *  Industry Research Organisation. Please see the COPYRIGHT file 
 *  for full details. Imview also includes the contributions of 
 *  many others. Please see the CREDITS file for full details.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
 * */

/*------------------------------------------------------------------------
 *
 * A subclass of Box which is used for brightness/contrast/etc.
 * This is a superclass for the actually interesting ones.
 * 
 *
 * Hugues Talbot	 3 May 1998
 *      
 *-----------------------------------------------------------------------*/

#ifndef RGBTRANSFERBOX_H
#define RGBTRANSFERBOX_H

#include <FL/Fl.H>
#include <FL/Fl_Box.H>
#include <FL/fl_draw.H>
#include "imview.hxx"

class myTransferRGBBox : public Fl_Box {
private:
    bool   hasReleaseOccured;
    unsigned char  RGBmap[3][256];
    virtual void   trueRedrawHook() { } // called when the main window is also redrawn
    void   findRGBExtremes(double x0[3], double y0[3], double x1[3], double y1[3],
			   double startX[3], double startY[3],
			   double endX[3], double endY[3]);
    double currContrast[3];
    double currBrightness[3];
    double currGamma[3];
    double gammas[3], leftX[3], leftY[3], rightX[3], rightY[3];

    
protected:
    void   draw(); // I'm expecting to have to subclass this
    void   computeRGBEndPoints(double x0[3], double y0[3], double x1[3], double y1[3]);
    void   buildRGBFunction(double x0[3], double y0[3], double x1[3], double y13[3]);

public:

    myTransferRGBBox(int x, int y, int w, int h, const char *l=0)
       : Fl_Box(x,y,w,h,l) { hasReleaseOccured = false; }

    myTransferRGBBox(uchar b, int x, int y, int w, int h, const char *l)
        : Fl_Box(x,y,w,h,l) { hasReleaseOccured = false; }

    ~myTransferRGBBox();

    // standard resize
    virtual void resize(int x,int y,int w, int h) { 
	dbgprintf("TransferRGBBox %p: resized to (%dx%d+%d+%d)\n",
		  this,w,h,x,y);
	Fl_Box::resize(x,y,w,h); 
    }
	

    void setRGBParms(double contrast[3], double bright[3], double gamma[3]);
    void getRGBParms(double &RC, double &RB, double &RG,
		     double &GC, double &GB, double &GG,
		     double &BC, double &BB, double &BG) {
      RC = currContrast[0]; RB = currBrightness[0] ; RG = currGamma[0];
      GC = currContrast[1]; GB = currBrightness[1] ; GG = currGamma[1];
      BC = currContrast[2]; BB = currBrightness[2] ; BG = currGamma[2];
    }

    void causeMainWindowRedraw();
    void forceBuildMap() {
      double x0[3], y0[3], x1[3], y1[3];
      x0[0] = y0[0] = x1[0] = y1[0] = 0.0;
      x0[1] = y0[1] = x1[1] = y1[1] = 0.0;
      x0[2] = y0[2] = x1[2] = y1[2] = 0.0;
      computeRGBEndPoints(x0, y0, x1, y1);
      buildRGBFunction(x0, y0, x1, y1);
    }
    void setRelease(bool s) { hasReleaseOccured = s;}
    // gammas
    double getCurrGamma(int i) {return currGamma[i];}
    // 
    double getCurrBrightness(int i) {return currBrightness[i];}
    //
    double getCurrRContrast(int i) {return currContrast[i];}
    
};


#endif // RGBTRANSFERBOX_H
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Changes to Imview-1.1.7: Hugues Talbot <hugues.talbot@csiro.au> 25 June 2004 --

Changes to Imview-1.1.6: Hugues Talbot <hugues.talbot@csiro.au> 22 June 2004 -- 22 June 2004
	* Drawing point mode
	* Modified the toolbar a bit (now with proper tooltips)
	* Fixed bug with redrawing of points re-read from a pointfile (they were filled in)
	* Fixed break immediately following a break in pointfile (no longer allowed)
	* Fixed add point mode, which required shift-rightclick to make a break. Use shift-R to
	  unzoom.

Changes to Imview-1.1.5: Hugues Talbot <hugues.talbot@csiro.au> 01 June 2004 -- 22 June 2004
	* Improved PS reader, somewhat inspired by the reader from ImageMagick.
	* Making imview compile again on Cygwin and Mingw. Currently it compile on mingw32 cross-compiled 
	  from Linux but doesn't run (why?)
	* Changes in configure.in due to feedback from users (missing libraries, better understanding of
	  fltk-config, etc).
	
Changes to Imview-1.1.4: Hugues Talbot <hugues.talbot@csiro.au> 22 December 2003 -- 01 June 2004
	* Made imview compile and run fine again on MacOS/X. This requires version 10.3.x at present, I don't have 
	  access to any other. The main part was the redesign of the jobbg() function which uses fork(). Now there
	  is a double redirection in there as under Carbon, using the GUI is forbidden after fork(), one has to do
	  an exec(). 

Changes to Imview-1.1.3: Hugues Talbot <hugues.talbot@csiro.au> 08-November 2003 -- 22 December 2003
	* Corrected several misconceptions about nbcomps vs. nbsamples
	* As a result, the spectrum panel now works again ; as this is important, this is a new bugfix release.
	* Jan (jan@dminfo.com) changed some interal logic in the configure.in file
	* Made it compile with CYGWIN again

Changes to Imview-1.1.2: Hugues Talbot <hugues.talbot@csiro.au> 15 May 2003 -- 07 November 2003
	* Alt-shift-R strong redraws and reverts the zoom factor to 1.0
	* Non-alt zoom keys (i.e: < > . and ,) now change the *default* zoom factor. 
	* Fixed a redraw problem in 1.1.1, scrollbar not getting overwritten in window-fit-image
	  display policy mode. Did this without	needing yet another redraw.
	* Removed dependency on old HelpDialog, now using the fltk-1.1.x standard version.
	* Added fullscreen mode, the image is shown full screen (Xinerama aware) with
	  no menu and a black border and the image is made to fit the screen as well
	  as possible. Not tested with Windows.
	* Added 2 display modes: image fits to window and image/window decoupled
	* Fixed bug in handling of profile of images with number of components equal
	  to precisely 1 or 3.
	* Global min/max for 3D and multispectral images. Cached for 3D (no point for
	  others)
	* Slider / input value dialog for selecting sample -- 3D, spectrum, frame
	* Separated spectrum and 3D depth profiles (previously merged).
	* More tooltips.
	* Fixed underflow bug in my_Image.cxx introduced by using char* instead of uchar*.
	* Changed preferences to the FLTK mechanism (simpler and somewhat more powerful).
	
Changes to Imview-1.1.1: Hugues Talbot <hugues.talbot@csiro.au> 28 Apr 2003 -- 15 May 2003
	* Ported to FLTK-1.1.x
	* Using more powerful file chooser (choose multiple files, create directory, preview)
	* Added a few tooltips (just to test!) to 1-D profile dialog.
	* Imported all relevant changes from 1.0.1

Changes to Imview-1.1.0: Hugues Talbot <hugues.talbot@csiro.au> 28 Apr 2003 -- 28 Apr 2003
	* Branch to work on new version based on FLTK 1.1.x
	
Changes to Imview-1.0.1: Hugues Talbot <hugues.talbot@cmis.csiro.au> 28 Apr 2003 -- 13 May 2003
	* This is a bug fix release, no new feature
	* Branch from main trunk for maintenance
	* Cosmetic changes: spectrum and profile panels
	* Changes in ASCII documentation (README)
	* Vast but subtle changes in configure.in, Makefile.in -- Imview compiles again everywhere.
	* Changes for icc (Intel Compiler) 7.1 on Linux
	* Make rpm works again
	* Added <make manifest> target and MANIFEST file
	* Modified <make checkout> to not make it require a tag (harder with branching)
	* Added changes to socketstream.cxx to make it compile with gcc-2.95.x, which all lack
	char traits
	* Added compilation HOWTO for MSVC++ 6.0, including how to compile the various libraries
	* Bug fix in gplot2.cxx, no longer crashes if the pipe does not open (as always on Windows)
	* Added missing stub for overlay
	* Added .iss file for windows installer
	* Added config.sub and config.guess -- Why are those suddently necessary ?
	* Checked for more ISO/C++ non conformance
	* Added switch to ./configure to specify an fltk compile directory (not necessarily installed).
	* Many many changes in configure.in to make the build system allegedly more robust. Ha.

Changes to Imview-1.0.0: Hugues Talbot <hugues.talbot@cmis.csiro.au> 28 Apr 2002 -- 28 Apr 2003
	* Branch to continue working with FLTK 1.0.x version.
	
Changes to Imview-0.9.9: Hugues Talbot <hugues.talbot@cmis.csiro.au> 18 Apr 2002 -- 28 Apr 2003
	* Fixed small problem with NULL image list
	* Added backspace as a shortcut to go back in the image list
	* Fixed number width problem in profile box.
	* Compiled for Tru64 and Solaris, numerous little fixes in the distribution.
	* Put the HTML online documentation in doc/
	* Revamped web site http://www.cmis.csiro.au/Hugues.Talbot/imview
	* Officially released imview (to the FLTK mailing list and the Bazaar)
	* Fixed bug in point list handling on windows (when deleting points using the selection tool)
	* Compiled version for windows again
	* Fixed bug in authentication of usernames with spaces in them (common on windows)
	* Fixed bug in reading of Z-IMAGE file formats with DOUBLE data type: there were potential
	  for an infinite loop.
	* A little more STL-compliance in pointfile.cxx (removed one hand-made loop with 3 algorithms).
	* Fixed more bugs about username with spaces in them. NOTE: client code needs to be fixed as well.
	* Added the -fit switch for image display. In this mode (stretch to fit) imview does not allow
	  scrollbars: the image always fits the window. Arbitrary aspect ratios are allowed too.
	* TCP/IP client code linked in (simple TCP socket wrapper).
	* Added the ability to link two or more imview windows (zooming on one zooms on the other).
	* Added support for POSIX IPC. Unfortunately only works well on Tru64 at present.
	* Fixed numerous issues with dialogs which resize very poorly. Resizing dialogs that allow 
	  it should not result in larger buttons, etc.
	* Added the -fit options to emulate a `stretch to fit' mode to imview. In that mode
	  resizing the main window is unconstrained and the image in it fills the window completely. 
	  changing the aspect ratio of an image is therefore possible. This mode is incompatible with
	  normal zoom.
	* Main menu can be hidden and shown again dynamically.
	* Imview can be used as a plugin for Mozilla (see Mozilla doc, nothing special, specify `imview'
	  as the window title.
	* Saving of the raw data has been added. This is very useful in combination with the dialog
	  that allows reading of arbitrary uncompressed image data. Previously once the unknown format
	  image has been loaded nothing could be done with it but view it. You could save it if it was
	  2D, 8-bit grey-level or RGB data. However if it was 3D or non-8-bit data or multispectral then
	  nothing much could be done.
	
Changes to Imview-0.9.8: Hugues Talbot <hugues.talbot@cmis.csiro.au> 1 Jun 2001 -- 17 Apr 2002
	* Changed config.h to imcfg.h and made sure we are including the right
	  one on top of that. 
	* Ed found a new bug in window positioning, still partly eluding me,
	  under some circumstances dealing with windows manager preferences
	  and display command through the interpreter. Now the main window
	  gets the right size but still gets shifted to the middle of the screen.
	* fixed bug with zoom + pan (hopefully), using synchronization option (-sync)
	* added a bunch of command-line options to hide the menubar, disable the menubar,
	  disable some keyboard shortcut, and prevent users quitting imview.
	* added a bunch of show/hide commands through the interpreter to show or
	  hide each imview dialog boxes.
	* added a pan command (much easier than zoom box).
	* optimized pointfile handling with line drawing. Imview was very slow
	  at drawing lines when the number of point exceeded a few hundreds.
	* changed the pointfile saving semantic. Now a pointfile loaded into
 	 an image will not be modified without the user's interaction (before it
	 was overwritten on image swapping and quitting the program, now a backup
	 is made, with the name <poinfile name>.bak).
	* Annick pointed out a couple of bugs in the profile box.
	* Empty pointfiles now get saved to empty if done through the menu (never by default).
	* Fixed bug in profile line redraw
	* Fixed bug in menubar management (bug occured when an image did not open properly: 
	  path to image was freed too early)
	* Fixed bug in readpnm. Even though an RGB image was read only buffp only had room
	  for one buffer.
	* Added missing hiding button on the toolbar.
	* Changed the splash screen to a much nicer image (some people don't like it, eh).
	* RGB transfer panel (major piece of work).

Changes to Imview-0.9.8: Kevin Cheong <kevin.cheong@cmis.csiro.au> 	
	* Added An extra icon at the end of the toolbar + cb that hides the toobar.
	Currently I'm reusing one of the other XPMs. We'll need an	
	appropriate pixmap for "hiding".
	* added Support for auto-loading an image's LUTs, if it exists.
	* Support for auto-loading an image's pointfile, if it exists.
	   Logic still needs to be sorted out here.
	* Small updates to a few files, so that it'll compile on MSVC++,
   	however I've not committed the .dsp/.dsw files. Still playing
   	around with them. I don't know why (yet) the pop consoles
   	when imview is executed.
	
Changes to Imview-0.9.7: Hugues Talbot	<hugues.talbot@cmis.csiro.au> 7 Mar 2001 -- 31 Mar 2001
	* Fixed very weird crashes with -server -debug under DEC Unix 4.x
	* Removed the check for inline in autoconf. This is creating too much trouble!
	* fixed incorrect saving of greyscale images via the ImageMagick
	  interface.
	* Fixed the named pipe problem (example in the client directory).
	* *Maybe* fixed the redirection problem (> /dev/null => port number
	  not saved).	
	* Imview compiles and works fine on Solaris 2.5.1 again.
	* Added clearing the pointfile from the socket.
	* Fixed bug in ApplyParameter, which was called sometimes when
	  no images were loaded.
	* added -no_dblbuf option to turn off double-buffering at zoom = 1.0,
	  which sometimes creates problems. 
	* added access to (some) imview variables from the interpreter.
	* fixed offset not saved when saving images to formats that support it.
	
	
Changes to Imview-0.9.6: Hugues Talbot <hugues.talbot@cmis.csiro.au> 15 Feb 2001 -- 6 Mar 2001
	* Fixed flip + annotation problem. 
	* Overlay over sockets now work.
	* Fixed saved pointfile to wrong format when annotation present
	but image still 2D grey-level only.
	* started working on overlay again. Added transparency. Alpha
	blending is easy but there is an issue with keeping the original
	data to access it again (as point information, profiles, etc).
	For the moment there is a hack in place.
	* Work on the overlay under way. I'm using a parallel mechanism
	to the normal I/O. This means writing another helper function
	for each image type, but is more efficient than simply re-using
	the existing I/O, which entails a copy of the data structures. 
	For the moment only TIFF & Z-images. Other types to follow soon.
	* Made the rendering process more consitent. CLUT, gamma and
	overlay are now compatible with each other to some degree (not
	perfect yet).
	* Changed the convertXXX functions to a template, and added a
	number of features to the conversion. RGB images can have their
	3 components separated, fitchar can be done on a sample basis
	or on all samples, non-char images that can be cast to char
	don't need to be now.
	* Added new features to points: they can be hidden and can
	have varying radii. Also an annotated point appears filled
	in now (rather than just the outline of a disk).

	o new bug: redirection of stdout to /dev/null interferes with
	server, try ./imview -server -portfile toto >/dev/null
	it display [0] in the title. The server is started correctly
	though

	
Changes to Imview-0.9.5:
	* bug fix: the -display xx:xx switch was broken.
	
Changes to Imview-0.9.4:
	* fixed bug with mass point deletion
	* improved points rotation (now rotates with the image). Still broken when
	reading the image back in

Changes to Imview-0.9.3:
	* More comprehensive configure.in tests for C++ compliance. Lots
	  of problems with templates and array arguments! Both DEC cxx and g++
	  are bad pieces of work there.
	* Made multi-platform build work. 
	* Point annotation now works
	* Toolbar
	  o  Mode (Zoom, measure, select, add, remove, edit)
	  o  Simple transforms (Rotate, flips)
	
Changes to Imview-0.9.2:
	* Re-organized client help.
	* Made client code part of distribution.
	* Added raise, hide and size function for client.
	* Build to RPM now works.
	
Changes to Imview-0.9.1:

	* Added licence & (no) warranty menu items
	* Added install target to makefile

Changes to Imview-0.9.0:

	* This is the first pre-release version. 
	* See doc/imview.tex for a complete log of changes since 0.0.1
	* PDF documentation (LaTeXPdf)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      #! /bin/sh
	
mkdir /tmp/imview
mkdir /tmp/imview/io
mkdir /tmp/imview/server

for file in *.h *.c *.cxx *.hxx io/*.cxx io/*.hxx server/*.cxx server/*.hxx ; do
    tmpfile=/tmp/imview/$file
    sed -n -e '/^.*/p' -e '/^ \* \*\//q' $file > /tmp/imview/oldheader
    nblines=`wc -l /tmp/imview/oldheader | awk '{print $1}'`
    sed -e "1,$nblines d" $file > $tmpfile
    cat header.txt $tmpfile > $file
done

rm -rf /tmp/imview
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       /*
 * $Id: patchlevel.h,v 4.54 2005/02/05 15:10:15 hut66au Exp $
 *
 * Imview, the portable image analysis application
 * http://www.cmis.csiro.au/Hugues.Talbot/imview
 * ----------------------------------------------------------
 *
 *  Imview is an attempt to provide an image display application
 *  suitable for professional image analysis. It was started in
 *  1997 and is mostly the result of the efforts of Hugues Talbot,
 *  Image Analysis Project, CSIRO Mathematical and Information
 *  Sciences, with help from others (see the CREDITS files for
 *  more information)
 *
 *  Most of imview is Copyrighted (C) 1997-2001 by Hugues Talbot and was
 *  supported in parts by the Australian Commonwealth Science and 
 *  Industry Research Organisation. Please see the COPYRIGHT file 
 *  for full details. Imview also includes the contributions of 
 *  many others. Please see the CREDITS file for full details.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
 * */

/*------------------------------------------------------------------------
 *
 * This file takes care of the versioning (and of the last builder)
 * Do not edit it by hand, it gets modified by the program `buildnb'
 * in the top-level directory.
 *
 * Hugues Talbot	 8 Aug 2000
 *      
 *-----------------------------------------------------------------------*/

#define XSTR(S) STR(S)
#define STR(NAME) #NAME

/* - Changes below this line will get deleted - LEAVE THINGS AS THEY ARE -*/
const char *patchlevel=XSTR(IMVIEW_MAJOR) "." XSTR(IMVIEW_MINOR) "." XSTR(IMVIEW_MICRO);
int buildnb = 3 ;
int totalbnb = 3679 ;
char *builder = "" ;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 # $Id: imview.list.in,v 4.0 2003/04/28 14:39:50 hut66au Exp $
#
# Packaging information for the imview software using the ESP Package Manager
#
# Copyright Hugues Talbot 2001   hut66au@users.sourceforge.net
#
#

# directories
$prefix=@prefix@
$srcdir=@srcdir@

# Product information
%product imview Image Viewing and Analysis
%copyright 1997-2001 Hugues Talbot, All Rights Reserved.
%vendor Commonwealth Scientific and Industrial Research Organization (CSIRO)
%license ${srcdir}/COPYING
%readme ${srcdir}/distrib/binaries/README
%description Image display and analysis tool
%version @MAJOR_VERSION@.@MINOR_VERSION@.@MICRO_VERSION@
%prefix $prefix
%relocatable true

# post installation script
%install share/Imview/imview_post_install.sh



%system all
# directories
d 0755 root sys share/Imview/doc
d 0755 root sys share/Imview

# Executables
f 0755 root sys bin/imview $srcdir/support/imview.sh
f 0755 root sys bin/imview.bin imview
f 0755 root sys share/Imview/imview_post_install.sh ${srcdir}/distrib/binaries/imview_post_install.sh

# Online documentation
f 0644 root sys share/Imview/doc/README $srcdir/README
f 0644 root sys share/Imview/doc/COPYING $srcdir/COPYING
f 0644 root sys share/Imview/doc/ChangeLog $srcdir/ChangeLog
f 0644 root sys share/Imview/doc/ $srcdir/doc/quickhelp*.html
f 0644 root sys share/Imview/doc/gpl.html $srcdir/doc/gpl.html
f 0644 root sys share/Imview/doc/warranty.html $srcdir/doc/warranty.html

# Man page
f 0644 root sys man/man1/imview.1 $srcdir/doc/imview.1

# look-up tables
f 0644 root sys share/Imview/NeWSfb.lut $srcdir/support/NeWSfb.lut
f 0644 root sys share/Imview/binary.lut $srcdir/support/binary.lut
f 0644 root sys share/Imview/blue.lut $srcdir/support/blue.lut
f 0644 root sys share/Imview/green.lut $srcdir/support/green.lut
f 0644 root sys share/Imview/heat.lut $srcdir/support/heat.lut
f 0644 root sys share/Imview/hue.lut $srcdir/support/hue.lut
f 0644 root sys share/Imview/inv_binary.lut $srcdir/support/inv_binary.lut
f 0644 root sys share/Imview/inv_grey.lut $srcdir/support/inv_grey.lut
f 0644 root sys share/Imview/inv_heat.lut $srcdir/support/inv_heat.lut
f 0644 root sys share/Imview/inv_rainbow.lut $srcdir/support/inv_rainbow.lut
f 0644 root sys share/Imview/inv_spec.lut $srcdir/support/inv_spec.lut
f 0644 root sys share/Imview/inv_spiral.lut $srcdir/support/inv_spiral.lut
f 0644 root sys share/Imview/overlay_blue.lut $srcdir/support/overlay_blue.lut
f 0644 root sys share/Imview/overlay_cyan.lut $srcdir/support/overlay_cyan.lut
f 0644 root sys share/Imview/overlay_green.lut $srcdir/support/overlay_green.lut
f 0644 root sys share/Imview/overlay_magenta.lut $srcdir/support/overlay_magenta.lut
f 0644 root sys share/Imview/overlay_red.lut $srcdir/support/overlay_red.lut
f 0644 root sys share/Imview/overlay_yellow.lut $srcdir/support/overlay_yellow.lut
f 0644 root sys share/Imview/rainbow.lut $srcdir/support/rainbow.lut
f 0644 root sys share/Imview/ramps.lut $srcdir/support/ramps.lut
f 0644 root sys share/Imview/red.lut $srcdir/support/red.lut
f 0644 root sys share/Imview/regions.lut $srcdir/support/regions.lut
f 0644 root sys share/Imview/regions1.lut $srcdir/support/regions1.lut
f 0644 root sys share/Imview/rg.lut $srcdir/support/rg.lut
f 0644 root sys share/Imview/rgb.lut $srcdir/support/rgb.lut
f 0644 root sys share/Imview/spectrum.lut $srcdir/support/spectrum.lut
f 0644 root sys share/Imview/spiral.lut $srcdir/support/spiral.lut
f 0644 root sys share/Imview/std_grey.lut $srcdir/support/std_grey.lut

# Splash image
f 0644 root sys share/Imview/imview_banner.jpg $srcdir/support/imview_banner.jpg

# Man pages

#
# End of "$Id: imview.list.in,v 4.0 2003/04/28 14:39:50 hut66au Exp $".
#
                                                                                                                                                                                                                                                                                                                                                                                                                                  /*
 * $Id: my_Image.hxx,v 4.0 2003/04/28 14:39:53 hut66au Exp $
 *
 * Imview, the portable image analysis application
 * http://www.cmis.csiro.au/Hugues.Talbot/imview
 * ----------------------------------------------------------
 *
 *  Imview is an attempt to provide an image display application
 *  suitable for professional image analysis. It was started in
 *  1997 and is mostly the result of the efforts of Hugues Talbot,
 *  Image Analysis Project, CSIRO Mathematical and Information
 *  Sciences, with help from others (see the CREDITS files for
 *  more information)
 *
 *  Imview is Copyrighted (C) 1997-2001 by Hugues Talbot and was
 *  supported in parts by the Australian Commonwealth Science and 
 *  Industry Research Organisation. Please see the COPYRIGHT file 
 *  for full details. Imview also includes the contributions of 
 *  many others. Please see the CREDITS file for full details.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
 * */

/*------------------------------------------------------------------------
 *
 * Image drawing complementary functions.
 *      
 *-----------------------------------------------------------------------*/

#ifndef MY_IMAGE_H
#define MY_IMAGE_H
void freeOffScreenPixmap(Fl_RGB_Image *b);
void fl_draw_clipped(Fl_RGB_Image *b,int ox,int oy,int x,int y,int w,int h);
void fl_draw_clipped_nobuf(Fl_RGB_Image *b,int ox,int oy,int x,int y,int w,int h);
void fl_draw_zcnb(Fl_RGB_Image *b,int ox,int oy,int ow, int oh,int x,int y,int w,int h,int isSmooth);
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             /*
 * $Id: StatusBox.hxx,v 4.0 2003/04/28 14:39:37 hut66au Exp $
 *
 * Imview, the portable image analysis application
 * http://www.cmis.csiro.au/Hugues.Talbot/imview
 * ----------------------------------------------------------
 *
 *  Imview is an attempt to provide an image display application
 *  suitable for professional image analysis. It was started in
 *  1997 and is mostly the result of the efforts of Hugues Talbot,
 *  Image Analysis Project, CSIRO Mathematical and Information
 *  Sciences, with help from others (see the CREDITS files for
 *  more information)
 *
 *  Imview is Copyrighted (C) 1997-2001 by Hugues Talbot and was
 *  supported in parts by the Australian Commonwealth Science and 
 *  Industry Research Organisation. Please see the COPYRIGHT file 
 *  for full details. Imview also includes the contributions of 
 *  many others. Please see the CREDITS file for full details.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
 * */

/*  Copyright (C) 19998  Craig P. Earls

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

/*
 *HOWTO:
 *
 * Simply #include the header file "StatusBox.hpp" in any source code
 * you want use it from. Three MACROS are defined for simple messages:

 STATUS("This is the message");
 STATUS(somestring);
 WARNING("A warning");
 ERROR("An Error");

 * These macros accept a single character string argument. The only
 * differences are the color fo the text output to the list. If you
 * would like to send more detailed information with formatting you
 * must call status(char *format, ...) directly as follows:

 StatusBox::Instance()->status(
 "I want to print out the following %d %f", anInteger, aFloat);

 or use warning(char *format, ...), or error(char *format, ...);

 * StatusBox is implemented as a singleton, which means the constructor
 * is protected and there is a single static instance. You can only
 * get to the object using the Instance() method, which returns a
 * pointer to the static object. This means all status messages go the
 * same place. This a convenient substitute for a terminal window */

#ifndef StatusBox_hpp
#define StatusBox_hpp
#include <FL/Fl.H>
#include <FL/Fl_Browser.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Window.H>
#include <stdarg.h>

#define DEBUG 

#ifdef DEBUG
#define IM_STATUS(a) StatusBox::Instance()->status(a);
#define IM_WARNING(a) StatusBox::Instance()->warning(a);
#define IM_ERROR(a) StatusBox::Instance()->error(a);
#else
#define IM_STATUS(a) {};
#define IM_WARNING(a) {}
#define IM_ERROR(a) {};
#endif

class StatusBox : public Fl_Window {
public:
    static StatusBox *Instance();
    void status(char *s, ...);
    void warning(char *s, ...);
    void error(char *s, ...);
    
protected:
    StatusBox(int x=0, int y=0, int w=428, int h=171, char *l="Status");
private:
    Fl_Browser *list;
    Fl_Button *clear;

    inline void cb_clear_i(Fl_Button*, void*);
    static void cb_clear(Fl_Button*, void*);
    Fl_Button *hideb;

    static StatusBox *_Instance;
    
};
#endif
/*
 * Local variables:
 *  compile-command: "make -C .. -k"
 * End:
 */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   #! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain

# $Id: mkinstalldirs,v 4.0 2003/04/28 14:39:53 hut66au Exp $

errstatus=0

for file
do
   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
   shift

   pathcomp=
   for d
   do
     pathcomp="$pathcomp$d"
     case "$pathcomp" in
       -* ) pathcomp=./$pathcomp ;;
     esac

     if test ! -d "$pathcomp"; then
        echo "mkdir $pathcomp"

        mkdir "$pathcomp" || lasterr=$?

        if test ! -d "$pathcomp"; then
  	  errstatus=$lasterr
        fi
     fi

     pathcomp="$pathcomp/"
   done
done

exit $errstatus

# mkinstalldirs ends here
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           /*
 * $Id: imtransform.cxx,v 4.2 2004/05/23 23:13:51 hut66au Exp $
 *
 * Imview, the portable image analysis application
 * http://www.cmis.csiro.au/Hugues.Talbot/imview
 * ----------------------------------------------------------
 *
 *  Imview is an attempt to provide an image display application
 *  suitable for professional image analysis. It was started in
 *  1997 and is mostly the result of the efforts of Hugues Talbot,
 *  Image Analysis Project, CSIRO Mathematical and Information
 *  Sciences, with help from others (see the CREDITS files for
 *  more information)
 *
 *  Imview is Copyrighted (C) 1997-2001 by Hugues Talbot and was
 *  supported in parts by the Australian Commonwealth Science and 
 *  Industry Research Organisation. Please see the COPYRIGHT file 
 *  for full details. Imview also includes the contributions of 
 *  many others. Please see the CREDITS file for full details.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
 * */


/*------------------------------------------------------------------------
 *
 * imtransform.C
 *
 * This file contains code to tranform the raw data in place
 * e.g: Rotations, shears, etc. 
 *
 * This is a harder jobs than it seems, because we'll want to
 * remember the transforms.
 *
 * Hugues Talbot	
 *      
 *-----------------------------------------------------------------------*/

#include "imnmspc.hxx" // namespace etc

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "imunistd.h"
#include "imview.hxx"
#include "pointfile.hxx"
#include "imageIO.hxx"
#include "imageViewer.hxx"

extern pointfile             *PtFileMngr;
extern imageIO               *IOBlackBox;

// this method rotates the buffers by 90 to the right
// must also work on 3d,  multispectral images
// Multicomponent or time series are handled somewhere else
void imageIO::rotateRight()
{
    if (imdata != 0) { // do we have an image?
	if (overlay) { // we still need to rotate the overlay if present
	    unsigned char *p, *q;
	    int             x, y;

	    dbgprintf("Rotating the overlay to the right\n");
	    p = overlay;
	    if (ovlspp == 1) {
		q = new uchar[currImgWidth * currImgHeight];
		for (y = 0 ; y < currImgHeight ; y++) 
		    for (x = 0 ; x < currImgWidth ; x++)
			q[(currImgHeight-y-1)+ currImgHeight*x] = *p++;
	    } else { // ovlspp == 3
		q = new uchar[3 * currImgWidth * currImgHeight];
		for (y = 0 ; y < currImgHeight ; y++) 
		    for (x = 0 ; x < currImgWidth ; x++) {
			int idx = 3 * ((currImgHeight-y-1)+ currImgHeight*x);
			q[idx++] = *p++;
			q[idx++] = *p++;
			q[idx] = *p++;
		    }
	    }
		
	    delete[] overlay;
	    overlay = q;
	}
	
	if (currBuffp != 0)  {
	    // this is going to be much slower than below
	    int            sz=typeSize(currPixType);
	    unsigned char *p, *q;
	    int            i, x, y, z, swp;
	    void         **ncurrBuffp = 0;
	    
	    if (dontFreeBuffers) {
		// its a lot more complicated
		ncurrBuffp = (void **)malloc(currImgNbSamples * sizeof(void*));
		if (ncurrBuffp == 0)
		    errprintf("This image can't be rotated due to memory problems\n");
	    }
	    
	    for (i = 0 ; i < currImgNbSamples ; i++) {
		p = (uchar *)currBuffp[i];
		// the currBuffps are malloced, not newed
		if ((q = (uchar *) malloc(currImgWidth * currImgHeight * currImgThickness * sz *sizeof(char))) != NULL) {
		    for (z = 0 ; z <  currImgThickness ; z++) {
			for (y = 0 ; y < currImgHeight ; y++) {
			    for (x = 0 ; x < currImgWidth ; x++) {
				memcpy(q + sz*(currImgHeight*currImgWidth*z + ((currImgHeight-y-1)+currImgHeight*x)),
				       p, sz);
				p += sz;
			    }
			}
		    }
		    if (!dontFreeBuffers) {
			free(currBuffp[i]);
			currBuffp[i] = q;
		    } else {
			ncurrBuffp[i] = q; // save to a different buffer
		    }
		} else {
		    int l; 
		    errprintf("Not enough memory to rotate image\n");
		    if (dontFreeBuffers) {
			for (l = 0 ; l < i ; l++)
			    free(ncurrBuffp[l]);
			free(ncurrBuffp);
		    }
		    // nothing further can be done for the other case
		    // as the images have been rotated already.
			
		    return;
		}
	    }
	    swp = currImgWidth;
	    currImgWidth = currImgHeight;
	    currImgHeight = swp;
	    if (dontFreeBuffers) {
		currBuffp = ncurrBuffp; // don't worry, currBuffp is not lost.
		dontFreeBuffers = false; // these new buffers, we can free.
	    }
	} else {
	    // much simpler case
	    unsigned char *p, *q;
	    int            x, y, c, swp;
	    // we only need to rotate the display buffer.
	    dbgprintf("2D CHAR image: only rotating the display buffer\n");
	    p = imdata;
	    // on the other hand, imdata is newed, not malloced!
	    q = new uchar[currImgWidth * currImgHeight * currImgNbSamples];
	    for (y = 0 ; y < currImgHeight ; y++) 
		for (x = 0 ; x < currImgWidth ; x++)
		    for (c = 0 ; c < currImgNbSamples ; c++) 
			q[currImgNbSamples * ((currImgHeight-y-1)+currImgHeight*x) + c] = *p++;
	    delete[] imdata; // this gets rid of the old buffer
	    imdata = q;
	    // swaps height and width of the buffer
	    swp = currImgWidth;
	    currImgWidth = currImgHeight;
	    currImgHeight = swp;
	}

	// rotate the points, if any
	PtFileMngr->rotate90m();
    }
}

// This method rotates the buffers by 90 to the left
// must also work on 3d multispectral images.
void imageIO::rotateLeft()
{
    if (imdata != 0) {
	if (overlay) {
	    unsigned char *p, *q;
	    int             x, y;

	    dbgprintf("Rotating the overlay to the left\n");
	    p = overlay;
	    if (ovlspp == 1) {
		q = new uchar[currImgWidth * currImgHeight];
		for (y = 0 ; y < currImgHeight ; y++) 
		    for (x = 0 ; x < currImgWidth ; x++)
			q[y + currImgHeight*(currImgWidth-x-1)] = *p++;
	    } else { //ovlspp == 3
		q = new uchar[3 * currImgWidth * currImgHeight];
		for (y = 0 ; y < currImgHeight ; y++) 
		    for (x = 0 ; x < currImgWidth ; x++) {
			int idx = 3 * (y + currImgHeight*(currImgWidth-x-1));
			q[idx++] = *p++;
			q[idx++] = *p++;
			q[idx] = *p++;
		    }
	    }

	    delete[] overlay;
	    overlay = q;
	}
	
	if (currBuffp != 0) {
	    // this is going to be much slower than below
	    int            sz=typeSize(currPixType);
	    unsigned char *p, *q;
	    int            i, x, y, z, swp;
	    void         **ncurrBuffp = 0;

	    if (dontFreeBuffers) {
		// its a lot more complicated
		ncurrBuffp = (void **)malloc(currImgNbSamples * sizeof(void*));
		if (ncurrBuffp == 0)
		    errprintf("This image can't be rotated due to memory problems\n");
	    }
	    
	    for (i = 0 ; i < currImgNbSamples ; i++) {
		p = (uchar *)currBuffp[i];
		// the currBuffps are malloced, not newed
		if ((q = (uchar *) malloc(currImgWidth * currImgHeight * currImgThickness * sz)) != NULL) {
		    for (z = 0 ; z <  currImgThickness ; z++) {
			for (y = 0 ; y < currImgHeight ; y++) {
			    for (x = 0 ; x < currImgWidth ; x++) {
				memcpy(q + sz*(currImgHeight*currImgWidth*z + (y + currImgHeight*(currImgWidth-x-1))),
				       p, sz);
				p += sz;
			    }
			}
		    }
		    if (!dontFreeBuffers) {
			free(currBuffp[i]);
			currBuffp[i] = q;
		    } else {
			ncurrBuffp[i] = q; // save to a different buffer
		    }
		} else {
		    int l; 
		    errprintf("Not enough memory to rotate image\n");
		    if (dontFreeBuffers) {
			for (l = 0 ; l < i ; l++)
			    free(ncurrBuffp[l]);
			free(ncurrBuffp);
		    }
		    // nothing further can be done for the other case
		    // as the images have been rotated already.
		    return;
		}
	    }
	    swp = currImgWidth;
	    currImgWidth = currImgHeight;
	    currImgHeight = swp;
	    if (dontFreeBuffers) {
		currBuffp = ncurrBuffp; // don't worry, currBuffp is not lost.
		dontFreeBuffers = false; // these new buffers, we can free.
	    }
	} else  {
	    unsigned char *p, *q;
	    int            x, y, c, swp;
	    // we only need to rotate the display buffer.
	    dbgprintf("2D CHAR image: only rotating the display buffer\n");
	    p = imdata;
	    // on the other hand, imdata is newed, not malloced!
	    q = new uchar[currImgWidth * currImgHeight * currImgNbSamples];
	    for (y = 0 ; y < currImgHeight ; y++) 
		for (x = 0 ; x < currImgWidth ; x++)
		    for (c = 0 ; c < currImgNbSamples ; c++)
			q[currImgNbSamples * (y + currImgHeight*(currImgWidth-x-1)) + c] = *p++;
	    delete[] imdata; // this gets rid of the old buffer
	    imdata = q;
	    // swaps height and width of the buffer
	    swp = currImgWidth;
	    currImgWidth = currImgHeight;
	    currImgHeight = swp;	
	}

	// rotate the points, if any
	PtFileMngr->rotate90p();
    }
}

// This method rotates the buffers by 180 degree. It is very efficient.
// must also work on 3d multispectral images.
void imageIO::rotate180()
{
    if (imdata != 0) {

	if (overlay) {
	    unsigned char *p, *q, swp;

	    dbgprintf("Rotating the overlay 180 degrees\n");
	    p = overlay;
	    if (ovlspp == 1) {
		q = p + currImgHeight*currImgWidth - 1;
		while (p < q) {
		    swp = *p;
		    *p++ =*q;
		    *q-- = swp;
		}
	    } else { // ovlspp == 3
		q = p + 3 * currImgHeight*currImgWidth - 3;
		while (p < q) {
		    // R
		    swp = *p;
		    *p++ =*q;
		    *q++ = swp;
		    // G
		    swp = *p;
		    *p++ =*q;
		    *q++ = swp;
		    // B
		    swp = *p;
		    *p++ =*q;
		    *q = swp;
		    //
		    q -= 5; // would be 6 if we had done *q++ 2 lines earlier...
		}
	    }
	    // in place rotation
	}
	
	if (currBuffp != 0) {
	    // this is going to be much slower than below
	    int            sz=typeSize(currPixType);
	    unsigned char *p, *q, swp;
	    int            i, z, c;
	    // no buffer reallocation here!
	    for (i = 0 ; i < currImgNbSamples ; i++) {
		for (z = 0 ; z <  currImgThickness ; z++) {
		    p = (uchar *)currBuffp[i] + currImgWidth * currImgHeight * sz * z;
		    q = p + (currImgHeight*currImgWidth - 1) * sz;
		    while (p < q) {
			for (c = 0 ; c < sz ; c++) {
			    swp = *p;
			    *p++ =*q;
			    *q++ = swp;
			}
			q -= 2*sz;
		    }
		}
	    }
	} else {
	    unsigned char *p, *q, swp;
	    int            c;
	    // we only need to rotate the display buffer.
	    dbgprintf("2D CHAR image: only rotating the display buffer\n");
	    p = imdata;
	    // no buffer reallocation here!
	    q = p + (currImgHeight*currImgWidth - 1) * currImgNbSamples;
	    while (p < q) {
		for (c = 0 ; c < currImgNbSamples ; c++) {
		    swp = *p;
		    *p++ =*q;
		    *q++ = swp;
		}
		q -= 2*currImgNbSamples;
	    }
	} 
    }
}

// This method performs an horizontal flip. It is very efficient.
// must also work on 3d multispectral images.
void imageIO::fliph()
{
    if (imdata != 0) {
	if (overlay) {
	    unsigned char *p, *q, *swp;
	    int             y;
	    
	    swp = new uchar[ovlspp * currImgWidth];
	    p = overlay;
	    q = p + ovlspp * currImgWidth * (currImgHeight - 1);
	    dbgprintf("Flipping the overlay buffer horizontally\n");
	    for (y = 0 ; y < currImgHeight/2 ; y++) {
		memcpy(swp, p, ovlspp * currImgWidth);
		memcpy(p, q, ovlspp * currImgWidth);
		memcpy(q, swp, ovlspp * currImgWidth);
		p += ovlspp * currImgWidth;
		q -= ovlspp * currImgWidth;
	    }
	    delete[] swp;
	}
	if (currBuffp != 0) {
	    // this is going to be much slower than below
	    int            sz=typeSize(currPixType);
	    unsigned char *p, *q, *swp;
	    int            i, y, z;
	    // this is just a temp buffer, it can be newed.
	    swp = new uchar[currImgWidth*sz];
	    for (i = 0 ; i < currImgNbSamples ; i++) {
		for (z = 0 ; z <  currImgThickness ; z++) {
		    p = (uchar *)currBuffp[i] + currImgWidth * currImgHeight * sz * z;
		    q = p + ((currImgHeight-1)*currImgWidth) * sz;
		    for (y = 0 ; y < currImgHeight/2 ; y++) {
			memcpy(swp, p, currImgWidth*sz);
			memcpy(p, q, currImgWidth*sz);
			memcpy(q, swp, currImgWidth*sz);
			p += currImgWidth*sz;
			q -= currImgWidth*sz;
		    }
		}
	    }
	    // swap buffer life ends here
	    delete[] swp;
	} else {
	    unsigned char *p, *q, *swp;
	    int            y;
	    // we only need to rotate the display buffer.
	    dbgprintf("2D CHAR image: only flipping horizontally the display buffer\n");
	    p = imdata;
	    q = p + (currImgWidth * (currImgHeight - 1)) * currImgNbSamples;
	    // same story as above with respect to temp buff.
	    swp = new uchar[currImgWidth*currImgNbSamples];
	    for (y = 0 ; y < currImgHeight/2 ; y++) {
		memcpy(swp, p, currImgWidth*currImgNbSamples);
		memcpy(p, q, currImgWidth*currImgNbSamples);
		memcpy(q, swp, currImgWidth*currImgNbSamples);
		p += currImgWidth*currImgNbSamples;
		q -= currImgWidth*currImgNbSamples;
	    }
	    delete[] swp;
	}

	// flip the points
	PtFileMngr->fliph();
    }
}

// This method performs a ver flip. It is not as efficient as the previous one
// must also work on 3d multispectral images.
void imageIO::flipv()
{
    if (imdata != 0) {
	if (overlay) {
	    unsigned char *p, *q, swp;
	    int             x, y;
	    
	    dbgprintf("Flipping the overlay buffer vertically\n");
	    if (ovlspp == 1) {
		for (y = 0 ; y < currImgHeight ; y++) {
		    p = overlay + currImgWidth * y;
		    q = p + (currImgWidth-1);
		    for (x = 0 ; x < currImgWidth/2 ; x++) {
			swp = *p;
			*p++ = *q;
			*q-- = swp;
		    }
		}
	    } else { // == 3
		for (y = 0 ; y < currImgHeight ; y++) {
		    p = overlay + 3 * currImgWidth * y;
		    q = p + 3 * (currImgWidth - 1);
		    for (x = 0 ; x < currImgWidth/2 ; x++) {
			// R
			swp = *p;
			*p++ = *q;
			*q++ = swp;
			// G
			swp = *p;
			*p++ = *q;
			*q++ = swp;
			// B
			swp = *p;
			*p = *q;
			*q = swp;
			// inc
			q -= 5; // we only did 2 `++'s
		    }
		}
	    }
	}
	
	if (currBuffp != 0) {
	     // this is going to be much slower than below
	    int            sz=typeSize(currPixType);
	    unsigned char *p, *q, swp;
	    int            i, x, y, z, c;
	    
	    for (i = 0 ; i < currImgNbSamples ; i++) {
		for (z = 0 ; z <  currImgThickness ; z++) {
		    for (y = 0 ; y < currImgHeight ; y++) {
			p = (uchar *)currBuffp[i] + currImgWidth * sz * (currImgHeight * z +  y);
			q = p + (currImgWidth-1) * sz;
			for (x = 0 ; x < currImgWidth/2 ; x++) {
			    for (c = 0 ; c < sz; c++) {
				swp = *p;
				*p++ = *q;
				*q++ = swp;
			    }
			    q -= 2*sz;
			}
		    }
		}
	    }
	} else {
	    unsigned char *p, *q, swp;
	    int            x, y, c;
	    // we only need to rotate the display buffer.
	    dbgprintf("2D CHAR image: only flipping vertically the display buffer\n");
	    for (y = 0 ; y < currImgHeight ; y++) {
		p = imdata + currImgWidth * y * currImgNbSamples;
		q = p + (currImgWidth-1) * currImgNbSamples;
		for (x = 0 ; x < currImgWidth/2 ; x++) {
		    for (c = 0 ; c < currImgNbSamples; c++) {
			swp = *p;
			*p++ = *q;
			*q++ = swp;
		    }
		    q -= 2*currImgNbSamples;
		}
	    }
	}
	
	// flip the points
	PtFileMngr->flipv();
    }
}

// all the 3D rotation are more or less the same (optimization are impossible)

// This is what happens when you can't rely on templates...



#define  rotinnerloop(P,Q,R) \
do { for (z = 0 ; z <  currImgThickness ; z++) { \
    for (y = 0 ; y < currImgHeight ; y++) { \
         for (x = 0 ; x < currImgWidth ; x++) { \
              *((Q) + R(x,y,z)) = *(P)++; \
         } \
    } \
} } while (0)

void imageIO::rotate3Dgeneric(rot3dtransf *myrotf, long nbplanepix)
{
    int            sz=typeSize(currPixType);
    unsigned char *p, *q;
    int            i, x, y, z;
    void         **ncurrBuffp = 0;
	
    assert(currBuffp != 0);

	    
    if (dontFreeBuffers) {
        // things are a little more complicated
        ncurrBuffp = (void **)malloc(currImgNbSamples * sizeof(void*));
        if (ncurrBuffp == 0)
            errprintf("This image can't be rotated due to memory problems\n");
    }

    for (i = 0 ; i < currImgNbSamples ; i++) {
        p = (uchar *)currBuffp[i];
        // the currBuffps are malloced, not newed
        if ((q = (uchar *) malloc(currImgWidth * currImgHeight * currImgThickness * sz *sizeof(char))) != NULL) {
            switch (sz) {
            case 1: 
                rotinnerloop(p,q,myrotf);
                break;

            case 2: {
                short *ps, *qs;
                    
                ps = (short*)p;
                qs = (short*)q;

                rotinnerloop(ps,qs,myrotf);
            }
                    
                break;
                    
            case 4: {
                int *pi, *qi;
                    
                pi = (int*)p;
                qi = (int*)q;

                rotinnerloop(pi,qi,myrotf);
            }
                break;
                    
            case 8: {
                double *pd, *qd;
                    
                pd = (double*)p;
                qd = (double*)q;

                rotinnerloop(pd,qd,myrotf);
            }
                break;
                    
            default:
                errprintf("Unhandled pixel type in 3D rotation\n");
                break;
            }

            if (!dontFreeBuffers) {
                free(currBuffp[i]);
                currBuffp[i] = q;
            } else {
                ncurrBuffp[i] = q; // save to a different buffer
            }
        } else {
            int l; 
            errprintf("Not enough memory to rotate image\n");
            if (dontFreeBuffers) {
                for (l = 0 ; l < i ; l++)
                    free(ncurrBuffp[l]);
                free(ncurrBuffp);
            }
            // nothing further can be done for the other case
            // as the images have been rotated already.
			
            return;
        }
    }

    if (dontFreeBuffers) {
        currBuffp = ncurrBuffp; // don't worry, currBuffp is not lost.
        dontFreeBuffers = false; // these new buffers, we can free.
    }

    // Rotate the overlay if present
    if (overlay) { 
        // no optimization is possible
        dbgprintf("Rotating the overlay up (in the 3D sense)\n");
        unsigned char *p, *q;
        int             x, y;

        p = overlay;
        if (ovlspp == 1) {
            q = new uchar[currImgWidth * currImgHeight];
            for (z = 0 ; z < currImgThickness ; ++z)
                for (y = 0 ; y < currImgHeight ; ++y) 
                    for (x = 0 ; x < currImgWidth ; ++x)
                        q[myrotf(x,y,z)] = *p++;
        } else { //ovlspp == 3
            q = new uchar[3 * currImgWidth * currImgHeight];
            for (z = 0 ; z < currImgThickness ; ++z)
                for (y = 0 ; y < currImgHeight ; ++y) 
                    for (x = 0 ; x < currImgWidth ; ++x) {
                        int idx = 3 * (myrotf(x,y,z));
                        q[idx++] = *p++;
                        q[idx++] = *p++;
                        q[idx] = *p++;
                    }
        }

        delete[] overlay;
        overlay = q;
    }
}

// this method rotates the buffers by 90 degree `up'
// This *only* works on 3D image.
// must also work multispectral images
// Multicomponent or time series are handled somewhere else

static long transf_rot_3d_up(int x, int y, int z)
{
    return ((IOBlackBox->imageHeight()-y-1) * IOBlackBox->imageWidth() * IOBlackBox->imageThickness() + z * IOBlackBox->imageWidth() + x);
}

void imageIO::rotate3Dup()
{
    if (imdata != 0) {
        int  swp;
        long nbplanepix = IOBlackBox->imageWidth() * IOBlackBox->imageThickness(); 

        rotate3Dgeneric(transf_rot_3d_up, nbplanepix);

        // swapping Y and Z
        swp = currImgHeight;
        currImgHeight = currImgThickness;
        currImgThickness = swp;
        // not sure this is correct...
        swp = yOffset;
        yOffset = zOffset;
        zOffset = swp;
        // to be safe
        currZpos = 0;


        // rotate the points, if any
        PtFileMngr->rotate3dup();
    }
}

static long transf_rot_3d_down(int x, int y, int z)
{
    return (y * IOBlackBox->imageWidth() * IOBlackBox->imageThickness() + (IOBlackBox->imageThickness() - z -1) * IOBlackBox->imageWidth() + x);
}

void imageIO::rotate3Ddown()
{
    if (imdata != 0) {
        int  swp;
        long nbplanepix = IOBlackBox->imageWidth() * IOBlackBox->imageThickness(); 

        rotate3Dgeneric(transf_rot_3d_down, nbplanepix);

        // swapping Y and Z
        swp = currImgHeight;
        currImgHeight = currImgThickness;
        currImgThickness = swp;
        // not sure this is correct...
        swp = yOffset;
        yOffset = zOffset;
        zOffset = swp;
        // to be safe
        currZpos = 0;


        // rotate the points, if any
        PtFileMngr->rotate3ddown();
    }
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          /*
 * $Id: imageViewer.cxx,v 4.16 2004/06/23 15:58:16 hut66au Exp $
 *
 * Imview, the portable image analysis application
 * http://www.cmis.csiro.au/Hugues.Talbot/imview
 * ----------------------------------------------------------
 *
 *  Imview is an attempt to provide an image display application
 *  suitable for professional image analysis. It was started in
 *  1997 and is mostly the result of the efforts of Hugues Talbot,
 *  Image Analysis Project, CSIRO Mathematical and Information
 *  Sciences, with help from others (see the CREDITS files for
 *  more information)
 *
 *  Imview is Copyrighted (C) 1997-2001 by Hugues Talbot and was
 *  supported in parts by the Australian Commonwealth Science and 
 *  Industry Research Organisation. Please see the COPYRIGHT file 
 *  for full details. Imview also includes the contributions of 
 *  many others. Please see the CREDITS file for full details.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
 * */

/*------------------------------------------------------------------------
 *
 * Code for the ImageViewer Class
 *
 * Hugues Talbot        27 Oct 1997
 *
 * This is my first attempt at a serious derivation. Don't laugh at
 * the code...
 *
 * This is very complex code, I get lost in there all the time.
 *
 * Hugues Talbot	12 Sep 2003: added two more viewing mode, 3 in total:
 *
 * - old mode, called `window fits the image', i.e. normally the
 * window sits tight around the image with no gap. The exceptions are
 * 1- if the image dimensions are so small that the main menu would
 * not be visible, so in this case the image is centered in a
 * minimal-size frame with a white background and 2- if the image is
 * too big to fit in the screen or if the user shrinks the main window
 * by hand, which is permitted (expanding the window by dragging the
 * frame is not). In this case scrollbars are created so that the user
 * can still access the whole data. Changes of zoom factor obviously
 * can make the window resize as long as the windows dimensions fit in
 * the screen and are not too small. A window can be shrunk but not
 * expanded. I like this mode best but it has been hard to implement
 * in X11 and is still somewhat shaky sometimes for unknown reasons.
 * Sometimes imview gets into a weird state with scrollbars in the
 * middle of the image, but I can never reliably invoke this faulty
 * mode.  Let me know if you can so I can correct it. This is the
 * imview default mode.
 *
 * - `image fits window' mode. There can be no scrollbar, only changes
 * in dimension of the main window. This is the only mode where the
 * aspect ratio can be changed interactively. Zooming also changes the
 * dimension of the window. There is no limit to the size of the main
 * window. This is the way XV by John Bradley behaves.
 *
 * - `window and image decoupled' mode. Zoom operations change the
 * image dimensions on the one hand, and windows operations change the
 * window dimensions on the other. If the image is too large for the
 * window scrollbars are created (and removed if they are no longer
 * needed). This is the way the GIMP operates (except for the GIMP the
 * scrollbars are always present). In this mode the window background
 * when visible is black.
 *
 * In short, the first mode is fine as default, but you might want to 
 * use the second for changing the aspect ratio interactively, and the
 * second mode in fullscreen mode (I'm working on that).
 *
 *-----------------------------------------------------------------------*/

#include "imnmspc.hxx" // namespace definitions etc.

#include <stdio.h>
#include <assert.h>
#include <string> // not used here but necessary for nocase.H
#include <FL/Fl_Window.H>
#include <FL/fl_draw.H>
#include <FL/Fl.H>
#include <FL/math.h>
#include "imview.hxx"
#include "imviewWindow.hxx"
#include "imageIO.hxx"
#include "menubar.hxx"
#include "pointfile.hxx"
#include "imageViewer.hxx"
#include "imageInfo.hxx"
#include "spectraBox.hxx"
#include "profileBox.hxx"
#include "annotatePoints.hxx"
#include "my_Image.hxx"
#include "nocase.hxx"
#include "io/newprefio.hxx"
#include "server/interpreter.hxx"

// needed external variables 
extern imviewWindow *mainWindow;
extern pointfile    *PtFileMngr;
extern imageinfo    *imageInfoPanel;
extern spectra      *spectraPanel;
extern spectra      *depthProfile;
extern profile      *profilePanel;
extern imprefs      *fileprefs;
extern annotatept   *annotatePointPanel;
extern linkmanager  *imview_linkmanager;
extern int          debugIsOn;
extern int          appMaxWidth, appMaxHeight;
extern bool         useOffscreenBuff;
extern bool         hideMainMenu;
extern bool         fullScreen;
extern displaymode   displaymodepref; // set by command line before object created...

imageViewer::imageViewer(int x, int y, int w, int h, const char *label)
    : Fl_Group(x,y,w,h,label)
{
    dbgprintf("ImageViewer constructor called with args: %d, %d, %d, %d \n",
           x, y, w, h);
    Ox = x;
    Oy = y;
    originalWidth = w;
    originalHeight = h;
    vposition_ = hposition_ = 0;
    hscrollbar = 0;
    vscrollbar = 0;
    theImage = 0;
    parentWindow = 0; 
    imageObject = 0;         // there is no image yet
    statusLine = 0;          // status line is invisible by default
    zoomBox = 0;
    zoomBoxDefined = 0;
    imageZoomFactor_ = defaultZoomFactor_= 1.0;
    xZoomFactor_ = yZoomFactor_ = 1.0;
    minZoomFactor_ = 1.0;
    nbPointDamage = 0;
    angleLine = 0;
    dbgprintf("ResizeInProgress set to false\n");
//    resizeInProgress = false;
    zoomDragInProgress = false;
    aspectConstrained = false;
    sizeConstrained = true;
    lineProfileInProgress = false;
    pointmode = false;
    keepProfileLine = false;
    pmode_ = IMV_POINTER_ZOOM_MODE;
    dmode_ = displaymodepref;
    currentPtColour_ = 0;

    // must call this:
    end();
}

imageViewer::~imageViewer()
{
    dbgprintf("Image Viewer destructor called\n");
    // delete the image Object if need be.
    zapImageObject();
	
    // always delete the image IO object
}


void imageViewer::displayCurrentImage(void)
{
    int realMinWidth, realMinHeight;
    static int oldImageWidth = -1, oldImageHeight = -1;
    double oldZoomFactor, df;
    
    // get rid of the previous image object
    zapImageObject();
    imageObject = new Fl_RGB_Image(theImage->imageData(),
				   theImage->imageWidth(),
				   theImage->imageHeight(),
				   theImage->imageDepth());
    oldZoomFactor = zoomFactor(); // this is the zoom factor of the previous image
    // work out the defaultZoomFactor
    df = trivmin((double)MINHEIGHT/theImage->imageHeight(), (double)MINWIDTH/theImage->imageWidth());
    // if the default zoom factor is smaller than 1.0, ignore it
    //defaultZoomFactor_ = trivmax(df, 1.0);
    df =  trivmax(df, 1.0);
    if ((oldImageWidth != theImage->imageWidth())
	|| (oldImageHeight != theImage->imageHeight())) {
	// we do not call zoomFactor() here because we don't
	// want the automatic resize() that goes with it. the
	// main window will be resized and redrawn at the end
	// of this function (see below) anyway.
	if (fullScreen) 
	    imageZoomFactor_ = defaultZoomFactor_ = computeMaxZoomFactor();
	else 
	    imageZoomFactor_ = defaultZoomFactor_ * df; // might be clever?
    }
    // on the other hand...
    minZoomFactor_ = trivmax(1.0/theImage->imageHeight(), 1.0/theImage->imageWidth());
    if (zoomFactor() < minZoomFactor_)
	zoomFactor(minZoomFactor_);
    dbgprintf("Minimal zoom factor = %g\n", minZoomFactor_);
    dbgprintf("Default zoom factor = %g\n", defaultZoomFactor_);
    
    // resize the parent window
    if (!parentWindow)
	parentWindow = (imviewWindow *)parent(); // by now parent ought to have been initialized
    // resize only if need be, that is: if the zoom factor is 1.0 (expected behaviour)
    // or if the window is too large for the current image.
    realMinWidth = trivmin(appMaxWidth,currentImageWidth());
    realMinHeight = trivmin(appMaxHeight,currentImageHeight());
    
    sizeConstraints(realMinWidth, realMinHeight);
    
    if ((Ox+currentImageWidth() < visibleWidth())
	|| (Oy+currentImageHeight() < visibleHeight())
	|| (zoomFactor() == defaultZoomFactor_) || (zoomFactor() == minZoomFactor_)) {
	// possibly resizing the parent window
	if (!sizeParent(Ox + realMinWidth, Oy + realMinHeight)) {
	    dbgprintf("Manual redraw call needed\n");
	    redraw_image(); // then the image will need a manual nudge to be redisplayed
	}
    } else {
	redraw_image(); // here too
	dbgprintf("Manual redraw call needed here too\n");
    }

    // remember the current image dimensions
    oldImageWidth = theImage->imageWidth();
    oldImageHeight = theImage->imageHeight();
	
    return;
}

// this method is called when we want to display NO image
// the window dimensions are returned to the initialization values
int imageViewer::close(void)
{
    if (imageObject) {
	zapImageObject();
	if (parentWindow) {
	    int realMinWidth = trivmin(appMaxWidth, originalWidth);
	    int realMinHeight = trivmin(appMaxHeight, originalHeight);
	    parentWindow->size(trivmax(Ox+originalWidth, MINWIDTH), Oy+originalHeight);
	    sizeParent(Ox + realMinWidth, Oy + realMinHeight);
	    sizeConstraints(realMinWidth, realMinHeight);
	}
	redraw();
    }
    
    return 0;
}


// resize the image to the minimum of the current displayed width and height
// of the _window_ and the width and height of the _image_, if need be...
bool imageViewer::resize(void)
{
    int minWidth, minHeight;
    int realNewWidth, realNewHeight;
    int wlimit, hlimit;
    bool retval = false;
    
    minWidth = trivmin(w(), currentImageWidth());
    minHeight = trivmin(h(), currentImageHeight());

    dbgprintf("Called resize(void)\n");
    // window size limits depend only on the image and the screen limits
    wlimit = trivmin(appMaxWidth, currentImageWidth());
    wlimit = trivmax(wlimit, MINWIDTH);
    hlimit = trivmin(appMaxHeight, currentImageHeight());
    hlimit = trivmax(hlimit, MINHEIGHT);
    
    // if the user asked for too big a resize, we have to resize
    // the window too...
    if ((getdisplaymode() ==  IMV_DISPLAY_WINDOW_FIT_IMG) 
	&& parentWindow 
	&& (((w() > currentImageWidth()) && (w() > MINWIDTH))
	    || ((h() > currentImageHeight()) && (h() > MINHEIGHT)))) {

	sizeConstraints(wlimit, hlimit);

	realNewWidth = trivmin(appMaxWidth, minWidth);
	realNewWidth = trivmax(realNewWidth, MINWIDTH);
	realNewHeight = trivmin(appMaxHeight, minHeight);
	realNewHeight = trivmax(realNewHeight, MINHEIGHT);
	if (!sizeParent(Ox + realNewWidth, Oy + realNewHeight)) {
	    dbgprintf("There was no resize but the image will require redrawing\n");
	    redraw_image();
	}
	    
	// We HAVE to worry about the scrollbars...
	if (hscrollbar)
	    hscrollbar->resize(x(),
			       y()+realNewHeight-HSLIDER_HEIGHT,
			       realNewWidth-VSLIDER_WIDTH,HSLIDER_HEIGHT);
	if (vscrollbar)
	    vscrollbar->resize(x()+realNewWidth-VSLIDER_WIDTH,
			       y(),
			       VSLIDER_WIDTH,
			       realNewHeight-HSLIDER_HEIGHT);
	retval = true; // we did do a further resize to fit the window around the image
    } else {
	if (parentWindow) {
	    sizeConstraints(wlimit, hlimit);
	}
	// no resize occured, but we still need to redraw the image
	// dbgprintf("No change in size, but we still require redraw\n");
	// THIS REDRAW here is only necessary when doing a zoom without
	// resizing the window (alt + >, etc). IF doing a zoom with redraw,
	// (>, etc), this cause a double redraw that should be. Fixing this
	// is not simple...
	// redraw_image();
	retval = false;
    }


    // There was an old omment here saying that we
    // didn't have to worry about resizing scrollbar.
    // The point was valid in the past but not since maximum values
    // for the size of the window have been set, because there
    // is no guarantee anymore that the window will be tight around
    // the image...

    return retval;
}

// so that we get passed the resize events
void imageViewer::resize(int newx, int newy, int neww, int newh)
{
    int minWidth, minHeight;
    int realNewWidth, realNewHeight;
    static int forgetNextEvent = 0;
    static int calls = 0;

    
    dbgprintf("imageViewer: Got a resize event: x:%d, y:%d, w:%d, h:%d\n",
	      newx, newy, neww, newh);

    if (getdisplaymode() == IMV_DISPLAY_WINDOW_FIT_IMG) {
	calls++; // count the calls

	if ((calls < 3) && (neww == (SWIDTH-Ox)) && (newh == (SHEIGHT-Oy))) {
	    dbgprintf("Listen, I'm not proud of this, but I can't figure out why FLTK\n");
	    dbgprintf("wants to resize this window\n");
	    dbgprintf("to the original size again!!, so I'm ignoring the event, so be it\n");
	    return; // forget it!
	}
   
    
	if (!forgetNextEvent) {
	    // for the time being keep the size tight around the image
	    minWidth = trivmin(neww, currentImageWidth());
	    minHeight = trivmin(newh, currentImageHeight());

	    realNewWidth = trivmin(appMaxWidth, minWidth);
	    realNewHeight = trivmin(appMaxHeight, minHeight);

	    realNewWidth = trivmax(realNewWidth, MINWIDTH);
	    realNewHeight = trivmax(realNewHeight, MINHEIGHT);
	
	
	    if (hscrollbar)
		hscrollbar->resize(newx,
				   newy+realNewHeight-HSLIDER_HEIGHT,
				   realNewWidth-VSLIDER_WIDTH,HSLIDER_HEIGHT);
	    if (vscrollbar)
		vscrollbar->resize(newx+realNewWidth-VSLIDER_WIDTH,
				   newy,
				   VSLIDER_WIDTH,
				   realNewHeight-HSLIDER_HEIGHT);

	    // do the base class work as well
	    Fl_Object::resize(newx, newy, realNewWidth, realNewHeight);

	} else  {
	    dbgprintf("Resize event discarded: now returning to normal\n");
	    forgetNextEvent = 0;
	} 
    } else if (getdisplaymode() == IMV_DISPLAY_IMG_FIT_WINDOW) {
	dbgprintf("Stretching to fit\n");
	Fl_Object::resize(newx, newy, neww, newh);
    } else if (getdisplaymode() == IMV_DISPLAY_DECOUPLE_WIN_IMG) {
        // resize the sliders
        if (hscrollbar)
            hscrollbar->resize(newx,
                               newy + newh - HSLIDER_HEIGHT,
                               neww - VSLIDER_WIDTH,
                               HSLIDER_HEIGHT);
        if (vscrollbar)
            vscrollbar->resize(newx + neww - VSLIDER_WIDTH,
                               newy,
                               VSLIDER_WIDTH,
                               newh - HSLIDER_HEIGHT);

        // resize base class too
        Fl_Object::resize(newx, newy, neww, newh);
    } else {
        warnprintf("Resize(non-void) called with unsupported display mode\n");
    }
    // else nothing to do (maybe)
    
    return ;
}

void imageViewer::hposition(int newx)
{
    if (newx == hposition_) return;
    hposition_ = trivmax(newx, 0);
    redraw_image();
}

void imageViewer::vposition(int newy)
{
    if (newy == vposition_) return;
    vposition_ = trivmax(newy, 0);
    redraw_image();
}

void imageViewer::pan(int newx, int newy)
{
    if (imageObject) {
        hposition_ = trivmax((int)(newx * imageZoomFactor_ + 0.5), 0) ;
        vposition_ = trivmax((int)(newy * imageZoomFactor_ + 0.5), 0) ;
        redraw_image();
    }
    return;
}

double imageViewer::setDefaultZoomFactor(double f, bool forward)
{
    defaultZoomFactor_ = f;
    
    if (forward && imview_linkmanager) {
        if (imview_linkmanager->setDefaultZoomFactor(f) > 0) 
            dbgprintf("Remote set default zoom factor %g failed\n", f);
    }

    return(zoomFactor(f));
}

// if useMinOfBoth is true, the whole image will be visible
// if not, the whole screen will be filled with data, but
// the image will exceed the screen boundary.

// helper function: computes the max zoom
// this is the zoom that will let the whole image be shown on screen.
double imageViewer::computeMaxZoomFactor(bool useMinOfBoth)
{
    double mxz = (double)(parentWindow->currentDisplayWidth())/(theImage->imageWidth());
    double myz = (double)(parentWindow->currentDisplayHeight())/(theImage->imageHeight());
    double fz;
    if (useMinOfBoth) {
        fz = trivmin(mxz, myz);
    } else {
        fz = trivmax(mxz, myz);
    }

    return fz;
}

// actually applies the max zoom and sets it as default zoom factor
double imageViewer::applyMaxZoomFactor(bool useMinOfBoth)
{
    defaultZoomFactor_ = computeMaxZoomFactor(useMinOfBoth);
    return zoomFactor(defaultZoomFactor_);
}

// changes the zoom factor of the image, and redisplays it
double imageViewer::zoomFactor(double f, bool doRedraw, bool forward)
{
    double oldfactor = imageZoomFactor_;
    double relf = f/oldfactor;

    if ((getdisplaymode() != IMV_DISPLAY_IMG_FIT_WINDOW) 
	&& imageObject && (f != oldfactor)) {
	// update cursors's posistions
	hposition_ = trivmax((hposition_ * relf) + ((relf - 1.0)*visibleHeight())/2.0, 0);
	vposition_ = trivmax((vposition_ * relf) + ((relf - 1.0)*visibleWidth())/2.0, 0);

	imageZoomFactor_ = trivmax(f,minZoomFactor_);

	// if resize returns true, the parent window will get resized,
	// there is no need to call redraw by hand. On the other hand,
	// if redraw is forced or the window is not redrawn, we should do it.
	if (!resize() && doRedraw) {
	    dbgprintf("Redraw forced after zoom factor changed\n");
	    redraw_image();
	}

	if (forward && imview_linkmanager) {
	    if (imview_linkmanager->zoomfactor(f) > 0)
		dbgprintf("Remote zoom factor %g failed\n", f);
	}
    } else {
        dbgprintf("zoomFactor not updated\n");
    }
    
    return (imageZoomFactor_);
}

// zooms to the box defined in the parameters
// one of bw or bh can be 0, in which case the
// aspect ratio is preserved.
double imageViewer::zoomToBox(int bx, int by, int bw, int bh, bool forward)
{
    double xzoom, yzoom;

    if (((bh > 0) || (bw > 0)) && imageObject) {
	dbgprintf("Zooming to x=%d, y=%d, w=%d, h= %d\n", bx, by, bw, bh);

	// corrections
	if (bx < 0) bx = 0;
	if (by < 0) by = 0;
	if (bw >= dataWidth()) bw =  dataWidth();
	if (bh >= dataHeight()) bh =  dataHeight();

        // if one of bw or bh is zero, change them so that
        // the current aspect ratio is unchanged.
        if (bw == 0) {
            bw = (int)(bh * ((double)visibleWidth()/visibleHeight()) + 0.5);
        } else if (bh == 0) {
            bh = (int)(bw * ((double)visibleHeight()/visibleWidth()) + 0.5);
        }
	
	if (hscrollbar && hscrollbar->visible()) {
	    // horizontal scroll bar is already visible
	    xzoom = (double)visibleWidth()/bw;
	} else {
	    // scrollbar is not yet visible but will be.
	    double rw = bw + ((double)VSLIDER_WIDTH*bw)/visibleWidth();
	    xzoom = (double)visibleWidth()/rw;
	}

	// same issue as above.
	if (vscrollbar && vscrollbar->visible()) {
	    yzoom = (double)visibleHeight()/bh;
	} else {
	    double rh = bh + ((double)HSLIDER_HEIGHT*bh)/visibleHeight();
	    yzoom = (double)visibleHeight()/rh;
	}
    

	// if the wanted aspect ratio and the current one are too different,
	// we resize the window to fit the bill
	if (!aspectConstrained) {
	    // work out the zoom factor
	    imageZoomFactor_ = trivmax(xzoom,yzoom);
	    // but don't make the image wider or taller than the screen!
	    imageZoomFactor_ = trivmin(imageZoomFactor_, (double)(appMaxWidth-Ox)/bw);
	    imageZoomFactor_ = trivmin(imageZoomFactor_, (double)(appMaxHeight-Oy)/bh);
	    hposition_ = trivmax(bx * imageZoomFactor_, 0) ;
	    vposition_ = trivmax(by * imageZoomFactor_, 0) ;

	    // window size limits depend only on the image and the screen limits
	    int wlimit = trivmin(appMaxWidth, currentImageWidth());
	    wlimit = trivmax(wlimit, MINWIDTH);
	    int hlimit = trivmin(appMaxHeight, currentImageHeight());
	    hlimit = trivmax(hlimit, MINHEIGHT);
	    sizeConstraints(wlimit, hlimit);
	    // actually size the parent
	    dbgprintf("sizing the Parent from within zoomToBox\n");
	    sizeParent((int)(Ox + bw*imageZoomFactor_ + VSLIDER_WIDTH + 0.5),
		       (int)(Oy + bh*imageZoomFactor_ + HSLIDER_HEIGHT + 0.5));
            dbgprintf("Forcing redraw\n");
            redraw_image();
	} else {
	    // if zooming in a square way:
	    // work out the zoom factor
	    imageZoomFactor_ = trivmin(xzoom, yzoom);
	    hposition_ = trivmax(bx * imageZoomFactor_, 0) ;
	    vposition_ = trivmax(by * imageZoomFactor_, 0) ;
	    resize();
	    dbgprintf("Redraw forced after aspectConstrained zoomToBox\n");
	    redraw_image();
	}

	if (forward && imview_linkmanager) {
	    if (imview_linkmanager->zoombox(bx,by,bw,bh) > 0) // force other connected imviews to do the same
		dbgprintf("Remote zoombox failed\n");
	}
    }
    
    return imageZoomFactor_; 
}

int imageViewer::currentImageWidth(void)
{
    if (imageObject)
	return ((int)(theImage->imageWidth() * imageZoomFactor_ + 0.5));
    else
	return originalWidth;
}

int imageViewer::currentImageHeight(void)
{
    if (imageObject)
	return ((int)(theImage->imageHeight() * imageZoomFactor_ + 0.5));
    else
	return originalHeight;
}


void imageViewer::redraw_image()
{
    dbgprintf("Redraw_image called\n");
    damage(32); // experimental
}

// now the hard bits

void imageViewer::drawScrollbars_decoupled(int imw, int imh, int visibleW, int visibleH)
{
    if (scrollbartype_ != IMV_DISPLAY_DECOUPLE_WIN_IMG) {
        dbgprintf("In drawScrollbars_decoupled: wrong kind of scrollbars\n");
        destroy_scrollbars();
    }

    // create, show or hide horizontal scrollbar if necessary
    if (imw > visibleW) {
        if (!hscrollbar)
            create_hscrollbar_decoupled();
        else if (!hscrollbar->visible()) {
            hscrollbar->show();
        }
    } else {
        if (hscrollbar && hscrollbar->visible()) {
            hscrollbar->hide();
        }
    }
    // create, show or hide vertical scrollbar if necessary
    if (imh > visibleH) {
        if (!vscrollbar)
            create_vscrollbar_decoupled();
        else if (!vscrollbar->visible()) {
            vscrollbar->show();
        }
    } else {
        if (vscrollbar && vscrollbar->visible()) {
            vscrollbar->hide();
        }
    }
	    
   

    // measure the dimensions of the actual display
    // area, taking slidebars presence into account
    // adjust positions if need be
    if (hposition_ + visibleW > imw) {
        // hposition is actually false, probably because of a resize event!
        hposition_ = trivmax(imw - visibleW, 0);
    }
    if (vposition_ + visibleH > imh) {
        // hposition is actually false, probably because of a resize event!
        vposition_ = trivmax(imh - visibleH, 0);
    }
                
    if (hscrollbar && hscrollbar->visible()) {
        hscrollbar->scrollvalue((int)(hposition_+0.5), // horizontal position of the window
                                visibleW,   // visible width
                                0,          // by definition, horizontal origin of the image
                                imw);       // width of the image
    }
    if (vscrollbar && vscrollbar->visible()) {
        vscrollbar->scrollvalue((int)(vposition_ + 0.5), // vertical positin of the window
                                visibleH,   // visible height
                                0,          // by definition, vertical origin of the image
                                imh);       // height of the image
    }
    
    return;
}


void imageViewer::drawScrollbars_win_fit_img(int imw, int imh, int &visibleW, int &visibleH)
{
    bool scrollchanged = false;

    dbgprintf("Draw scrollbars, window-fit-image policy\n");
    if (scrollbartype_ != IMV_DISPLAY_WINDOW_FIT_IMG) {
        dbgprintf("Wrong kind of scrollbar present\n");
        destroy_scrollbars();
    }
    
    // create, show or hide horizontal scrollbar if necessary
    if (imw > w()) {
        if (!hscrollbar)
            create_hscrollbar_win_fit_img();
        else if (!hscrollbar->visible()) {
            dbgprintf("Showing horizontal scrollbar\n");
            visibleH -= hscrollbar->h();
            hscrollbar->show();
            scrollchanged = true;
        }
    } else {
        if (hscrollbar && hscrollbar->visible()) {
            dbgprintf("Hiding horizontal scrollbar\n");
            visibleH += hscrollbar->h();
            hscrollbar->hide();
            scrollchanged = true;
        }
    }
    // create, show or hide vertical scrollbar if necessary
    if (imh > h()) {
        if (!vscrollbar)
            create_vscrollbar_win_fit_img();
        else if (!vscrollbar->visible()) {
            dbgprintf("Showing vertical scrollbar\n");
            visibleW -= vscrollbar->w();
            vscrollbar->show();
            scrollchanged = true;
        }
    } else {
        if (vscrollbar && vscrollbar->visible()) {
            dbgprintf("Hiding vertical scrollbar\n");
            visibleW += vscrollbar->w();
            vscrollbar->hide();
            scrollchanged = true;
        }
    }

    if (scrollchanged)
        dbgprintf("now, VisibleW = %d, VisibleH = %d\n", visibleW, visibleH);
    else
        dbgprintf("VisibleW and VisibleH unchanged\n");
   

    // measure the dimensions of the actual display
    // area, taking slidebars presence into account
    // adjust positions if need be
    if (hposition_ + visibleW > imw) {
        // hposition is actually false, probably because of a resize event!
        hposition_ = trivmax(imw - visibleW, 0);
    }
    if (vposition_ + visibleH > imh) {
        // hposition is actually false, probably because of a resize event!
        vposition_ = trivmax(imh - visibleH, 0);
    }
                
    if (hscrollbar && hscrollbar->visible()) {
        hscrollbar->scrollvalue((int)(hposition_+0.5), // horizontal position of the window
                                visibleW,   // visible width
                                0,          // by definition, horizontal origin of the image
                                imw);       // width of the image
    }
    if (vscrollbar && vscrollbar->visible()) {
        vscrollbar->scrollvalue((int)(vposition_ + 0.5), // vertical positin of the window
                                visibleH,   // visible height
                                0,          // by definition, vertical origin of the image
                                imh);       // height of the image
    }
    
    return;
}


// draw the image when the window size and the image size are
// no longer made to match
void imageViewer::drawImage_decoupled(int imw, 
                                      int imh, 
                                      int imd, 
                                      bool redrawBackground, 
                                      bool smooth,
                                      int visibleW, 
                                      int visibleH, 
                                      int &d) // careful -- r/w
{
    static int oldOx = -1, oldOy = -1, oldw = -1, oldh = -1;
		
    dbgprintf("    drawImage_decoupled:\n");

    if ((zoomFactor() == 1.0) && useOffscreenBuff) { // we use hand-made double buffering.
        dbgprintf("        (zoomfactor == 1 && useOffscreenBuff)\n");
        if ((imageObject->w() <= appMaxWidth)
            && (imageObject->h() <= appMaxHeight)) {
            // this is noticeable faster than
            // the generic function for any zoom factor
            // we allow
            dbgprintf("            imgdims <= appMax\n");
            if ((imw >= visibleW) && (imh >= visibleH)) {
                oldw = -1; // reset the black box condition
                dbgprintf("            fl_draw_clipped -- imw and h >= visible\n");
                fl_draw_clipped(imageObject,
                                Ox, Oy,
                                (int)(hposition_+0.5),
                                (int)(vposition_+0.5),
                                visibleW, visibleH);
            } else {
                // center image
                int newOx = (Ox + visibleW - imw)/2;
                newOx = trivmax(newOx, Ox);
                int newOy = (Oy + visibleH - imh)/2;
                newOy = trivmax(newOy, Oy);
                int neww = trivmin(imw, visibleW);
                int newh = trivmin(imh, visibleH);
                
		dbgprintf("            imw or h < visible\n");			    
                dbgprintf("            NewOx=%d, newOy=%d\n", newOx, newOy);
                // draw a black box if necessary
                if ((newOx != oldOx) || (newOy != oldOy)
                    || (neww != oldw) || (newh != oldh)
                    || redrawBackground || (d != 32)) {
                    dbgprintf("                draw white box, quick fill\n");
                    fl_color(FL_BLACK);
                    // fill whole window
                    fl_rectf(Ox,Oy,parentWindow->w(),parentWindow->h()); // quick fill
                    //fl_color(FL_WHITE);
                    //fl_rect(newOx-1, newOy-1,imw+2, imh+2); 
                    oldOx = newOx;
                    oldOy = newOy;
                    oldw = neww;
                    oldh = newh;
                }
                dbgprintf("            fl_draw_clipped\n", newOx, newOy);
                fl_draw_clipped(imageObject,
                                newOx,
                                newOy,
                                (int)(hposition_+0.5),
                                (int)(vposition_+0.5),
                                neww,
                                newh);
                d = 0;
            }
        } else {
            dbgprintf("            one of imgdims > appMax\n");
            // this is costing far less memory
            if ((imw >= visibleW) && (imh >= visibleH)) {
                oldw = -1; // reset the white box condition
                dbgprintf("                 draw_cliped_nobuf, imw & h > visible\n");
                fl_draw_clipped_nobuf(imageObject,
                                      Ox, Oy,
                                      (int)(hposition_+0.5),
                                      (int)(vposition_+0.5),
                                      visibleW, visibleH);
            } else {
                // center image
                int newOx = (Ox + visibleW - imw)/2;
                newOx = trivmax(newOx, Ox);
                int newOy = (Oy + visibleH - imh)/2;
                newOy = trivmax(newOy, Oy);
                int neww = trivmin(imw, visibleW);
                int newh = trivmin(imh, visibleH);
		
                dbgprintf("                 imw or h <= visible\n");
                dbgprintf("                 NewOx=%d, newOy=%d\n", newOx, newOy);
                // draw a white box if necessary
                if ((newOx != oldOx) || (newOy != oldOy)
                    || (neww != oldw) || (newh != oldh) 
                    || redrawBackground || (d != 32)) {
                    dbgprintf("                      quick fill (white box)\n");
                    fl_color(FL_BLACK);
                    // fill whole window
                    fl_rectf(Ox,Oy,parentWindow->w(),parentWindow->h()); // quick fill
                    //fl_color(FL_WHITE);
                    //fl_rect(newOx-1, newOy-1,imw+2, imh+2); 
                    oldOx = newOx;
                    oldOy = newOy;
                    oldw = neww;
                    oldh = newh;
                }
                dbgprintf("                 draw_clipped_nobuf\n");
                fl_draw_clipped_nobuf(imageObject,
                                      newOx,
                                      newOy,
                                      (int)(hposition_+0.5),
                                      (int)(vposition_+0.5),
                                      neww,
                                      newh);
                d = 0;
            }
        }
			
    } else  {
        dbgprintf("        (zoomfactor != 1 || !useOffscreenBuff)\n");
        // this works for all zoom factors > 0.0...
        if ((imw >= visibleW) && (imh >= visibleH)) {
            oldw = -1; // reset the white box condition
            dbgprintf("             fl_draw_zcnb -- imw and h > visible\n");
            fl_draw_zcnb(imageObject,
                         Ox, Oy, visibleW, visibleH,
                         (int)(hposition_/zoomFactor()),
                         (int)(vposition_/zoomFactor()),
                         (int)(visibleW/zoomFactor() + 0.5),
                         (int)(visibleH/zoomFactor() + 0.5),
                         smooth);
        } else { // white box
            // center the image
            int newOx = (Ox + visibleW - imw)/2;
            newOx = trivmax(newOx, Ox);
            int newOy = (Oy + visibleH - imh)/2;
            newOy = trivmax(newOy, Oy);
            int neww = trivmin(imw, visibleW);
            int newh = trivmin(imh, visibleH);
		
            dbgprintf("             imw or h <= visible\n");
            // draw a white box if necessary
            dbgprintf("             NewOx=%d, newOy=%d\n", newOx, newOy);
            if ((newOx != oldOx) || (newOy != oldOy)
                || (neww != oldw) || (newh != oldh)
                || redrawBackground || (d != 32)) {
                dbgprintf("             draw white box\n");
                fl_color(FL_BLACK);
                // fill whole window
                fl_rectf(Ox,Oy,parentWindow->w(),parentWindow->h()); // quick fill
                //fl_color(FL_WHITE);
                //fl_rect(newOx-1, newOy-1,imw+2, imh+2); 
                oldOx = newOx;
                oldOy = newOy;
                oldw = neww;
                oldh = newh;
            }
            dbgprintf("             fl_draw_zcnb\n");
            fl_draw_zcnb(imageObject,
                         newOx,
                         newOy,
                         neww,
                         newh,
                         (int)(hposition_/zoomFactor()),
                         (int)(vposition_/zoomFactor()), 
                         (int)(neww/zoomFactor() + 0.5),
                         (int)(newh/zoomFactor() + 0.5),
                         smooth);
            d = 0;
        }
    }
    nbPointDamage = 0; // reset point semaphore
    // reset the drawn status of lines linking point
    PtFileMngr->resetLinesStatus();
    // reset the drawn status of profile line when we want it sticky
    if (angleLine && keepProfileLine)
        angleLine->drawnStatus(0);
}

// draw an image that fits the window as best we can.
void imageViewer::drawImage_win_fit_img(int imw, 
                                        int imh, 
                                        int imd, 
                                        bool redrawBackground, 
                                        bool smooth,
                                        int visibleW, 
                                        int visibleH, 
                                        int &d) // careful -- r/w
{
    static int oldOx = -1, oldOy = -1, oldw = -1, oldh = -1;
		
    dbgprintf("    drawImage:\n");

    if ((zoomFactor() == 1.0) && useOffscreenBuff) { // we use hand-made double buffering.
        dbgprintf("        (zoomfactor == 1 && useOffscreenBuff)\n");
        if ((imageObject->w() <= appMaxWidth)
            && (imageObject->h() <= appMaxHeight)) {
            // this is noticeable faster than
            // the generic function for any zoom factor
            // we allow
            dbgprintf("            imgdims <= appMax\n");
            if ((imw >= visibleW) && (imh >= visibleH)) {
                oldw = -1; // reset the white box condition
                dbgprintf("            fl_draw_clipped -- imw and h >= visible\n");
                fl_draw_clipped(imageObject,
                                Ox, Oy,
                                (int)(hposition_+0.5),
                                (int)(vposition_+0.5),
                                visibleW, visibleH);
            } else {
                // center image
                int newOx = Ox + (visibleW - imw)/2;
                newOx = trivmax(newOx, Ox);
                int newOy = Oy + (visibleH - imh)/2;
                newOy = trivmax(newOy, Oy);
                int neww = trivmin(imw, visibleW);
                int newh = trivmin(imh, visibleH);
                
		dbgprintf("            imw or h < visible\n");			    
                dbgprintf("            NewOx=%d, newOy=%d\n", newOx, newOy);
                // draw a white box if necessary
                if ((newOx != oldOx) || (newOy != oldOy)
                    || (neww != oldw) || (newh != oldh)
                    || redrawBackground || (d != 32)) {
                    dbgprintf("                draw white box, quick fill\n");
                    fl_color(FL_WHITE);
                    fl_rectf(Ox,Oy,w(),h()); // quick fill
                    fl_color(FL_BLACK);
                    fl_rect(newOx-1, newOy-1,imw+2, imh+2); 
                    oldOx = newOx;
                    oldOy = newOy;
                    oldw = neww;
                    oldh = newh;
                }
                dbgprintf("            fl_draw_clipped\n", newOx, newOy);
                fl_draw_clipped(imageObject,
                                newOx,
                                newOy,
                                (int)(hposition_+0.5),
                                (int)(vposition_+0.5),
                                neww,
                                newh);
                d = 0;
            }
        } else {
            dbgprintf("            one of imgdims > appMax\n");
            // this is costing far less memory
            if ((imw >= visibleW) && (imh >= visibleH)) {
                oldw = -1; // reset the white box condition
                dbgprintf("                 draw_cliped_nobuf, imw & h > visible\n");
                fl_draw_clipped_nobuf(imageObject,
                                      Ox, Oy,
                                      (int)(hposition_+0.5),
                                      (int)(vposition_+0.5),
                                      visibleW, visibleH);
            } else {
                // center image
                int newOx = Ox + (visibleW - imw)/2;
                newOx = trivmax(newOx, Ox);
                int newOy = Oy + (visibleH - imh)/2;
                newOy = trivmax(newOy, Oy);
                int neww = trivmin(imw, visibleW);
                int newh = trivmin(imh, visibleH);
		
                dbgprintf("                 imw or h <= visible\n");
                dbgprintf("                 NewOx=%d, newOy=%d\n", newOx, newOy);
                // draw a white box if necessary
                if ((newOx != oldOx) || (newOy != oldOy)
                    || (neww != oldw) || (newh != oldh) 
                    || redrawBackground || (d != 32)) {
                    dbgprintf("                      quick fill (white box)\n");
                    fl_color(FL_WHITE);
                    fl_rectf(Ox,Oy,w(),h()); // quick fill
                    fl_color(FL_BLACK);
                    fl_rect(newOx-1, newOy-1,imw+2, imh+2); 
                    oldOx = newOx;
                    oldOy = newOy;
                    oldw = neww;
                    oldh = newh;
                }
                dbgprintf("                 draw_clipped_nobuf\n");
                fl_draw_clipped_nobuf(imageObject,
                                      newOx,
                                      newOy,
                                      (int)(hposition_+0.5),
                                      (int)(vposition_+0.5),
                                      neww,
                                      newh);
                d = 0;
            }
        }
			
    } else  {
        dbgprintf("        (zoomfactor != 1 || !useOffscreenBuff)\n");
        // this works for all zoom factors > 0.0...
        if ((imw >= visibleW) && (imh >= visibleH)) {
            oldw = -1; // reset the white box condition
            dbgprintf("             fl_draw_zcnb -- imw and h > visible\n");
            fl_draw_zcnb(imageObject,
                         Ox, Oy, visibleW, visibleH,
                         (int)(hposition_/zoomFactor()),
                         (int)(vposition_/zoomFactor()),
                         (int)(visibleW/zoomFactor() + 0.5),
                         (int)(visibleH/zoomFactor() + 0.5),
                         smooth);
        } else { // white box
            // center the image
            
            int newOx = Ox + (visibleW - imw)/2;
            newOx = trivmax(newOx, Ox);
            int newOy = Oy + (visibleH - imh)/2;
            newOy = trivmax(newOy, Oy);
            int neww = trivmin(imw, visibleW);
            int newh = trivmin(imh, visibleH);
		
            dbgprintf("             imw or h <= visible\n");
            // draw a white box if necessary
            dbgprintf("             NewOx=%d, newOy=%d\n", newOx, newOy);
            if ((newOx != oldOx) || (newOy != oldOy)
                || (neww != oldw) || (newh != oldh)
                || redrawBackground || (d != 32)) {
                dbgprintf("             draw white box\n");
                fl_color(FL_WHITE);
                fl_rectf(Ox,Oy,w(),h()); // quick fill
                fl_color(FL_BLACK);
                fl_rect(newOx-1, newOy-1,imw+2, imh+2); 
                oldOx = newOx;
                oldOy = newOy;
                oldw = neww;
                oldh = newh;
            }
            dbgprintf("             fl_draw_zcnb\n");
            fl_draw_zcnb(imageObject,
                         newOx,
                         newOy,
                         neww,
                         newh,
                         (int)(hposition_/zoomFactor()),
                         (int)(vposition_/zoomFactor()), 
                         (int)(neww/zoomFactor() + 0.5),
                         (int)(newh/zoomFactor() + 0.5),
                         smooth);
            d = 0;
        }
    }
    nbPointDamage = 0; // reset point semaphore
    // reset the drawn status of lines linking point
    PtFileMngr->resetLinesStatus();
    // reset the drawn status of profile line when we want it sticky
    if (angleLine && keepProfileLine)
        angleLine->drawnStatus(0);
}

void imageViewer::draw()
{
    int imw,imh,imd;
    int i;
    int d = damage();
    bool    redrawBackground;
    bool smooth;

    if (!parentWindow) // nothing to see
        return;

    if (hideMainMenu) {
        //position(x(), 0);
        Oy = 0;
    } else {
        //position(x(), MENUHEIGHT);
        Oy = MENUHEIGHT;
    }

    dbgprintf("Drawing the image now\n");
    
    if (d == FL_DAMAGE_ALL) {
	d = 32 ;  // 32 redraws absolutely everything...
	redrawBackground = true;
	dbgprintf("Damage is FL_DAMAGE_ALL, reduced to 32\n");
    } else {
	redrawBackground = false;
    }
    if ((d & 32) || (d & 16) || (d & 8) || (d & 4)) {

	// get the smooth preference issue sorted out
	if (fileprefs)
	    smooth = fileprefs->smoothZoomout(); // use the users' pref when available
	else
	    smooth = false;  // by default do not draw smoothly when (un)zooming
	

        // redraw parts or all of the image:
        if (imageObject) {
	    imw = currentImageWidth();
	    imh = currentImageHeight();
	    imd = currentImageDepth();

	    if (getdisplaymode() == IMV_DISPLAY_IMG_FIT_WINDOW) {
		dbgprintf("Draw to fit windows w=%d, h=%d\n",
			  w(), h());
		fl_draw_zcnb(imageObject,
			     Ox, Oy, w(), h(),
			     0, 0, imw, imh, smooth);
                xZoomFactor_ = w()/(double)imw;
                yZoomFactor_ = h()/(double)imh;
	    } else {
                int visibleW = visibleWidth();
                int visibleH = visibleHeight();
                dbgprintf("VisibleW = %d, visibleH =%d\n", visibleW, visibleH);
                if (getdisplaymode() == IMV_DISPLAY_WINDOW_FIT_IMG)
                    drawScrollbars_win_fit_img(imw, imh, visibleW, visibleH);
                else if (getdisplaymode() == IMV_DISPLAY_DECOUPLE_WIN_IMG)
                    drawScrollbars_decoupled(imw, imh, parentWindow->w(), parentWindow->h());

	    
		if (d & 32 || (imw < visibleW) || (imh < visibleH)) {
                    // complete redraw of the image
                    if (getdisplaymode() == IMV_DISPLAY_WINDOW_FIT_IMG)
                        drawImage_win_fit_img(imw, imh, imd, 
                                              redrawBackground, smooth,
                                              visibleW, visibleH,
                                              d);
                    else if (getdisplaymode() == IMV_DISPLAY_DECOUPLE_WIN_IMG)
                        drawImage_decoupled(imw, imh, imd, 
                                            redrawBackground, smooth,
                                            parentWindow->w(), parentWindow->h(),
                                            d);
                }
		if (d & 16) {
		    // only redraws the top of the image (where the information box was)
		    if (zoomFactor() == 1.0) {
			fl_draw_clipped_nobuf(imageObject,
					      Ox, Oy,
					      (int)(hposition_+0.5),
					      (int)(vposition_+0.5),
					      visibleW, STATUS_HEIGHT);
		    } else if (zoomFactor() > 1.0 ) {
			fl_draw_zcnb(imageObject,
				     Ox,
				     Oy,
				     visibleW,
				     STATUS_HEIGHT,
				     (int)(hposition_/zoomFactor()),
				     (int)(vposition_/zoomFactor()),
				     (int)(visibleW/zoomFactor() + 0.5),
				     (int)(STATUS_HEIGHT/zoomFactor() + 0.5),
				     smooth);
		    } else {
			// unfortunately, in this particular situation the zoom is broken.
			// we need to redraw the whole thing
			fl_draw_zcnb(imageObject,
				     Ox, Oy, visibleW, visibleH,
				     (int)(hposition_/zoomFactor()),
				     (int)(vposition_/zoomFactor()),
				     (int)(visibleW/zoomFactor() + 0.5),
				     (int)(visibleH/zoomFactor() + 0.5),
				     smooth);
		    }
		}

		if (d & 8) {
		    // only redraws the bottom of the image (where the information box was)
		    if (zoomFactor() == 1.0) {
			fl_draw_clipped_nobuf(imageObject,
					      Ox,
					      Oy+visibleHeight()-STATUS_HEIGHT,
					      (int)(hposition_+0.5),
					      (int)(vposition_+visibleHeight()-STATUS_HEIGHT+0.5),
					      visibleW, STATUS_HEIGHT);
		    } else {
			fl_draw_zcnb(imageObject,
				     Ox,
				     Oy+visibleHeight()-STATUS_HEIGHT,
				     visibleW,
				     STATUS_HEIGHT,
				     (int)(hposition_/zoomFactor() + 0.5),
				     (int)((vposition_+visibleHeight()-STATUS_HEIGHT)/zoomFactor() +0.5),
				     (int)(visibleW/zoomFactor() + 0.5),
				     (int)(STATUS_HEIGHT/zoomFactor() + 0.5),
				     smooth);
		    }
		}


		if (d & 4) {
		    // delete point from pointfiles
		    dbgprintf("Actually deleting point at %d,%d\n", delPtX, delPtY);
		    if (zoomFactor() == 1.0) {
			fl_draw_clipped_nobuf(imageObject,
					      (int)(Ox - hposition_ + delPtX-4 + 0.5),
					      (int)(Oy - vposition_ + delPtY-4 + 0.5),
					      delPtX - 4,
					      delPtY - 4,
					      9, 9);
		    } else if (zoomFactor() > 1.0) {
			int minx, miny;
			int wWin, hWin;
			minx = delPtX - 4;
			miny = delPtY - 4;
			wWin = 9;
			hWin = 9;
			fl_draw_zcnb(imageObject,
				     xOnWindow(minx-0.5),
				     yOnWindow(miny-0.5),
				     (int)(wWin*zoomFactor()+0.5),
				     (int)(hWin*zoomFactor()+0.5),
				     minx,
				     miny,
				     wWin,
				     hWin,
				     smooth);
		    } else {
			int minx, miny;
			int wWin, hWin;
			minx = delPtX - (int)(4/zoomFactor()+0.5);
			miny = delPtY - (int)(4/zoomFactor()+0.5);
			wWin = 9;
			hWin = 9;
			fl_draw_zcnb(imageObject,
				     xOnWindow(minx-0.5),
				     yOnWindow(miny-0.5),
				     wWin,
				     hWin,
				     minx,
				     miny,
				     (int)(wWin/zoomFactor()+0.5),
				     (int)(hWin/zoomFactor()+0.5),
				     smooth);
		    }
		    nbPointDamage--;

		}
	    }
	}
	// draws the children
	dbgprintf("Redrawing %d children\a", children());
	for (i = 0 ; i < children() ; i ++) {
	    if (child(i)->visible()) {
		dbgprintf(" %d...", i);
		child(i)->redraw();
		child(i)->draw();
	    }
	}
	dbgprintf(" done\b");
    } else if (d & 1) {      // only redraw the children that need it
	//dbgprintf("Damage(1)\n");
        dbgprintf("Only redrawing %d children\a", children());
	for (i = 0 ; i < children() ; i++) {
	    if (child(i)->visible()) {
                dbgprintf(" %d...", i);
		child(i)->redraw();
		child(i)->draw();
	    }
	}
    }

    // update the image information if possible
    if (imageInfoPanel)
	imageInfoPanel->update();
    
    return;
}



// this is now much easier                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 to write since 0.96
int imageViewer::handle(int event)
{
    int  retval = 0;
    static int  button = 0;
    static bool pushedHere = false; // we want to drag the scrollbar only if the push occured in the scrollbar.

    //dbgprintf("Image Viewer: Got event %d"
    //       " Mouse position: x=%d, y=%d\n", 
    //       event, Fl::event_x(), Fl::event_y());

    // got to figure out where the scrollbars are.
    if (vscrollbar && vscrollbar->visible() && (Fl::event_inside(vscrollbar))) {
	if ((event != FL_PUSH) && pushedHere) {
	    if (event == FL_DRAG) {
		if (Fl::event_state(FL_BUTTON1)) {
		    handleLeftButtonDragged();
		    retval = 1;
		} else if (Fl::event_state(FL_BUTTON2)) {
		    handleMiddleButtonDragged();
		    retval = 1;
		} else if (Fl::event_state(FL_BUTTON3)) {
		    // do nothing
		    retval = 1;
		}
	    } else if (event == FL_RELEASE) {
		dbgprintf("Release, event state %d\n", Fl::event_state());
		// in this instance, Fl::event_state() doesn't help
		button = Fl::event_button();
		if (button == LEFT_BUTTON) {
		    handleLeftButtonReleased();
		    retval = 1;
		} else if (button == MIDDLE_BUTTON) {
		    handleMiddleButtonReleased();
		    retval = 1;
		} else if (button == RIGHT_BUTTON) {
		    handleRightButtonReleased();
		    retval = 1;
		}
	    } 
	} else {
	    // simply returning 0 and hoping for the best will not be suffficient
	    // for the children to handle what they need to handle
	    if (event == FL_PUSH) pushedHere = false; // push event occurs in the scroll bars
	    // the documentation says explicitely to call this:
	    if (Fl_Group::handle(event)) return 1;
	    // verify that no stone has been left unturned
	    //handleLeftButtonReleased();
	} 
    } else if (hscrollbar && hscrollbar->visible() && (Fl::event_inside(hscrollbar))) {
	if ((event != FL_PUSH) && pushedHere) {
	    if (event == FL_DRAG) {
		if (Fl::event_state(FL_BUTTON1)) {
		    handleLeftButtonDragged();
		    retval = 1;
		} else if (Fl::event_state(FL_BUTTON2)) {
		    handleMiddleButtonDragged();
		    retval = 1;
		} else if (Fl::event_state(FL_BUTTON3)) {
		    // do nothing
		    retval = 1;
		}
	    } else if (event == FL_RELEASE) {
		button = Fl::event_button();
		if (button == LEFT_BUTTON) {
		    handleLeftButtonReleased();
		    retval = 1;
		} else if (button == MIDDLE_BUTTON) {
		    handleMiddleButtonReleased();
		    retval = 1;
		} else if (button == RIGHT_BUTTON) {
		    handleRightButtonReleased();
		    retval = 1;
		}
	    }
	} else {
	    if (event == FL_PUSH) pushedHere = false; // push event occurs in the scroll bars
	    // verify that no stone has been left unturned
	    // the documentation says explicitely to call this:
	    if (Fl_Group::handle(event)) return 1;
	    // verify that no stone has been left unturned
	    //handleLeftButtonReleased();
	}
    } else if (imageObject) { // otherwise there is nothing to do
        // we have to take care of the event by ourselves
        switch (event) {
          case FL_PUSH:
	    //button = Fl::event_button();
	    pushedHere = true;
	    if (Fl::event_state(FL_BUTTON1)) {
		handleLeftButtonPushed();
		retval = 1;
	    } else if  (Fl::event_state(FL_BUTTON2)) {
		handleMiddleButtonPushed();
		retval = 1;
	    } else if (Fl::event_state(FL_BUTTON3)) {
		// we do nothing, but we handle the event
		retval = 1;
	    }
	    break;
            
          case FL_DRAG:
	    if (Fl::event_state(FL_BUTTON1)) {
		handleLeftButtonDragged();
		retval = 1;
	    } else if  (Fl::event_state(FL_BUTTON2)) {
		handleMiddleButtonDragged();
		retval = 1;
	    } else if (Fl::event_state(FL_BUTTON3)) {
		// we still do nothing, but we expect the release event!
		retval = 1;
	    }
	    break;

          case FL_RELEASE:
	    pushedHere = false;
	    button = Fl::event_button();
	    if (button == LEFT_BUTTON) {
		handleLeftButtonReleased();
		retval = 1;
	    } else if (button == MIDDLE_BUTTON) {
		handleMiddleButtonReleased();
		retval = 1;
	    } else if (button == RIGHT_BUTTON) {
		handleRightButtonReleased();
		retval = 1;
	    }
            break;

	  case FL_ENTER:
	    // Mouse focus, change the cursor to the local default
	    chg_cursor(MY_CURSOR_DEFAULT);
	    retval = 1;
	    break;

	  case FL_MOVE:
	  { pointermode m = getpointermode(0);
	  
	  if (Fl::event_state(FL_SHIFT)
	      || (m == IMV_POINTER_EDITPT_MODE)
	      || (m == IMV_POINTER_DELPT_MODE)
	      || (m == IMV_POINTER_DELGRP_MODE)) {
	      // inexpensive calculation first
	      int x, y, X, Y;
	      x = Fl::event_x();
	      y = Fl::event_y();
		
	      // make sure we stay in the image
	      if (x < Ox)
		  x = Ox;
	      if (y < Oy)
		  y = Oy;
	      if (x < Ox) x = Ox;
	      if (x >= visibleWidth()+Ox) x = visibleWidth()+Ox -1;
	      if (y < Oy) y = Oy;
	      if (y >= visibleHeight()+Oy) y = visibleHeight()+Oy -1;
	    
	      X = xInImage(x); // convert local coordinates to image ones.
	      Y = yInImage(y);

		
	      if (Fl::event_state(FL_CTRL)
		  || Fl::event_state(FL_ALT)
		  || (m == IMV_POINTER_EDITPT_MODE)
		  || (m == IMV_POINTER_DELPT_MODE)
		  || (m == IMV_POINTER_DELGRP_MODE)) {
		  // expensive bit here
		  if (PtFileMngr->isValidPoint(X,Y)) {
		      if (Fl::event_state(FL_CTRL) || 
			  (m == IMV_POINTER_EDITPT_MODE)) // re-test
			  chg_cursor(MY_CURSOR_INSERT);
		      else
			  chg_cursor(MY_CURSOR_KILL);
		  } else { // not near a valid poing
		      if (m == IMV_POINTER_EDITPT_MODE)
			  chg_cursor(MY_CURSOR_RHAND); // inverted contrast
		      else if ((m == IMV_POINTER_DELPT_MODE)
			       || (m == IMV_POINTER_DELGRP_MODE))
			  chg_cursor(MY_CURSOR_LHAND);
		      else
			  chg_cursor(MY_CURSOR_DEFAULT);
		  }
	      } 
	  } else {
	      // more mundane modes (no need to look if close to a point)
	      switch (m) {
              case IMV_POINTER_SELECT_MODE:
		  chg_cursor(MY_CURSOR_SELECT);
		  break;
              case IMV_POINTER_MEASURE_MODE:
		  chg_cursor(MY_CURSOR_MEASURE);
		  break;
              case IMV_POINTER_ADDPT_MODE:
		  chg_cursor(MY_CURSOR_DOT);
		  break;
              case IMV_POINTER_DRAWPT_MODE:
                  chg_cursor(MY_CURSOR_DRAW);
                  break;
              default:
		  chg_cursor(MY_CURSOR_DEFAULT);
		  break;
	      }
	  }
	  }
	  break;

	  case FL_LEAVE:
	    // Return to normal cursor
	    chg_cursor(FL_CURSOR_DEFAULT);
	    retval = 1;
	    break;

	  case FL_FOCUS:
	    dbgprintf("Image viewer has keyboard focus\n");
	    retval = 1; // we want the focus!
	    break;

	  case FL_UNFOCUS:
	    dbgprintf("Image viewer focus released\n");
	    retval = 1; // we release the focus
	    break;

	  case FL_SHORTCUT:
	    dbgprintf("Event is a shortcut\n");
	  case FL_KEYBOARD:
	    // try to handle the event, and if not, send it to the children
	    if ((retval = handleKeyboardEvent()) == 0)
		retval = Fl_Group::handle(event);
	    break;
        }
    }


    return retval;
}

// private methods

static void hscrollbar_callback(Fl_Object *hs,void *) {
    int localpos = int(((Fl_Slider *)hs)->value());

    //dbgprintf("Horizontal scrollbar callback called, local pos = %d\n", localpos);
    ((imageViewer *)(hs->parent()))->hposition(localpos);
}

static void vscrollbar_callback(Fl_Object *vs,void *) {
    int localpos = int(((Fl_Slider *)vs)->value());
    //dbgprintf("Vertical scrollbar callback called, local pos = %d\n", localpos);
    ((imageViewer *)(vs->parent()))->vposition(localpos);
}

// returns true if resize does occur
bool imageViewer::sizeParent(int sizeX, int sizeY)
{
    static int oldSizeX = -1, oldSizeY = -1;
    static int realSizeX, realSizeY;
    bool   retval = false;

    if (getdisplaymode() != IMV_DISPLAY_DECOUPLE_WIN_IMG) {
	realSizeX = trivmax(sizeX, Ox + MINWIDTH);
	realSizeY = trivmax(sizeY, Oy + MINHEIGHT);
    
	// do the resize only if needed
	if ((realSizeX != oldSizeX) || (realSizeY != oldSizeY)
	    || (realSizeX != parentWindow->w()) || (realSizeY != parentWindow->h())) {
	    dbgprintf("Resizing parent window to [%d]x[%d]\n", realSizeX, realSizeY);
	    parentWindow->size(realSizeX, realSizeY);
	    oldSizeX = realSizeX;
	    oldSizeY = realSizeY;
	    retval = true;
	} 
    }
    
    return retval;
}

void imageViewer::setdisplaymode(displaymode m)
{
    dmode_ = m;

    switch (m) {
    case IMV_DISPLAY_WINDOW_FIT_IMG:
        allowSizeConstraints(true);
        break;
    default:
        allowSizeConstraints(false);
        break;
    }

    return;
}

// allow or disallows size constraints
void imageViewer::allowSizeConstraints(bool tf)
{
    if (tf) {
        sizeConstrained = true;
        resize();
    } else {
        sizeConstrained = false;
        // might be dangerous...
        parentWindow->size_range(MINWIDTH,MINHEIGHT,0,0);
    }
    return;
}

// handles the max/min size constraints
void imageViewer::sizeConstraints(int maxwidth, int maxheight)
{
    int windowMaxWidth, windowMaxHeight;
    int windowMinWidth, windowMinHeight;
    static int oldMaxWidth = -1, oldMaxHeight = -1;
    static int oldMinWidth = -1, oldMinHeight = -1;

    if (getdisplaymode() != IMV_DISPLAY_WINDOW_FIT_IMG) {
	dbgprintf("Display mode not compatible with constraints\n");
	parentWindow->size_range(MINWIDTH,MINHEIGHT,0,0);
        return; // no constraint here
    }
    
    windowMaxWidth = Ox + maxwidth;
    windowMaxHeight = Oy + maxheight;
    windowMinWidth = Ox+MINWIDTH;
    windowMinHeight = Oy+MINHEIGHT;

    // now weird things can happen if the max size as given
    // above are larger than the minimum size, which can
    // happen if the zoom factor is large and the image quite small...
    if (windowMaxWidth <= windowMinWidth) {
	dbgprintf("Rounding error in window width measurement:%d\n", windowMaxWidth);
	// MinWidth is not all that important as long at the menu can still be seen
	windowMaxWidth = windowMinWidth + 2;
    }
    
    if (windowMaxHeight <= windowMinHeight) {
	dbgprintf("Rounding error in window height measurement:%d\n", windowMaxHeight);
	// minheight is more critical as it is much smaller
	windowMaxHeight = windowMinHeight + 2;
    }

    if ((windowMaxWidth != oldMaxWidth)
	|| (windowMaxHeight != oldMaxHeight)
	|| (windowMinWidth != oldMinWidth)
	|| (windowMinHeight != oldMinHeight)) {
	// we need to update the limits
	dbgprintf("Setting up limits to: minw= %d, minh= %d, maxw = %d, minw = %d\n",
		  windowMinWidth, windowMinHeight,
		  windowMaxWidth, windowMaxHeight);
	
	parentWindow->size_range(windowMinWidth,
				 windowMinHeight,
				 windowMaxWidth,
				 windowMaxHeight);
	oldMaxWidth = windowMaxWidth;
	oldMaxHeight = windowMaxHeight;
	oldMinWidth = windowMinWidth;
	oldMinHeight = windowMinHeight;
    } else {
	dbgprintf("Windows limits unchanged\n");
    }
    return;
}

// return the position and dimensions of the subset
// of the image currently being displayed.
void imageViewer::getCurrentBox(int &bx, int &by, int &bw, int &bh)
{
    // this is now not so bad
    if (zoomDragInProgress) {
	bx = dragX;
	by = dragY;
	bw = dragW;
	bh = dragH;
    } else {
	if ((currentImageWidth() >= visibleWidth())
	    && (currentImageHeight() >= visibleHeight())) {
	    bx = (int)(hposition_/zoomFactor());
	    by = (int)(vposition_/zoomFactor());
	    bw = (int)(visibleWidth()/zoomFactor() + 0.5);
	    bh = (int)(visibleHeight()/zoomFactor() + 0.5);
	} else {
	    int neww = trivmin(currentImageWidth(), visibleWidth());
	    int newh = trivmin(currentImageHeight(), visibleHeight());
	    bx = (int)(hposition_/zoomFactor());
	    by = (int)(vposition_/zoomFactor());
	    bw = (int)(neww/zoomFactor() + 0.5);
	    bh = (int)(newh/zoomFactor() + 0.5);
	}
    }
    
    return;
}

void imageViewer::removeLine(void)
{
    keepProfileLine = false;
    if (angleLine != 0) {
	// remove the last line
	parentWindow->make_current();
	angleLine->undraw();
	remove(angleLine);
	delete angleLine;
	angleLine = 0;
    }
    return;
}

// the X and Y position in the image are difficult to
// compute from the position of the cursor, because an integer
// number of pixels is always displayed, even at very high magnifications.

// 18 Jul 1998: this has become even more difficult now that the actual
// image may be lost in the middle of the display area at low magnification,
// of for small images.

// computes the x position in the image given a X position on the window
int imageViewer::xInImage(int x) {
    int imw = currentImageWidth();
    int visibleW = visibleWidth();
    int newWidth = trivmin(imw, visibleW);
    int newOx = Ox + (visibleW - imw)/2;
    newOx = trivmax(newOx, Ox);
    
    //double realxf = (double)visibleW/((int)(visibleW/zoomFactor() + 0.5));
    double realxf = (double)newWidth/((int)(newWidth/zoomFactor() + 0.5));
    return ((int)((x - newOx)/realxf) + (int)(hposition_ / zoomFactor()));
}

// computes the X position on the window given a x position in the image
int imageViewer::xOnWindow(double X) {
    double realxf = (double)visibleWidth()/((int)(visibleWidth()/zoomFactor() + 0.5));
    int    woffset = Ox + (visibleWidth() - currentImageWidth())/2;
    woffset = trivmax(woffset, Ox);
    return((int)(realxf *((X+0.5) - (int)(hposition_/zoomFactor())) + woffset));
}

// Computes the x position in the window given an x position in the window !
inline int imageViewer::xWtoW(int x) {
    double realxf = (double)visibleWidth()/((int)(visibleWidth()/zoomFactor() + 0.5));
    return((int)(realxf * (int)((x - Ox)/realxf)) + Ox);
}

// adjust a width in the window to fall on an integer number of pixels.
inline int imageViewer::adjW(int w) {
    double realxf = (double)visibleWidth()/((int)(visibleWidth()/zoomFactor() + 0.5));
    return((int)(realxf * (int)(w/realxf + 1) + 0.5));
}

// computes the y position in the image given a Y position on the window
inline int  imageViewer::yInImage(int y) {
    int imh = currentImageHeight();
    int visibleH = visibleHeight();
    int newHeight = trivmin(imh, visibleH);
    int newOy = Oy + (visibleH - imh)/2;
    newOy = trivmax(newOy, Oy);
    
    //double realyf = (double)visibleHeight()/((int)(visibleHeight()/zoomFactor() + 0.5));
    double realyf = (double)newHeight/((int)(newHeight/zoomFactor() + 0.5));
    return ((int)((y - newOy)/realyf) + (int)(vposition_ / zoomFactor()));
}

// computes the Y position on the window given a y position in the image
int imageViewer::yOnWindow(double Y) {
    double realyf = (double)visibleHeight()/((int)(visibleHeight()/zoomFactor() + 0.5));
    int    hoffset = Oy + (visibleHeight() - currentImageHeight())/2;
    hoffset = trivmax(hoffset, Oy);
    return((int)(realyf *((Y+0.5) - (int)(vposition_/zoomFactor())) + hoffset));
}

// computes the y position in the window given a y position in the window !
inline int  imageViewer::yWtoW(int y) {
    double realyf = (double)visibleHeight()/((int)(visibleHeight()/zoomFactor() + 0.5));
    return((int)(realyf * (int)((y - Oy)/realyf)) + Oy);
}

// adjust a height in the window to fall on an integer number of pixels
inline int imageViewer::adjH(int h) {
    double realyf = (double)visibleHeight()/((int)(visibleHeight()/zoomFactor() + 0.5));
    return((int)(realyf * (int)(h/realyf + 1) + 0.5));
}

inline int imageViewer::wInImage(int w) {
    double realxf = (double)visibleWidth()/((int)(visibleWidth()/zoomFactor() + 0.5));
    return ((int)(w/realxf + 0.5));
}

inline int imageViewer::hInImage(int h) {
    double realyf = (double)visibleHeight()/((int)(visibleHeight()/zoomFactor() + 0.5));
    return ((int)(h / realyf + 0.5));
}


/////////////////////
/// Left button operations


void imageViewer::handleLeftButtonPushed() {
    int         x, y, xs, ys, ws, hs;
    pointermode  currentMode = getpointermode(LEFT_BUTTON);

    // create the status line
    x = Fl::event_x();
    y = Fl::event_y();
    xs = Ox;
    ws = visibleWidth();
    hs = STATUS_HEIGHT;  // defined in imageViewer.hxx
    if (y > visibleHeight()/2) {
	ys = Oy;
    } else {
	ys = Oy+visibleHeight()-STATUS_HEIGHT;
    }

    // quick fix to a slightly unusual problem:
    // previous status line had not been deleted!
    if (statusLine) {
	if (statusLine->y() == Oy)
	    damage(16); // redisplay top of the image
	else
	    damage(8); // redisplay bottom of the image
	remove(statusLine);
	delete statusLine;
	statusLine = 0;
    }

    if (currentMode != IMV_POINTER_SELECT_MODE) {
	statusLine = new Fl_Output(xs, ys,
				   ws, hs,
				   0);  // no label

	// mode handling
	switch (currentMode) {
        case IMV_POINTER_ADDPT_MODE:
	    // invert colours
	    statusLine->color(FL_BLACK);
	    statusLine->textcolor(FL_WHITE);
	    chg_cursor(MY_CURSOR_DOT);
	    break;
            
        case IMV_POINTER_DRAWPT_MODE:
	    // invert colours
	    statusLine->color(FL_BLACK);
	    statusLine->textcolor(FL_WHITE);
	    chg_cursor(MY_CURSOR_DRAW);
	    break;

        case IMV_POINTER_DELPT_MODE:
        case IMV_POINTER_DELGRP_MODE:
	    // invert colours
	    statusLine->color(FL_BLACK);
	    statusLine->textcolor(FL_WHITE);
	    chg_cursor(MY_CURSOR_KILL);
	    break;

        case IMV_POINTER_MEASURE_MODE:
	    lineProfileInProgress = true;
	    statusLine->color(FL_BLUE);
	    statusLine->textcolor(FL_YELLOW);
	    chg_cursor(FL_CURSOR_HAND);
	    angleStartX = x;
	    angleStartY = y;
	    break;

        default:
	    // just change the cursor to a crosshair
	    chg_cursor(MY_CURSOR_CROSS);
	    break;
	}
    
	statusLine->textfont(STATUS_FONT);
	statusLine->textsize(STATUS_SIZE);
	add(statusLine);
    } else { // select mode doesn't require the statusLine, rather, it slows things down.
	selectBoxX = x;
	selectBoxY = y;
	selectBoxDefined = 1;
	nbFlBoxDamage = 0; 
	chg_cursor(MY_CURSOR_SELECT);
    }

    // call `left button dragged' handler
    // so that the status line appears without having to wiggle the mouse around...
    handleLeftButtonDragged();
    
    return;
}


void imageViewer::handleLeftButtonDragged() {
    int x, y, X, Y, d;
    const unsigned char *p;
    unsigned char r, g, b;

    // it is possible to get there without handleLeftButtonPushed
    // having been called. This can happen if you push the left button
    // in one of the scrollbar and drag past its boundary. In this
    // case this present routine is called, but there never was any statusLine
    // allocated. 
    if (statusLine) {
	x = Fl::event_x();
	y = Fl::event_y();

	// fix up the x and y values:
	if (x < Ox)
	    x = Ox;
	if (y < Oy)
	    y = Oy;
	if (x > visibleWidth() + Ox - 1)
	    x = visibleWidth() + Ox - 1;
	if (y > visibleHeight() + Oy - 1)
	    y = visibleHeight() + Oy - 1;

	// which mode are we in
	switch (getpointermode(LEFT_BUTTON)) {
        case IMV_POINTER_ADDPT_MODE:
	    statusLine->color(FL_BLACK);
	    statusLine->textcolor(FL_WHITE);
	    chg_cursor(MY_CURSOR_DOT);
	    break;

        case IMV_POINTER_DRAWPT_MODE:
	    statusLine->color(FL_BLACK);
	    statusLine->textcolor(FL_YELLOW);
	    chg_cursor(MY_CURSOR_DRAW);
            { // add point
		pointParams mypp; // initialized with defaults

		mypp.size=1;
		mypp.pts=1;
		mypp.annotated=true;
                // draw in the current colour, increment colour at break
		mypp.col=fl_closest_index(currentPtColour_);
                X = xInImage(x); // convert local coordinates to image ones.
                Y = yInImage(y);
                d = imageObject->d();
                p = (unsigned char *)(imageObject->data()[0] + d *(X + Y * imageObject->w()));

		if (d == 3) {
		    PtFileMngr->addPoint(X,Y,theImage->getCurrZpos(),
					 *p,
					 *(p+1),
					 *(p+2),
					 theImage->hasRawData(), // is there more data yet?
					 mypp); 
		} else {
		    PtFileMngr->addPoint(X,Y,theImage->getCurrZpos(),
					 *p,
					 *p,
					 *p,
					 theImage->hasRawData(), // is there more data yet?
					 mypp);
		}
	    }
	    break;

        case IMV_POINTER_DELPT_MODE:
        case IMV_POINTER_DELGRP_MODE:
	    statusLine->color(FL_BLACK);
	    statusLine->textcolor(FL_WHITE);
	    chg_cursor(MY_CURSOR_KILL);
	    break;

        case IMV_POINTER_MEASURE_MODE:
	    statusLine->color(FL_BLUE);
	    statusLine->textcolor(FL_YELLOW);
	    chg_cursor(FL_CURSOR_HAND);
	    break;

        case IMV_POINTER_SELECT_MODE:
	    statusLine->color(FL_BLACK);
	    statusLine->textcolor(FL_WHITE);
	    chg_cursor(MY_CURSOR_SELECT);
	    break;

        default:
	    statusLine->color(FL_WHITE);
	    statusLine->textcolor(FL_BLACK);
	    chg_cursor(MY_CURSOR_CROSS);
	    break;
	}

	if (!lineProfileInProgress) {
	    // decide the content of the status line in the pointwise cases

	    X = xInImage(x); // convert local coordinates to image ones.
	    Y = yInImage(y);
	    if (X >= theImage->imageWidth())
		X = theImage->imageWidth() - 1;
	    else if (X < 0)
		X = 0;
	    if (Y >= theImage->imageHeight())
		Y = theImage->imageHeight() - 1;
	    else if (Y < 0)
		Y = 0;
	
	    d = imageObject->d();
	    // serious change in FLTK-1.1.x
	    p = (const unsigned char *)imageObject->data()[0] + d *(X + Y * imageObject->w());
	    if (d == 3) {
		r = *p;
		g = *(p+1);
		b = *(p+2);
		if (theImage->getCurrImgThickness() == 1) {
		    // no 3-D information
		    sprintf(statusMessage,"x=%d, y=%d, r=%d, g=%d, b=%d %s",
			    X, Y,
			    r, g, b,
			    theImage->getRawDataInfo(X, Y));
		} else {
		    sprintf(statusMessage,"x=%d, y=%d, z=%d, r=%d, g=%d, b=%d %s",
			    X, Y, theImage->getCurrZpos(),
			    r, g, b,
			    theImage->getRawDataInfo(X, Y));
		}
	    } else {
		g = b = r = *p;
		if (theImage->getCurrImgThickness() == 1) {
		    sprintf(statusMessage,"x=%d, y=%d, gl=%d %s",
			    X, Y,
			    r,
			    theImage->getRawDataInfo(X, Y));
		} else {
		    sprintf(statusMessage,"x=%d, y=%d, z=%d, gl=%d %s",
			    X, Y, theImage->getCurrZpos(),
			    r,
			    theImage->getRawDataInfo(X, Y));
		}
	    }
	    // hyperspectral data
	    if ((theImage->getCurrImgNbSamples() > 1) 
		&& spectraPanel 
		&& spectraPanel->visible()) {
		int nb;
		double *s;

		dbgprintf("sendind data to spectra panel\n");
		s = theImage->getRawDataVector(X,Y,&nb);
		spectraPanel->setData(s,nb, X, Y);
		spectraPanel->redraw();
	    } else {
                dbgprintf("Nbcomp=%d, spectrapanel=%p, visible=%d\n", theImage->getCurrImgNbComps(), spectraPanel, (spectraPanel) ? spectraPanel->visible():0);
            }
	    // 3D data depth profile
	    if ((theImage->getCurrImgThickness() > 1) 
		&& depthProfile 
		&& depthProfile->visible()) {
		int nb;
		double *s;
		dbgprintf("sendind data to depth profile panel\n");
		s = theImage->get3DRawDataVector(X, Y, &nb);
		depthProfile->setData(s,nb, X, Y);
		depthProfile->redraw();
	    }
	} else {
	    // decides the content of the status line in profile mode
	    int X2, Y2;
	    double angle, distance;
	    X = xInImage(x);
	    Y = yInImage(y);
	    X2 = xInImage(angleStartX);
	    Y2 = yInImage(angleStartY);
	    distance = sqrt((double)(X-X2)*(X-X2)+(Y-Y2)*(Y-Y2));
	    if ((X-X2) > 0)
		angle = atan((double)(Y2-Y)/(X-X2)) * 180.0/M_PI;
	    else if ((X-X2) < 0) {
		if (Y <= Y2)
		    angle = (atan((double)(Y2-Y)/(X-X2)) + M_PI) * 180.0/M_PI;
		else
		    angle = (atan((double)(Y2-Y)/(X-X2)) - M_PI) * 180.0/M_PI;
	    } else if ((Y-Y2) < 0)
		angle = 90.0;
	    else if ((Y-Y2) > 0)
		angle = -90;
	    else
		angle = 0;

	    sprintf(statusMessage, "dist: %7.7g, angle: %7.7g", distance, angle);

	    // remove the old line
	    if (angleLine != 0) {
		// remove the last line
		parentWindow->make_current();
		angleLine->undraw();
		remove(angleLine);
		delete angleLine;
		angleLine = 0;
	    }
	    // actually draw a line
	    angleLine = new imline(X2,
				   Y2,
				   X,
				   Y,
				   STYLE_XOR, 0x1b2dc3a4);
	    add(angleLine);

	    // display the profile
	    if (profilePanel && profilePanel->visible()) {
		dbgprintf("Sending data to the profile panel\n");
		int nb;
		double *red = 0, *green = 0, *blue = 0;
		theImage->getLineDataVectors(X2,Y2,X,Y,red,green,blue,nb);
		profilePanel->setData(red,green,blue,nb,X2,Y2,X,Y);
		profilePanel->redraw();
		if (red != 0)
		    delete[] red;
		if (green != 0)
		    delete[] green;
		if (blue != 0)
		    delete[] blue;
	    }
	}
	
	statusLine->value((const char *)statusMessage);
	damage(1);  // just redraw the children
    }

    if (selectBoxDefined && (nbFlBoxDamage == 0)) {
	x = Fl::event_x();
	y = Fl::event_y();

	if (x > visibleWidth() + Ox - 1)
	    x = visibleWidth() + Ox - 1;
	if (y > visibleHeight() + Oy - 1)
	    y = visibleHeight() + Oy - 1;

	selectBoxWidth = x - selectBoxX;
	selectBoxHeight = y - selectBoxY;
	
        // delete the old selectBox
	if (selectBox != 0) {
	    parentWindow->make_current();
	    fl_overlay_clear();
	}
        // create a new one if possible

	if ((selectBoxWidth > 0) && (selectBoxHeight > 0)) {
	    selectBox = 1;
	    parentWindow->make_current();
	    fl_overlay_rect(selectBoxX,
			    selectBoxY,
			    selectBoxWidth,
			    selectBoxHeight);
			    
	}
    }
    
    return;
}

void imageViewer::handleLeftButtonReleased() {
    // see discussion in handleLeftButtonDragged
    // about when this present routine can be called without
    // statusLine having been initialized...
    pointermode m = getpointermode(LEFT_BUTTON);
    
    if (statusLine) {
//	if (Fl::event_state(FL_SHIFT) || pointmode) {
	if ((m == IMV_POINTER_DELPT_MODE) 
            || (m == IMV_POINTER_DELGRP_MODE)
            || (m == IMV_POINTER_ADDPT_MODE) 
            || (m == IMV_POINTER_EDITPT_MODE)
            || (m == IMV_POINTER_DRAWPT_MODE)) {
	    int x, y, X, Y, d;
	    const unsigned char *p;
	    
	    x = Fl::event_x();
	    y = Fl::event_y();
	    // make sure we stay in the image
	    if (x < Ox)
		x = Ox;
	    if (y < Oy)
		y = Oy;
	    if (x < Ox) x = Ox;
	    if (x >= visibleWidth()+Ox) x = visibleWidth()+Ox -1;
	    if (y < Oy) y = Oy;
	    if (y >= visibleHeight()+Oy) y = visibleHeight()+Oy -1;
	    
	    X = xInImage(x); // convert local coordinates to image ones.
	    Y = yInImage(y);
	    d = imageObject->d();
	    // serious change in FLTK-1.1.x
	    p = (unsigned char *)(imageObject->data()[0] + d *(X + Y * imageObject->w()));  
	    //if (Fl::event_state(FL_ALT)) { // delete point
	    if (m == IMV_POINTER_DELPT_MODE) {
		PtFileMngr->rmPoint(X,Y); 
		//} else if (Fl::event_state(FL_CTRL)) { // annotate point
	    } else if (m == IMV_POINTER_DELGRP_MODE) {
                PtFileMngr->rmPointGroup(X,Y);
            } else if (m == IMV_POINTER_EDITPT_MODE) {
		if (PtFileMngr->isValidPoint(X,Y))
		    showAnnotatePanel(X,Y); // point annotation
	    } else if (m == IMV_POINTER_DRAWPT_MODE) {
                dbgprintf("Break point entered\n");
                parentWindow->make_current(); // we are drawing!
                assert(currentPtColour_ < MAX_FL_COLOURS);
                // blue is for a start
                PtFileMngr->addBreak(true, 
                                     STYLE_FILLED_COLOUR, 
                                     fl_closest_index(currentPtColour_++)); // increment colour
                currentPtColour_ %= MAX_FL_COLOURS;
            } else  { // add point
		if (d == 3) {
		    PtFileMngr->addPoint(X,Y,theImage->getCurrZpos(),
					 *p,
					 *(p+1),
					 *(p+2),
					 theImage->hasRawData()); // is there more data yet?
		} else {
		    PtFileMngr->addPoint(X,Y,theImage->getCurrZpos(),
					 *p,
					 *p,
					 *p,
					 theImage->hasRawData()); // is there more data yet?
					
		}
		//if (debugIsOn) {
		//    // draw a quick circle
		//    parentWindow->make_current();
		//    fl_circle(x,y,3);
		//}
	    } 	
	}
	if (lineProfileInProgress) {
	     // remove the existing line if needed and wanted
	    if (angleLine != 0 && !keepProfileLine) {
		// remove the last line
		parentWindow->make_current();
		angleLine->undraw();
		remove(angleLine);
		delete angleLine;
		angleLine = 0;
	    }
	    lineProfileInProgress=false;
	}
	// change the cursor back to the local default
	chg_cursor(MY_CURSOR_DEFAULT);

	// what do we need to redraw?
	if (statusLine->y() == Oy)
	    damage(16); // top of the image
	else
	    damage(8); // bottom of the image
	remove(statusLine);
	delete statusLine;
	statusLine = 0;
    }

    if (selectBoxDefined && selectBox) {
	int X,Y,W,H;

	
	parentWindow->make_current();
	fl_overlay_clear();
	selectBoxDefined = 0;
	selectBox = 0;
	// select points
	X = xInImage(selectBoxX);
	Y = yInImage(selectBoxY);
	W = wInImage(selectBoxWidth);
	H = hInImage(selectBoxHeight);

	if (Fl::event_state(FL_SHIFT)) {
	    PtFileMngr->selectPoints(X,Y,W,H, PT_SELECT_RM);
	} else if (Fl::event_state(FL_CTRL)) {
	    PtFileMngr->selectPoints(X,Y,W,H, PT_SELECT_INVERT);
	} else
	    PtFileMngr->selectPoints(X,Y,W,H, PT_SELECT_ADD);
	
	damage(1); // redraw the children
    }
    
    return;
}


////////////////////////////////////
/// Middle button operations

void imageViewer::handleMiddleButtonPushed()
{
    int x, y;

    x = Fl::event_x();
    y = Fl::event_y();
    
    zoomBoxRatio = (double)visibleHeight()/visibleWidth();
    zoomBoxX = x;
    zoomBoxY = y;
    zoomBoxDefined = 1;
    nbFlBoxDamage = 0;

    chg_cursor(MY_CURSOR_ZOOMBOX);
    
    return;
}

void imageViewer::handleMiddleButtonDragged()
{
    int x, y;

    // like for handleLeftButtonDragged, it is possible to come
    // here without handleMiddleButtonPushed having been called...
    if (zoomBoxDefined && (nbFlBoxDamage == 0)) {
	x = Fl::event_x();
	y = Fl::event_y();

	if (x > visibleWidth() + Ox - 1)
	    x = visibleWidth() + Ox - 1;
	if (y > visibleHeight() + Oy - 1)
	    y = visibleHeight() + Oy - 1;
    
	zoomBoxWidth = x - zoomBoxX;
	zoomBoxHeight = y - zoomBoxY;

	// shift_down inverts the current state
	aspectConstrained = (fileprefs->mouseZoomType() == ZOOM_CONSTRAINED);
	if (Fl::event_state(FL_SHIFT)) aspectConstrained=!aspectConstrained; // ^ doesn't work for some reason

	dbgprintf("Aspect ratio is %sconstrained\n", aspectConstrained ? "":"un");

	if (aspectConstrained) {
	    // revisit this to enforce the current aspect ratio
	    zoomBoxWidth = trivmin(zoomBoxWidth, (int)(zoomBoxHeight / zoomBoxRatio + 0.5));
	    zoomBoxHeight = trivmin(zoomBoxHeight, (int)(zoomBoxWidth * zoomBoxRatio + 0.5));
	} 

	// delete the old zoomBox if need be
	if (zoomBox != 0) {
	    parentWindow->make_current();
	    fl_overlay_clear();
	}

	// create a new one if possible
	if ((zoomBoxWidth > 0 && zoomBoxHeight > 0)) {
	    double xzoom, yzoom, zf;
	    int    bw, bh;
	    double rw, rh;
	    
	    zoomBox = 1;
	    parentWindow->make_current();
	    zoomDragInProgress = true;
	    dragX = xInImage(zoomBoxX);
	    dragY = yInImage(zoomBoxY);

	    dbgprintf("DragX = %d, DragY = %d\n", dragX, dragY);
	    
	    /* CAREFUL: same formulae as in zoomToBox */
	    /* dragW = wInImage(zoomBoxWidth)+1; */
	    bw = wInImage(zoomBoxWidth)+1;
	    bh = hInImage(zoomBoxHeight)+1;
	    if (hscrollbar && hscrollbar->visible()) {
	        xzoom = (double)visibleWidth()/bw;
	    } else {
		rw = bw + ((double)VSLIDER_WIDTH*bw)/visibleWidth();
		xzoom = (double)visibleWidth()/rw;
	    }

	    /* dragH = hInImage(zoomBoxHeight)+1; */
	    if (vscrollbar && vscrollbar->visible()) {
		yzoom = (double)visibleHeight()/(hInImage(zoomBoxHeight)+1);
	    } else {
		rh = bh + ((double)HSLIDER_HEIGHT*bh)/visibleHeight();
		yzoom = (double)visibleHeight()/rh;
	    }

	    dbgprintf("xzoom: %g, yzoom:%g\n",
		      xzoom, yzoom);

	    if (!aspectConstrained) {
		zf = trivmax(xzoom, yzoom);
		zf = trivmin(zf, (double)(appMaxWidth-Ox)/bw);
	        zf = trivmin(zf, (double)(appMaxHeight-Oy)/bh);
		if (vscrollbar && vscrollbar->visible()) {
		    dragW = (int)(visibleWidth()/xzoom + 0.5);
		} else {
		    dragW = (int)((visibleWidth()-VSLIDER_WIDTH)/xzoom + 0.5);
		}
		    
		if (hscrollbar && hscrollbar->visible()) {
		    dragH = (int)(visibleHeight()/yzoom + 0.5);
		} else {
		    dragH = (int)((visibleHeight()-HSLIDER_HEIGHT)/yzoom + 0.5);
		}

		fl_overlay_rect(xWtoW(zoomBoxX),
				yWtoW(zoomBoxY),
				(int)(dragW * zoomFactor()), // adjW(zoomBoxWidth),
				(int)(dragH * zoomFactor())); // adjH(zoomBoxHeight));
	    } else {
		zf = trivmin(xzoom, yzoom);
		/* this is just too hard... */
		if (vscrollbar && vscrollbar->visible()) {
		    dragW = (int)(visibleWidth()/zf + 0.5);
		} else {
		    dragW = (int)((visibleWidth()-VSLIDER_WIDTH)/zf + 0.5);
		}
		if (hscrollbar && hscrollbar->visible()) {
		    dragH = (int)(visibleHeight()/zf + 0.5);
		} else {
		    dragH = (int)((visibleHeight()-HSLIDER_HEIGHT)/zf + 0.5);
		}
	    
		fl_overlay_rect(xWtoW(zoomBoxX),
				yWtoW(zoomBoxY),
				(int)(dragW * zoomFactor()), // adjW(zoomBoxWidth),
				(int)(dragH * zoomFactor())); // adjH(zoomBoxHeight));
	    }


	    if (imageInfoPanel)
		imageInfoPanel->update();
	} 
    } else if (nbFlBoxDamage > 1) {
	errprintf("FlBox damage = %d, how can this happen?\n", nbFlBoxDamage);
    }

    return;
}

void imageViewer::handleMiddleButtonReleased()
{
    if (zoomBoxDefined && zoomBox) {
	parentWindow->make_current();
	fl_overlay_clear();
	zoomBoxDefined = 0;
	zoomBox = 0;
	zoomDragInProgress = false;
	// now zooms:
	zoomToBox(xInImage(zoomBoxX),
		  yInImage(zoomBoxY),
		  wInImage(zoomBoxWidth)+1,
		  hInImage(zoomBoxHeight)+1);
    } 
    // in any case, back to local default
    chg_cursor(MY_CURSOR_DEFAULT);


    
    return;
}


void imageViewer::handleRightButtonReleased()
{
    pointermode m = getpointermode(RIGHT_BUTTON);

    if (Fl::event_state(FL_SHIFT) || (m == IMV_POINTER_ADDPT_MODE)) {
	dbgprintf("Break point entered\n");
	parentWindow->make_current(); // we are drawing!
	PtFileMngr->addBreak();
    } else {
	// unzoom back to normal
	zoomFactor(defaultZoomFactor_, true, true); // maybe redraw
    }
    return;
}


void imageViewer::deletePoint(int atX, int atY)
{
    delPtX = atX;
    delPtY = atY;
    dbgprintf("About to delete point at (%d,%d)\n", atX, atY);
    nbPointDamage++;
    
    if (nbPointDamage <= 1)
	damage(4);   // minimal damage
    else {
	damage(32); // calling the big boy to clear the crap
    }

    return;
}


void imageViewer::create_hscrollbar_win_fit_img()
{
    dbgprintf("Horizontal scrollbar created\n");
    hscrollbar = new Fl_Scrollbar(x(),
				  y() + h() -  HSLIDER_HEIGHT,
				  w() - VSLIDER_WIDTH,
				  HSLIDER_HEIGHT, 0);
    hscrollbar->type(FL_HORIZONTAL);
    hscrollbar->callback(hscrollbar_callback);
    hscrollbar->box(FL_DOWN_BOX);
    add(hscrollbar);
    scrollbartype_ = IMV_DISPLAY_WINDOW_FIT_IMG;
    return;
}

void imageViewer::create_vscrollbar_win_fit_img()
{
    dbgprintf("Vertical scrollbar created\n");
    vscrollbar = new Fl_Scrollbar(x() + w() - VSLIDER_WIDTH,
				  y(),
				  VSLIDER_WIDTH,
				  h()- HSLIDER_HEIGHT, 0);
    vscrollbar->type(FL_VERTICAL);
    vscrollbar->callback(vscrollbar_callback);
    vscrollbar->box(FL_DOWN_BOX);
    add(vscrollbar);
    scrollbartype_ = IMV_DISPLAY_WINDOW_FIT_IMG;
    return;
}

void imageViewer::create_hscrollbar_decoupled()
{
    dbgprintf("Horizontal decoupled scrollbar created\n");
    hscrollbar = new Fl_Scrollbar(x(),
				  y() + h() -  HSLIDER_HEIGHT,
				  w() - VSLIDER_WIDTH,
				  HSLIDER_HEIGHT, 0);
    hscrollbar->type(FL_HORIZONTAL);
    hscrollbar->callback(hscrollbar_callback);
    hscrollbar->box(FL_DOWN_BOX);
    add(hscrollbar);
    scrollbartype_ = IMV_DISPLAY_DECOUPLE_WIN_IMG;
    return;
}

void imageViewer::create_vscrollbar_decoupled()
{
    dbgprintf("Vertical decoupled scrollbar created\n");
    vscrollbar = new Fl_Scrollbar(x() + w() - VSLIDER_WIDTH,
				  y(),
				  VSLIDER_WIDTH,
				  h()- HSLIDER_HEIGHT, 0);
    vscrollbar->type(FL_VERTICAL);
    vscrollbar->callback(vscrollbar_callback);
    vscrollbar->box(FL_DOWN_BOX);
    add(vscrollbar);
    scrollbartype_ = IMV_DISPLAY_DECOUPLE_WIN_IMG;
    return;
}

void imageViewer::destroy_scrollbars()
{
    // incorrect kind of scrollbar was used..
    if (hscrollbar) {
        dbgprintf("Destroying horizontal scrollbar\n");
        remove(hscrollbar);
        delete(hscrollbar);
        hscrollbar=0;
    }
    if (vscrollbar) {
        dbgprintf("Destroying vertical scrollbar\n");
        remove(vscrollbar);
        delete(vscrollbar);
        vscrollbar = 0;
    }
    return;
}

// re-coloring doesn't work on all X displays. Abandon idea
void imageViewer::chg_cursor(Fl_Cursor newCursor, bool invert)
{
    static Fl_Cursor currentCursor = FL_CURSOR_NONE;
    
    if (parentWindow && (newCursor != currentCursor)) {
	parentWindow->make_current();
	if (invert) {
	    dbgprintf("INverted cursor\n");
	    fl_cursor(newCursor, FL_WHITE, FL_BLACK);
	} else {
            fl_cursor(newCursor, FL_BLACK, FL_WHITE);
        }
        currentCursor = newCursor; // changing cursor flashes the screen on some displays
    }
}

int imageViewer::visibleWidth(void)
{
    int vw = w();
    if (vscrollbar && vscrollbar->visible()) {
        vw -= VSLIDER_WIDTH;
    }
    vw = trivmax(vw, 1); // vw must always be > 0
    
    return vw;
}
    
int imageViewer::visibleHeight(void)
{
    int vh = h();
    if (hscrollbar && hscrollbar->visible()) {
        vh -= HSLIDER_HEIGHT;
    }
    vh = trivmax(vh, 1);
        
    return vh;
}
   
inline void imageViewer::zapImageObject(void)
{
    if (imageObject) {
	freeOffScreenPixmap(imageObject);
	delete imageObject;
	imageObject = 0;
    }
}


void imageViewer::showAnnotatePanel(int X, int Y)
{
    dbgprintf("Annotate panel\n");
    if (annotatePointPanel == 0) {
	dbgprintf("Panel created\n");
	annotatePointPanel = new annotatept;
	annotatept_panel(*annotatePointPanel);
	// standard init
	annotatePointPanel->setDefaults();
    }
    // show the panel
    annotatePointPanel->setXY(X,Y);
    // get the annotation stuff from the nearest point
    annotatePointPanel->getPointParams();
    // finally show the panel
    annotatePointPanel->show();
    // the return callback from the panel will set the annotation.
    return;
}

pointermode imageViewer::getpointermode(int button)
{
    pointermode retval = pmode_;
    
    if (pmode_ == IMV_POINTER_ZOOM_MODE) {
	// lots of modifiers there
	if (button == LEFT_BUTTON) {
	    if (Fl::event_state(FL_SHIFT) || pointmode)
		if (Fl::event_state(FL_ALT))
		    retval = IMV_POINTER_DELPT_MODE;
		else if (Fl::event_state(FL_CTRL))
		    retval = IMV_POINTER_EDITPT_MODE;
		else
		    retval = IMV_POINTER_ADDPT_MODE;

	    else if (Fl::event_state(FL_CTRL))
		retval = IMV_POINTER_MEASURE_MODE;
	}
    }

    return retval;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                #
# $Id: TODO,v 4.9 2004/06/22 08:18:59 hut66au Exp $
#
# Things to do.

Improvements:
=============

For PSL:
--------

	- follow-up re. running out of resources
	- spacebar problem (see pointfiles)

From Richard:
-------------

What we'd like to be able to do is access the fltk drawing routines
through the socket. The objects that get drawn should have the same
behaviour under zoom and translation as the pointfiles.

The primitives we'd like to have access to are lines, disks and text
with colour. Positions should be defined in image coordinates. I'm not
sure what else fltk provides, but it might be nice to leave room for
expansion to include splines or whatever else is available. The simple
things are all that is needed now though.

	- Also he thinks that the toolbar should start with one 
	of the buttons depressed, because people are getting confused 
	about how to get out of it

From Mark/Changming:
--------------------
	- Prettier/more colourful 1-D profile print/save as .PS.
	- Various issues with multispectral images I forgot to write down.
		* do a fit-to-mean +/- 2.5 sigma rather than char (ignore outliers)

From Hugues:
------------

	- Expand on the idea above to draw bounding boxes, ellipses,
	  etc, from the segmented object description.
	- Keep this TODO list up to date, it's infuriating.
	- add the aspect ratio as one of a set of characteristic the
	  image should keep track off, just like gamma at present. Add
	  the ability to specify the aspect ratio on the command line
	  and/or with a simple dialog.
	- Add a `save overlay' option. Useful after manual bivariate
	  histogram segmentation.
	- Write output header for raw images.
	- Save rotation and flip status.
	- EXIF 2.2 (library for that).
	- Lossless JPEG transf.	
	- Dynamic run-time load of libraries, esp. ImageMagick.
	- Save to more known formats.
	- bicubic interpolation, both zoom out and in.

Known bugs:
===========

CRASHES:
-------
	- 3D rotations with non-8-bit data and overlay crashes:

#0  0x0807d54d in imageIO::rotate3Dgeneric(long (*)(int, int, int), long) (this=0x8191080, myrotf=0x807d68a <transf_rot_3d_up>,
    nbplanepix=35840) at /home/talbot/projects/sourceforge/imview/imtransform.cxx:641
641                             q[myrotf(x,y,z)] = *p++;
(gdb) p p
$1 = (unsigned char *) 0x4087f008 ""
(gdb) p myrotf
$2 = (rot3dtransf *) 0x807d68a <transf_rot_3d_up>


	- Z images with large number of samples crashes


SHOWSTOPPERS:
-------------

	- Under cygwin the server doesn't work, Imview craps out with "Bad system call"
	- Incorrect behaviour for Z-IMAGE DOUBLE images under WinXP (content is incorrect).
	- Imview compiles under mingw32 for Linux (cross-compiler) but doesn't run 8-(


INCONVENIENCES AND INCONSISTENCIES:
-----------------------------------

	- resize still a problem sometimes. Imview gets itself into a weird
	  state with incorrect limits. Specifying a complete redraw
	  should clear everything but doesn't.
	- There is also a bug in the 1D profile when there is an
	  overlay - the overlay information is displayed in the profile.
	- last line and last column of image often missing when scrollbar
   	  are present.
	- The profile box is one pixel too short at the end.
	- Printing of non-image items (text, points, etc) missing.
	- Points and rotations: normally defined points follow
	  rotations (if you define a few points then rotate the image
	  the points also rotate), but then if you re-open the image the
	  points stay stuck where they were last!
	- Related to the above is still the lack of rotation
	  grammar. A rotated image which was rotated should still be
	  rotated when reopened!
	- Move to the middle of the screen. Sometimes for no apparent
	  reason Imview moves to the middle of the screen. This seems to
	  be happening if the main window resises and this is infurating
	  on dual-screen setups. Update: this may be an FLTK artifact.
	- Too many menu items remain accessible when no image is displayed.
	- Documentation and man page do not match software version.
	- 3D rotations with `image fits window' works but changing plane resets the window!
	- Under cygwin, problems with Imagemagick (dependence on X11).






Last changes: 
Hugues Talbot	23 May 2004 -- version 1.1.4
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 purify g++ -DSolaris -I/usr/openwin/include -I/home/ee02/include -Wall -g -O2 -DSVR4 -D_SOLARIS -I/usr/openwin/include -o imview imview.o menubar.o imageViewer.o imageIO.o my_Image.o imdebug.o readgif.o readtiff.o readZimage.o imtranslate.o readjpeg.o pointfile.o keyboard.o menucb.o readics.o imlines.o imDrawPoint.o printPrefs.o savePrefs.o imageInfo.o transferFunction.o transferBox.o fluid/imview_ui.a io/imview_io.a -L/datamine/local/lib -L/home/ee02/lib -L/usr/openwin/lib /home/ee02/lib/libFl_db_g++272.a -lX11 -lgen -lm -ljpeg -ltiff -lsocket -lnsl
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   /*
 * $Id: printPrefs.cxx,v 4.5 2004/05/24 23:45:12 hut66au Exp $
 *
 * Imview, the portable image analysis application
 * http://www.cmis.csiro.au/Hugues.Talbot/imview
 * ----------------------------------------------------------
 *
 *  Imview is an attempt to provide an image display application
 *  suitable for professional image analysis. It was started in
 *  1997 and is mostly the result of the efforts of Hugues Talbot,
 *  Image Analysis Project, CSIRO Mathematical and Information
 *  Sciences, with help from others (see the CREDITS files for
 *  more information)
 *
 *  Imview is Copyrighted (C) 1997-2001 by Hugues Talbot and was
 *  supported in parts by the Australian Commonwealth Science and 
 *  Industry Research Organisation. Please see the COPYRIGHT file 
 *  for full details. Imview also includes the contributions of 
 *  many others. Please see the CREDITS file for full details.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
 * */

/*------------------------------------------------------------------------
 *
 * A print preference panel using fluid.
 *
 * Hugues Talbot	21 Apr 1998
 *      
 *-----------------------------------------------------------------------*/

#include "imnmspc.hxx"

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "imunistd.h"
#include <errno.h>
#include <string> // needed by nocase.H
#include <FL/Fl_File_Chooser.H>
#include <FL/fl_ask.H>
#include "imview.hxx"
#include "nocase.hxx"
#include "io/imSystem.hxx"
#include "imageIO.hxx"
#include "imageViewer.hxx"
#include "menubar.hxx"
#include "printPrefs.hxx"
#include "io/newprefio.hxx"
#include "io/cpostscript.hxx"
#include "machine.hxx"

extern char appName[];
extern imageIO *IOBlackBox;
extern imageViewer *mainViewer;
extern imViewMenuBar *mainMenuBar;
extern imprefs *fileprefs;
extern printprefs *printPrefsPanel;

// the `broken pipe' signal handler
static void brokenPipeHandler(int sig);

// the siglongjmp buffer
static im_jmp_buf bpenv;

// print panel methods

printprefs::printprefs()
{
    dbgprintf("Print panel constructed\n");
    prefWindow = 0; // fluid depend on that...
    return;
}

void printprefs::setDefaults()
{
    static char buff[100];
    char *myenv;

    // we print to a real printer by default
    printerCheck->set();

    // default printing output
    if ((myenv = getenv("PRINTER")) != 0)
	sprintf(buff, "lpr -P%s", myenv);
    else
	strcpy(buff, "lpr");
    commandInput->value((const char *)buff);

    // default value for file
    sprintf(buff, "%s.ps", appName);
    filenameInput->value(buff);

    // empty title is fine...

    // orientation should be portrait
    portraitCheck->set();

    // Paper size should be A4
    // A4Check->set();
    papertype_ = PAGESIZE_A4;
    papersizeChoice->value(papertype_);
    
    // language should be PS
    psCheck->set();

    // by default we only print the image that is showing now
    oneImageCheck->set();

    // number of copies should be just one
    nbcopiesInput->value("1");

    // By default we print the whole image
    wholeCheck->set();
    
    // that's it
    
    return;
}

// this method switches between the `File' and the `Printer' defaults
void printprefs::toggleToFile()
{
    // disable the Print command
    commandInput->deactivate();
    commandInput->color(47); // got that from fluid...
    commandInput->textcolor(31);
    commandInput->labelcolor(31);
    // enable the "file" command
    filenameInput->activate();
    filenameInput->color(43);
    filenameInput->textcolor(FL_BLACK);
    filenameInput->labelcolor(FL_BLACK);
    // enable the browse button
    browseButton->activate();
    browseButton->labelcolor(FL_BLACK);

    prefWindow->redraw();
    
    return;
}

void printprefs::toggleToPrinter()
{
    // disable the Print command
    filenameInput->deactivate();
    filenameInput->color(47); // got that from fluid...
    filenameInput->textcolor(31);
    filenameInput->labelcolor(31);
    // enable the "file" command
    commandInput->activate();
    commandInput->color(43);
    commandInput->textcolor(FL_BLACK);
    commandInput->labelcolor(FL_BLACK);
    // disable the browse button
    browseButton->deactivate();
    browseButton->labelcolor(31);

    prefWindow->redraw();

    return;
}

void printprefs::allowTitle(bool b)
{
    if (b) {
	// setting the title is allowed
	titleInput->activate();
	titleInput->color(43); // fluid...
	titleInput->textcolor(FL_BLACK);
	titleInput->labelcolor(FL_BLACK);
    } else {
	titleInput->deactivate();
	titleInput->color(47);
	titleInput->textcolor(31);
	titleInput->textcolor(31);
    }
    
    prefWindow->redraw();
    
    return;
}

void printprefs::setTitle(const char *t)
{
    titleInput->value(t);
    return;
}

void printprefs::printFileName(const char *fn)
{
    // this copies it to something more permanent.
    filenameInput->value(fn);
    return;
}

void printprefs::setMargins(long whichItem)
{
    switch ((margin_size)whichItem) {
    case MARGIN_SIZE_STANDARD:
    case MARGIN_SIZE_SMALL:
    case MARGIN_SIZE_LARGE:
    case MARGIN_SIZE_ZERO:
	postscript_set_margin_index((margin_size)whichItem);
	// then set valus for margin inputs
	break;
    case MARGIN_SIZE_CUSTOM:
	postscript_set_margin_index((margin_size)whichItem);
	// need to set custom margins too
	// then GET value from margin inputs
	break;
    default:
	warnprintf("Incorrect size option %ld\n", whichItem);
	break;
    }
    return;
}

static void brokenPipeHandler(int sig)
{
    // reset the signal handler
    signal(sig, brokenPipeHandler);
    im_longjmp(bpenv, 1);
}

// the following is a tiny bit hackish.
// the vp=&... are seemingly useless statements that
// prevent the compiler from optimizing the automatic variable
// into registers, thus putting the longjmp in jeopardy.
// in fact there is no problem, but that's the easiest way
// I found for stopping gcc warning me about the possibility.
int printprefs::doThePrinting(bool preview)
{
    HIMAGE  *tbp; // don't you love C?
    volatile void *vp;
    int     retval = 0; vp = &retval;
    byte    win_type; vp = &win_type;
    byte    orientation; vp = &orientation;
    bool    usePipe = false; vp = &usePipe;
    int     nbcopies, nbitems, i; vp = &nbcopies; vp = &nbitems; vp = &i;
    char   *title, *filename, *pipeCommand; vp = &title; vp = &filename; vp = &pipeCommand;
    char   *fileList, *tmpPreview; vp = &fileList; vp = &tmpPreview;
    uchar  *buf0, *buf1, *buf2; vp = &buf0;vp = &buf1; vp = &buf2;
    FILE   *outfile; vp = &outfile;

    // how many images are we going to save?
    if (wholeListCheck->value() == 1) {
	fileList = mainMenuBar->getItemListContent(IMAGE_LIST_ID, nbitems);
    } else {
	fileList = 0;
	nbitems = 1;
    }

    tbp = new HIMAGE[nbitems];

    dbgprintf("about to print %d items\n", nbitems);
    
    for (i = 0 ; i < nbitems ; i++) {
	// fill up what we can from the outset
	if (IOBlackBox->getCurrImgPixType() == IM_BINARY)
	    tbp[i].type = PS_BINARY;
	else
	    tbp[i].type = PS_CHAR; // we don't care, but not binary    

	buf0 = buf1 = buf2 = 0;
    
	// first question: are we printing the whole image or only a subset?
	if (wholeCheck->value() == 1) {
	    // the whole thing
	    tbp[i].nbrows = IOBlackBox->imageHeight();
	    tbp[i].nbcols = IOBlackBox->imageWidth();
	    if ((tbp[i].nbcomp = IOBlackBox->wholeImage(&buf0, &buf1, &buf2)) != 0) {
		tbp[i].buf0 = buf0;
		tbp[i].buf1 = buf1;
		tbp[i].buf2 = buf2;
	    } else {
		errprintf("Can't print images with %d samples per pixel\n",
			  IOBlackBox->imageDepth());
		return(10);
	    }
	} else {
	    // the subset currently displayed
	    int bx, by, bw, bh; // dimensions of the subset...
       
	    if ((tbp[i].nbcomp = IOBlackBox->subsetImage(&buf0, &buf1, &buf2,
							 bx, by, bw, bh)) != 0) {

		tbp[i].nbrows = bh;
		tbp[i].nbcols = bw;
		tbp[i].buf0 = buf0;
		tbp[i].buf1 = buf1;
		tbp[i].buf2 = buf2;	    
	    } else {
		errprintf("Can't print images with %d samples per pixel\n",
			  IOBlackBox->imageDepth());
		return(11);
	    }
	}
	// display the next image 
	if (nbitems > 1) {
	    dbgprintf("Showing the next image\n");
	    nextimage_cb(0,0);
	}
    }

    

    // get all the options now
    // paper type selection with Choice menu now.
    // if (A3Check->value()) papertype = A3_FMT;
    //     else if (letterCheck->value()) papertype = LE_FMT;
    //     else papertype = A4_FMT;

    if (epsCheck->value()) win_type = WIN_EPS;
    else win_type = WIN_ALL;

    if (landscapeCheck->value()) orientation = ORI_LDS;
    else orientation = ORI_PRT;

    nbcopies = MYMAX(atoi(nbcopiesInput->value()), 1);

    title = (char *)(titleInput->value());
    if ((title != 0) && (title[0] == '\0'))
	title = 0; // empty string
    
    // open the pipe!
    

    if (printerCheck->value() && !preview) {
	// we pipe to a command, which hopefully will print
	// (not our problem if it doesn't...

	pipeCommand = (char *)commandInput->value();
	if ((pipeCommand != 0) && (pipeCommand[0] == '\0')
	    || (pipeCommand == 0)) {
	    errprintf("Please specify a print command\n");
	    retval = 1;
	} else {
	    // 2:set the `broken pipe' signal handler
	    outfile = 0;
	    im_signal(SIGPIPE, brokenPipeHandler);
	    if (im_setjmp(bpenv, 1) == 0) { // save the mask buffer
		// 3: try to open the pipe for writing
		if ((outfile = popen(pipeCommand, "w")) == 0) {
		    errprintf("Cannot open pipe to command %s\n%s",
			      pipeCommand,
			      strerror(errno));
		    retval = 2;
		}
	    } else {
		// we got there only through the signal handler
		if (outfile != 0)
		    fclose(outfile);
		if (pipeCommand != 0)
		    errprintf("Broken pipe: invalid command %s\n", pipeCommand);
		retval = 3;
	    }
	    usePipe = true; // we'll have to use pclose later on
	}
    } else if ((printerCheck->value() == 0) && !preview) {
	// we send to a file
	filename = (char *)filenameInput->value();
	if ((filename != 0) && (filename[0] == '\0')
	    || (filename == 0)) {
	    errprintf("Please specify a file to print to\n");
	    retval = 4;
	} else {
	    if (access(filename, W_OK) == 0) {
		// the file aready exist, do we really want to do this?
		static char alrtmsg[1024];
		sprintf(alrtmsg,
			"File %s already exists\n"
			"Do you want to overwrite?\n",
			filename);
		if (fl_ask(alrtmsg) == 0) {
		    retval = 6;
		    goto error;
		} 
	    } 
	    if ((outfile = im_fopen(filename, "wb")) == 0) {
		errprintf("Can't open file %s\n%s",
			  filename,
			  strerror(errno));
		retval = 5;
	    }
	}
    } else {
	// preview	// 1: get the preview command
	tmpPreview = tempnam(0, "ImViu");

	if ((outfile = im_fopen(tmpPreview, "wb")) == 0) {
	    errprintf("Can't open temporary file %s\n%s",
		      tmpPreview,
		      strerror(errno));
	    free(tmpPreview);
	    retval = 5;
	}
    }

    if (retval == 0) {
	// all is fine, we can send the postscript code away.
	dbgprintf("Composing PS code\n");
	compose_PostScript_code(tbp,nbitems,1.0,
				papertype_,
				win_type,
				orientation,
				nbcopies,
				0,0,
				title,
				"Times-Roman",0, 1,
				outfile);
	if (preview) {
	    int gslen = strlen(fileprefs->gvpath()) + 2*strlen(tmpPreview);
	    char *previewCommand = new char[gslen+20];

	    sprintf(previewCommand, "(%s %s ; rm -f %s) &",
		    fileprefs->gvpath(),
		    tmpPreview, tmpPreview);
	    
	    fflush(outfile); // send Everything, but do not close.
	    system(previewCommand);

	    delete[] previewCommand;
	    free(tmpPreview); // we can get rid of this now.
	} 


	if (usePipe) { // if we are previewing, pclose will have to occur later
	    pclose(outfile);
	    outfile = 0;
	} else  {  // even if we are previewing
	    fclose(outfile);
	    outfile = 0;
	}
    }

 error:
    // probably deleting 0 would be acceptable, but hey.
    for (i = 0 ; i < nbitems ; i++) {
	if (tbp[i].buf0 != 0) delete[] tbp[i].buf0;
	if (tbp[i].buf1 != 0) delete[] tbp[i].buf1;
	if (tbp[i].buf2 != 0) delete[] tbp[i].buf2;
    }

    if (fileList != 0) delete[] fileList;
    delete[] tbp;
    
    return retval;
}

void printprefs::show()
{
    prefWindow->show();
    return;
}

void printprefs::hide()
{
    prefWindow->hide();
    return;
}

    

// print panel associated callbacks

void printercheck_cb(Fl_Check_Button *, printprefs *panel)
{
    dbgprintf("Printer check callback\n");
    panel->toggleToPrinter();
    
    return;
}

void filecheck_cb(Fl_Check_Button *, printprefs *panel)
{
    dbgprintf("File check callback\n");
    panel->toggleToFile();

    
    return;
}

void commandInput_cb(Fl_Input *, printprefs *)
{
    dbgprintf("Command input callback\n");

    return;
}

void filenameInput_cb(Fl_Input *, printprefs *)
{
    dbgprintf("filename input callback\n");

    return;
}

void browsebutton_cb(Fl_Button *, printprefs *panel)
{
    const char *currentfile;
    static const char *p = 0;

    dbgprintf("Browse Button pressed on print prefs panel\n");

    currentfile = panel->filenameInputValue();
    
    p = fl_file_chooser("Print to file", "*[pP][sS]", currentfile);
			
    if (p) panel->printFileName(p);
    
    return;
}


void titleInput_cb(Fl_Input *, printprefs *)
{
    dbgprintf("title input callback\n");

    return;
}

void portraitcheck_cb(Fl_Check_Button *, printprefs *)
{
    dbgprintf("Portrait check callback\n");

    return;
}

void landscapecheck_cb(Fl_Check_Button *, printprefs *)
{
    dbgprintf("Landscape check callback\n");

    return;
}

void papersize_cb(Fl_Choice *c, printprefs *s)
{
    dbgprintf("Paper choice = %d\n", c->value());
    s->setpapertype(c->value());
}

void a4check_cb(Fl_Check_Button *, printprefs *)
{
    dbgprintf("A4 check callback\n");

    return;
}

void lettercheck_cb(Fl_Check_Button *, printprefs *)
{
    dbgprintf("Letter check callback\n");

    return;
}

void a3check_cb(Fl_Check_Button *, printprefs *)
{
    dbgprintf("A3 check callback\n");

    return;
}

void pscheck_cb(Fl_Check_Button *, printprefs *panel)
{
    dbgprintf("PS check callback\n");
    panel->allowTitle(true);
    
    return;
}

void epscheck_cb(Fl_Check_Button *, printprefs *panel)
{
    dbgprintf("EPS check callback\n");
    panel->allowTitle(false);
    
    return;
}

void nbcopies_cb(Fl_Input *, printprefs *)
{
    dbgprintf("Nb of copies callback\n");
    return;
}


void oneimagecheck_cb(Fl_Check_Button *, printprefs *)
{
    dbgprintf("One image check callback\n");
    
    return;
}

void wholelistcheck_cb(Fl_Check_Button *, printprefs *)
{
    dbgprintf("Whole list check callback\n");
    
    return;
}

void wholecheck_cb(Fl_Check_Button *, printprefs *)
{
    dbgprintf("Whole check callback\n");
    
    return;
}

void subsetcheck_cb(Fl_Check_Button *, printprefs *)
{
    dbgprintf("Subset check callback\n");
    
    return;
}

// 2- Margin tab callbacks
void marginchoice_cb(Fl_Choice *, printprefs *panel)
{
    dbgprintf("Margin dimensions callback\n");
    return;
}

void chosenmargin_cb(Fl_Menu_ *, void *value)
{
    long v = (long)value;
    dbgprintf("Margin chosen = %d\n", v);
    printPrefsPanel->setMargins(v);
    return;
}

void cancelbutton_cb(Fl_Button *, printprefs *panel)
{
    dbgprintf("Cancel Button pressed on print prefs panel\n");
    // hide the window
    panel->hide();
    return;
}

void previewbutton_cb(Fl_Button *bt, printprefs *panel)
{
    dbgprintf("Preview button pressed\n");
    panel->doThePrinting(true); // this is the preview switch
    return;
}

// This is really the `print' button...
void okbutton_cb(Fl_Return_Button *, printprefs *panel)
{
    dbgprintf("Print Button pressed on print prefs panel\n");
    if (panel->doThePrinting() == 0) {
	// hide the window
	panel->hide();
    } // else leave the panel around for the user to correct things
    return;
}


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .     ..    tmpmsgdlg.fl  userprefdlg.fl    transfer.fl   
.cvsignore    transfer2.fl  annotatedlg.fl    addpoint.xpm  measure.xpm   rotate+90.xpm     selectpoint.xpm   progress.fl   config.h.in   prntspectdlg.fl   rmpoint.xpm   	bivdlg.fl     
profile.fl    	flipv.xpm     printdlg.fl   
pencil.xpm    imginfodlg.fl     savespectdlg.fl   toolbardlg.fl     arbitrary.fl  
zoom_s.xpm    	fliph.xpm     editpoint.xpm     
savedlg.fl    configure.in  hidetoolbar.xpm   
spectra.fl    rotate-90.xpm     sliderdlg.fl  Makefile.in   Makefile  
makedepend    printdlg.cxx  printdlg.hxx  savedlg.cxx   savedlg.hxx   imginfodlg.cxx    imginfodlg.hxx    transfer.cxx  transfer.hxx  spectra.cxx   spectra.hxx   savespectdlg.cxx  savespectdlg.hxx  prntspectdlg.cxx  prntspectdlg.hxx  profile.cxx   profile.hxx   userprefdlg.cxx   userprefdlg.hxx   tmpmsgdlg.cxx     tmpmsgdlg.hxx     
bivdlg.cxx    
bivdlg.hxx    progress.cxx  progress.hxx  arbitrary.cxx     arbitrary.hxx     annotatedlg.cxx   annotatedlg.hxx   toolbardlg.cxx    toolbardlg.hxx    transfer2.cxx     transfer2.hxx     sliderdlg.cxx     sliderdlg.hxx     
printdlg.o    	savedlg.o     imginfodlg.o  
transfer.o    	spectra.o     savespectdlg.o    prntspectdlg.o    	profile.o     userprefdlg.o     tmpmsgdlg.o   bivdlg.o  
progress.o    arbitrary.o   annotatedlg.o     toolbardlg.o  transfer2.o   sliderdlg.o  imview_ui.a                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         # data file for the Fltk User Interface Designer (fluid)
version 1.00 
header_name {.H} 
code_name {.C} 
gridx 5 
gridy 5 
snap 3
Function {tmpmsg_panel(tmpmsg &tm)} {open
} {
  Fl_Window {tm.outputWindow} {
    label {Warning message ring} open selected
    xywh {495 270 520 335} type Single color 15 resizable
    code0 {\#include "tmpMsg.hxx"} visible
  } {
    Fl_Output {tm.MessageOutput} {
      label Warning
      xywh {20 25 480 265} type Multiline box ENGRAVED_BOX color 197 labelfont 9 labelsize 16 align 1 resizable
    }
    Fl_Return_Button {} {
      label Dismiss
      callback {((Fl_Window*)(o->parent()))->hide();}
      xywh {395 300 105 25}
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            # data file for the Fltk User Interface Designer (fluid)
version 1.0105 
header_name {.H} 
code_name {.C}
Function {userprefs_panel(userprefs &up)} {open
} {
  Fl_Window {up.userprefsWindow} {
    label {User Preferences} open
    xywh {1699 227 575 330} type Single box ENGRAVED_BOX
    code0 {\#include "userPrefs.hxx"} visible
  } {
    Fl_Tabs {} {open
      xywh {5 25 560 245} box THIN_UP_FRAME
      code0 {o->value(up.generalGroup);}
    } {
      Fl_Group {up.generalGroup} {
        label General open
        xywh {10 55 550 210} box FLAT_BOX hide
      } {
        Fl_Round_Button {up.smoothWhenZoomoutButton} {
          label {Smooth when zooming out: }
          user_data {&up} user_data_type {userprefs*}
          callback smoothzoomout_cb
          tooltip {Linear interpolation for zoom factors < 1.0} xywh {204 110 25 25} down_box ROUND_DOWN_BOX align 4
        }
        Fl_Group {} {
          label {Default zoom behaviour is:} open
          tooltip {Constrain (or not)  zoom box to same aspect ratio as main window} xywh {200 135 300 30} align 4
        } {
          Fl_Check_Button {up.constrainZoomCheck} {
            label Constrained
            user_data {&up} user_data_type {userprefs*}
            callback constrainedzoom_cb
            xywh {200 135 30 30} type Radio down_box DIAMOND_DOWN_BOX value 1 selection_color 39 align 8
          }
          Fl_Check_Button {up.unconstrainZoomCheck} {
            label Unconstrained
            user_data {&up} user_data_type {userprefs*}
            callback unconstrainedzoom_cb
            xywh {325 135 30 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 39 align 8
          }
        }
        Fl_Group {} {open
          xywh {202 75 353 30}
        } {
          Fl_Input {up.pathToPrefsInput} {
            label {Path to preference file: }
            tooltip {Changing that does nothing -- information only} xywh {205 80 280 25} textfont 4 textsize 12
            code0 {o->value("preferences");}
          }
          Fl_Button {up.prefBrowse} {
            label Browse
            user_data {&up} user_data_type {userprefs*}
            callback prefbrowse_cb
            xywh {485 80 70 25} deactivate
          }
        }
        Fl_Round_Button {up.keepPointsButton} {
          label {Keep points when switching images: }
          user_data {&up} user_data_type {userprefs*}
          callback keeppoints_cb
          tooltip {Keep points (as in pointfiles) on display} xywh {530 110 25 25} down_box ROUND_DOWN_BOX align 4
        }
        Fl_Value_Slider {up.transparencyValueSlider} {
          label {Overlay transparency:}
          user_data {&up} user_data_type {userprefs*}
          callback transparency_cb
          tooltip {0 = fully transparent ; 1= fully opaque} xywh {200 165 355 25} type Horizontal align 4 when 4 step 0.05
        }
      }
      Fl_Group {} {
        label Postscript open
        xywh {10 55 550 210} box FLAT_BOX
      } {
        Fl_Group {} {open
          xywh {170 70 385 25}
        } {
          Fl_Input {up.pathToGsInput} {
            label {Path to Ghostscript:}
            user_data {&up} user_data_type {userprefs*}
            callback pathtogsinput_cb
            tooltip {Path to postscript interpreter} xywh {170 70 315 25} textfont 4 textsize 12
            code0 {o->value("gs");}
          }
          Fl_Button {up.gsBrowse} {
            label Browse
            user_data {&up} user_data_type {userprefs*}
            callback gsbrowse_cb
            xywh {485 70 70 25} deactivate
          }
        }
        Fl_Group {} {open
          xywh {170 105 130 25} align 0
        } {
          Fl_Input {up.renderInput} {
            label {Render at:}
            user_data {&up} user_data_type {userprefs*}
            callback renderinput_cb
            tooltip {Resolution at which the file is rendered} xywh {170 105 75 25} type Int textfont 4 textsize 12
            code0 {o->value("300");}
            class Fl_Int_Input
          }
          Fl_Box {} {
            label dpi
            xywh {245 105 55 25} align 20
          }
        }
        Fl_Group {} {open
          xywh {355 105 130 25}
        } {
          Fl_Input {up.displayInput} {
            label {display at:}
            user_data {&up} user_data_type {userprefs*}
            callback displayinput_cb
            tooltip {Display resolution} xywh {355 105 75 25} type Int textfont 4 textsize 12
            code0 {o->value("150");}
            class Fl_Int_Input
          }
          Fl_Box {} {
            label dpi
            xywh {430 105 55 25} align 20
          }
        }
        Fl_Group {} {
          label {Render in:} open
          tooltip {Use colour except if speed is an issue} xywh {170 135 275 25} align 132
        } {
          Fl_Check_Button {up.colourCheck} {
            label colour
            user_data {&up} user_data_type {userprefs*}
            callback colourcheck_cb
            xywh {170 135 70 25} type Radio down_box DIAMOND_DOWN_BOX selection_color 39
          }
          Fl_Check_Button {up.greyCheck} {
            label grey
            user_data {&up} user_data_type {userprefs*}
            callback greycheck_cb
            xywh {270 135 70 25} type Radio down_box DIAMOND_DOWN_BOX selection_color 39
          }
          Fl_Check_Button {up.bwCheck} {
            label {binary b&&w}
            user_data {&up} user_data_type {userprefs*}
            callback bwcheck_cb
            xywh {355 135 90 25} type Radio down_box DIAMOND_DOWN_BOX value 1 selection_color 39
          }
        }
        Fl_Group {} {open
          xywh {105 165 325 25}
        } {
          Fl_Round_Button {up.antialiasButton} {
            label {Antialias:}
            user_data {&up} user_data_type {userprefs*}
            callback aabutton_cb
            tooltip {Smoothing at the rendering level} xywh {355 165 20 25} down_box ROUND_DOWN_BOX value 1 align 4
          }
          Fl_Round_Button {up.smoothButton} {
            label {Smooth:}
            user_data {&up} user_data_type {userprefs*}
            callback smoothbutton_cb
            tooltip {Smooth at the display level} xywh {170 165 20 25} down_box ROUND_DOWN_BOX value 1 align 4
          }
        }
        Fl_Choice {up.boundingChoice} {
          label {Bounding box:}
          user_data {&up} user_data_type {userprefs*}
          callback boundingchoice_cb open
          tooltip {Set this if the display is truncated} xywh {170 195 125 25} down_box BORDER_BOX
        } {
          menuitem {} {
            label Automatic
            xywh {0 0 100 20}
          }
          menuitem {} {
            label A5
            xywh {0 0 100 20}
          }
          menuitem {} {
            label B5
            xywh {5 5 100 20} value 1
          }
          menuitem {} {
            label A4
            xywh {0 0 100 20} value 1
          }
          menuitem {} {
            label Letter
            xywh {0 0 100 20} value 1
          }
          menuitem {} {
            label Legal
            xywh {10 10 100 20} value 1
          }
          menuitem {} {
            label A3
            xywh {20 20 100 20} value 1
          }
        }
        Fl_Group {} {open
          xywh {170 230 385 25}
        } {
          Fl_Input {up.pathToPSPreviewer} {
            label {Path to previewer:}
            user_data {&up} user_data_type {userprefs*}
            callback pathtogsinput_cb selected
            tooltip {Postscript previewer (for print preview)} xywh {170 230 315 25} textfont 4 textsize 12
            code0 {o->value("ghostview");}
          }
          Fl_Button {up.gvBrowse} {
            label Browse
            user_data {&up} user_data_type {userprefs*}
            callback gsbrowse_cb
            xywh {485 230 70 25} deactivate
          }
        }
      }
      Fl_Group {} {
        label Server
        xywh {10 55 550 210} box FLAT_BOX hide
      } {
        Fl_Group {} {open
          xywh {25 70 530 55} box ENGRAVED_BOX labelfont 10
        } {
          Fl_Slider {up.pollFrequencySlider} {
            label {Poll frequency}
            user_data {&up} user_data_type {userprefs*}
            callback pollslider_cb
            tooltip {Influences speed of image loadup via server} xywh {125 75 320 25} type Horizontal align 4
          }
          Fl_Input {up.pollFrequencyInput} {
            user_data {&up} user_data_type {userprefs*}
            callback pollinput_cb
            xywh {455 75 65 25} type Float when 8
            code0 {o->value("100");}
            class Fl_Float_Input
          }
          Fl_Box {} {
            label Hz
            xywh {520 70 35 30}
          }
          Fl_Box {} {
            label 10
            xywh {115 100 25 25}
          }
          Fl_Box {} {
            label 1000
            xywh {420 100 40 25}
          }
          Fl_Box {} {
            label 100
            xywh {275 100 25 25}
          }
        }
        Fl_Group {} {
          label Security open
          xywh {25 155 155 45} box ENGRAVED_BOX labelfont 10
        } {
          Fl_Round_Button {up.securityPasswordButton} {
            label {Require password}
            user_data {&up} user_data_type {userprefs*}
            callback requirepassword_cb
            xywh {155 155 25 25} down_box ROUND_DOWN_BOX align 4 deactivate
          }
          Fl_Round_Button {up.securityLocalhostButton} {
            label {Localhost only}
            user_data {&up} user_data_type {userprefs*}
            callback localhostonly_cb
            xywh {155 175 25 25} down_box ROUND_DOWN_BOX align 4 deactivate
          }
        }
        Fl_Box {} {
          label {<- these settings not available yet}
          xywh {190 165 255 25} labelfont 3 align 20
        }
      }
      Fl_Group {} {
        label Expert open
        xywh {10 55 550 210} box FLAT_BOX hide
      } {
        Fl_Round_Button {up.hideMenuButton} {
          label {Hide menu}
          user_data {&up} user_data_type {userprefs*}
          callback hidemenu_cb
          tooltip {Will hide the main menu} xywh {100 65 25 25} down_box ROUND_DOWN_BOX align 4
        }
      }
      Fl_Group {} {
        label Debug
        xywh {10 50 550 215} box FLAT_BOX hide
      } {
        Fl_Box {} {
          label {Do not modify anything here unless you know what you are doing!!}
          xywh {51 74 500 20} box ENGRAVED_BOX labelfont 3
        }
        Fl_Round_Button {up.showDebugMsgButton} {
          label {Show debug messages}
          user_data {&up} user_data_type {userprefs*}
          callback showdebug_cb
          xywh {275 110 30 25} down_box ROUND_DOWN_BOX align 4
        }
        Fl_Round_Button {up.stopAfterDebugMsgButton} {
          label {Stop after each debug message}
          user_data {&up} user_data_type {userprefs*}
          callback stopdebug_cb
          xywh {275 135 30 25} down_box ROUND_DOWN_BOX align 4
        }
        Fl_Input {up.xorValueBreakLineInput} {
          label {XOR value for `break' lines:}
          user_data {&up} user_data_type {userprefs*}
          callback xorbreakline_cb
          xywh {280 170 120 25} textfont 4 textsize 12
          code0 {o->value("0xffffffff");}
        }
        Fl_Input {up.xorValueProfileLineInput} {
          label {XOR value for profile lines:}
          user_data {&up} user_data_type {userprefs*}
          callback xorprofileline_cb
          xywh {280 200 120 25} textfont 4 textsize 12
          code0 {o->value("0xffffffff");}
        }
        Fl_Box {} {
          label {This item won't be saved}
          xywh {295 116 265 15} labelfont 2 labelsize 12 align 20
        }
        Fl_Box {} {
          label {This item won't be saved}
          xywh {295 141 265 15} labelfont 2 labelsize 12 align 20
        }
      }
    }
    Fl_Group {} {
      xywh {265 285 300 35}
    } {
      Fl_Group {} {open
        xywh {470 285 95 35} box THIN_DOWN_FRAME
      } {
        Fl_Return_Button {up.OKButton} {
          label OK
          user_data {&up} user_data_type {userprefs*}
          callback okbutton_cb
          xywh {475 290 85 25}
        }
      }
      Fl_Button {up.saveButton} {
        label Save
        user_data {&up} user_data_type {userprefs*}
        callback savebutton_cb
        xywh {370 290 90 25}
      }
      Fl_Button {up.cancelButton} {
        label Cancel
        user_data {&up} user_data_type {userprefs*}
        callback cancelbutton_cb
        xywh {265 290 95 25}
      }
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      # data file for the Fltk User Interface Designer (fluid)
version 1.0104 
header_name {.H} 
code_name {.C}
Function {transfer_panel(transfer &s)} {open
} {
  Fl_Window {s.transferWindow} {
    label {Edit transfer function} open selected
    xywh {670 500 570 330} type Double box THIN_UP_BOX
    code0 {\#include "transferFunction.hxx"}
    code1 {\#include "transferBox.hxx"} visible
  } {
    Fl_Group {} {open
      xywh {453 277 110 50}
    } {
      Fl_Box {} {
        xywh {462 284 99 36} box THIN_DOWN_FRAME
      }
      Fl_Return_Button {s.OKButton} {
        label {Dismiss  }
        user_data {&s} user_data_type {transfer*}
        callback okbutton_cb
        xywh {466 287 91 30} hotspot
      }
    }
    Fl_Group {} {open
      xywh {10 9 402 321}
    } {
      Fl_Box {} {
        xywh {20 10 370 266} box EMBOSSED_FRAME
      }
      Fl_Slider {s.contrastSlider} {
        label {Contrast }
        user_data {&s} user_data_type {transfer*}
        callback contrastslider_cb
        tooltip {Change slope of transfer function} xywh {20 280 370 20} type Horizontal labelsize 12 align 8
        code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
      }
      Fl_Box {s.transferBox} {
        user_data {&s} user_data_type {transfer*}
        tooltip {Transfer function graph} xywh {25 15 360 256} box FLAT_BOX color 199 selection_color 47
        class myTransferBox
      }
      Fl_Slider {s.brightnessSlider} {
        label {Brightness }
        user_data {&s} user_data_type {transfer*}
        callback brightnessslider_cb
        tooltip {Change additive constant to transfer function} xywh {20 300 370 20} type Horizontal labelsize 12 align 8
        code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
      }
      Fl_Slider {s.gammaSlider} {
        user_data {&s} user_data_type {transfer*}
        callback gammaslider_cb
        tooltip {Change gamma} xywh {393 11 19 264} labelsize 12 align 4
        code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
      }
    }
    Fl_Choice {s.displayChoice} {
      user_data {&s} user_data_type {transfer*}
      callback displaychoice_cb open
      tooltip {Display transfer function or histogram} xywh {420 10 140 30} down_box BORDER_BOX align 0 textsize 12
    } {}
    Fl_Button {s.resetButton} {
      label reset
      user_data {&s} user_data_type {transfer*}
      callback resetbutton_cb
      tooltip {reset to linear, 1:1  transfer} xywh {420 50 68 20} labelsize 12
    }
    Fl_Button {s.normaliseButton} {
      label normalise
      user_data {&s} user_data_type {transfer*}
      callback normalisebutton_cb
      tooltip {set min to black and max to white} xywh {494 50 66 19} labelsize 12
    }
    Fl_Input {s.gammaInput} {
      label {Gamma:}
      user_data {&s} user_data_type {transfer*}
      callback gammainput_cb
      tooltip {transfer function = 1^(1/gamma)} xywh {469 124 90 30} type Float labelsize 12 when 8 textsize 12
      code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
      class Fl_Float_Input
    }
    Fl_Input {s.topInput} {
      label {Top:}
      user_data {&s} user_data_type {transfer*}
      callback topinput_cb
      tooltip {intersection with top edge of box} xywh {469 154 90 30} type Int labelsize 12 when 8 textsize 12
      class Fl_Int_Input
    }
    Fl_Input {s.bottomInput} {
      label {Bottom:}
      user_data {&s} user_data_type {transfer*}
      callback bottominput_cb
      tooltip {intersection with bottom edge of box} xywh {469 184 90 30} type Int labelsize 12 when 8 textsize 12
      code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
      class Fl_Int_Input
    }
    Fl_Input {s.leftInput} {
      label {Left:}
      user_data {&s} user_data_type {transfer*}
      callback leftinput_cb
      tooltip {intersection with left edge of box} xywh {469 214 90 30} type Int labelsize 12 when 8 textsize 12
      code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
      class Fl_Int_Input
    }
    Fl_Input {s.rightInput} {
      label {Right:}
      user_data {&s} user_data_type {transfer*}
      callback rightinput_cb
      tooltip {intersection with right edge of box} xywh {469 244 90 30} type Int labelsize 12 when 8 textsize 12
      code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
      class Fl_Int_Input
    }
    Fl_Check_Button {s.applyToAllButton} {
      label {Apply to all images}
      user_data {&s} user_data_type {transfer*}
      callback applytoallbutton_cb
      tooltip {Apply same transfer to all images} xywh {420 80 140 20} box UP_FRAME down_box ROUND_UP_BOX selection_color 130 labelsize 12 align 16
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  makedepend
*.a
*.C
*.H
*.cxx
*.hxx
*.o
.ix*
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    # data file for the Fltk User Interface Designer (fluid)
version 1.0011 
header_name {.H} 
code_name {.C} 
gridx 5 
gridy 5 
snap 3
Function {RGB_transfer_panel(transferRGB &s)} {open
} {
  Fl_Window {s.RGBtransferWindow} {
    label {Edit transfer function} open
    xywh {1679 150 658 517} type Double labeltype NORMAL_LABEL align 4 resizable
    code0 {\#include "transferRGBFunction.hxx"}
    code1 {\#include "transferRGBBox.hxx"} visible
  } {
    Fl_Group {} {
      xywh {490 345 160 167}
    } {
      Fl_Box {} {selected
        xywh {490 345 160 130} resizable
      }
      Fl_Group {} {open
        xywh {490 475 159 37}
      } {
        Fl_Group {} {open
          xywh {550 475 99 37}
        } {
          Fl_Box {} {
            xywh {550 475 99 37} box THIN_DOWN_FRAME
          }
          Fl_Return_Button {s.OKButton} {
            label {Dismiss  }
            user_data {&s} user_data_type {transferRGB*}
            callback okbutton_cb
            xywh {554 479 91 30}
          }
        }
        Fl_Box {} {
          xywh {490 475 60 35} resizable
        }
      }
    }
    Fl_Group {} {
      label link
      xywh {0 370 490 140} align 8
    } {
      Fl_Group {} {open
        xywh {420 370 70 140} align 8
      } {
        Fl_Group {} {open
          xywh {420 370 50 40}
        } {
          Fl_Box {} {
            xywh {420 380 50 20} box BORDER_FRAME color 0
          }
          Fl_Box {} {
            xywh {420 370 30 40} box FLAT_BOX
          }
        }
        Fl_Group {} {open
          xywh {420 420 50 40}
        } {
          Fl_Box {} {
            xywh {420 430 50 20} box BORDER_FRAME color 0
          }
          Fl_Box {} {
            xywh {420 420 30 40} box FLAT_BOX
          }
        }
        Fl_Group {} {open
          xywh {420 470 50 40}
        } {
          Fl_Box {} {
            xywh {420 480 50 19} box BORDER_FRAME color 0
          }
          Fl_Box {} {
            xywh {420 470 30 40} box FLAT_BOX
          }
        }
        Fl_Group {} {open
          xywh {460 380 30 120}
        } {
          Fl_Group {} {open
            xywh {460 388 30 102}
          } {
            Fl_Group {} {open
              xywh {460 388 30 52}
            } {
              Fl_Box {} {
                xywh {469 389 21 51} box BORDER_FRAME color 0
              }
              Fl_Box {} {
                xywh {460 400 20 30} box FLAT_BOX
              }
            }
            Fl_Group {} {open
              xywh {460 438 30 52}
            } {
              Fl_Box {} {
                xywh {469 439 21 51} box BORDER_FRAME color 0
              }
              Fl_Box {} {
                xywh {460 450 20 30} box FLAT_BOX
              }
            }
          }
          Fl_Round_Button {s.linkRButton} {
            xywh {470 380 20 20} down_box ROUND_DOWN_BOX selection_color 3
          }
          Fl_Round_Button {s.linkGButton} {
            xywh {470 430 20 20} down_box ROUND_DOWN_BOX selection_color 3
          }
          Fl_Round_Button {s.linkBButton} {
            xywh {470 480 20 20} down_box ROUND_DOWN_BOX selection_color 3
          }
        }
      }
      Fl_Group {} {open
        xywh {30 370 370 140} resizable
      } {
        Fl_Slider {s.RcontrastSlider} {
          label {R cntrst}
          user_data {&s} user_data_type {transferRGB*}
          callback contrastslider_cb
          xywh {30 370 370 20} type {Horz Knob} color 9 labelsize 12 align 8
          code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
        }
        Fl_Slider {s.RbrightnessSlider} {
          label {R bright}
          user_data {&s} user_data_type {transferRGB*}
          callback brightnessslider_cb
          xywh {30 390 370 20} type {Horz Knob} color 9 labelsize 12 align 8
          code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
        }
        Fl_Slider {s.GcontrastSlider} {
          label {G cntrst}
          user_data {&s} user_data_type {transferRGB*}
          callback contrastslider_cb
          xywh {30 420 370 20} type {Horz Knob} color 10 labelsize 12 align 8
          code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
        }
        Fl_Slider {s.GbrightnessSlider} {
          label {G bright}
          user_data {&s} user_data_type {transferRGB*}
          callback brightnessslider_cb
          xywh {30 440 370 20} type {Horz Knob} color 10 labelsize 12 align 8
          code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
        }
        Fl_Slider {s.BcontrastSlider} {
          label {B cntrst}
          user_data {&s} user_data_type {transferRGB*}
          callback contrastslider_cb
          xywh {30 470 370 20} type {Horz Knob} color 12 labelsize 12 align 8
          code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
        }
        Fl_Slider {s.BbrightnessSlider} {
          label {B bright}
          user_data {&s} user_data_type {transferRGB*}
          callback brightnessslider_cb
          xywh {30 490 370 20} type {Horz Knob} color 12 labelsize 12 align 8
          code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
        }
      }
      Fl_Box {} {
        xywh {0 370 30 140}
      }
    }
    Fl_Group {} {
      label gamma
      xywh {420 0 60 370} align 17
    } {
      Fl_Group {} {open
        xywh {420 20 60 320} resizable
      } {
        Fl_Slider {s.RgammaSlider} {
          user_data {&s} user_data_type {transferRGB*}
          callback gammaslider_cb
          xywh {420 20 20 320} type {Vert Knob} color 9 labelsize 12 align 4
          code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
        }
        Fl_Slider {s.GgammaSlider} {
          user_data {&s} user_data_type {transferRGB*}
          callback gammaslider_cb
          xywh {440 20 20 320} type {Vert Knob} color 10 labelsize 12 align 4
          code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
        }
        Fl_Slider {s.BgammaSlider} {
          user_data {&s} user_data_type {transferRGB*}
          callback gammaslider_cb
          xywh {460 20 20 320} type {Vert Knob} color 12 labelsize 12 align 4
          code0 {o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);}
        }
      }
      Fl_Box {} {
        xywh {420 340 60 30}
      }
      Fl_Box {} {
        xywh {420 0 60 25}
      }
    }
    Fl_Group {s.displayBoxGroup} {
      xywh {0 10 400 350} resizable
    } {
      Fl_Box {s.RGBtransferBox} {
        user_data {&s} user_data_type {transfer*}
        xywh {30 20 370 320} box ENGRAVED_BOX color 43 selection_color 47 resizable
        class myTransferRGBBox
      }
      Fl_Group {} {open
        xywh {30 340 370 20}
      } {
        Fl_Box {} {
          label {Input data range}
          xywh {50 340 330 20} labelsize 12 resizable
        }
        Fl_Box {} {
          label min
          xywh {30 340 20 20} labelsize 12
        }
        Fl_Box {} {
          label max
          xywh {380 340 20 20} labelsize 12
        }
      }
      Fl_Group {} {open
        xywh {0 20 30 320}
      } {
        Fl_Box {} {
          label {out val}
          xywh {0 30 30 300} labelsize 12 align 128 resizable
        }
        Fl_Box {} {
          label 0
          xywh {0 330 30 10} labelsize 12
        }
        Fl_Box {} {
          label 255
          xywh {0 20 30 15} labelsize 12
        }
      }
    }
    Fl_Group {} {open
      xywh {490 0 160 345}
    } {
      Fl_Group {} {open
        xywh {490 20 160 320} box ENGRAVED_FRAME
      } {
        Fl_Choice {s.displayChoice} {
          user_data {&s} user_data_type {transferRGB*}
          callback displaychoice_cb open
          xywh {500 30 140 30} align 0 textsize 10
        } {}
        Fl_Button {s.resetButton} {
          label reset
          user_data {&s} user_data_type {transferRGB*}
          callback resetbutton_cb
          xywh {500 66 60 24} labelsize 12
        }
        Fl_Button {s.normaliseButton} {
          label normalise
          user_data {&s} user_data_type {transferRGB*}
          callback normalisebutton_cb
          xywh {570 66 70 24} labelsize 12
        }
        Fl_Check_Button {s.applyToAllButton} {
          label {Apply to all images}
          user_data {&s} user_data_type {transferRGB*}
          callback applytoallbutton_cb
          xywh {499 305 141 20} box UP_FRAME down_box ROUND_UP_BOX selection_color 130 labelsize 12 align 16
        }
        Fl_Group {} {
          label {Affected:} open
          xywh {540 110 95 25} labelsize 10 align 132
        } {
          Fl_Button {s.Rselect} {
            label R
            user_data {&s} user_data_type {transferRGB*}
            callback selectchannel_cb
            xywh {540 110 25 25} type Toggle value 1 color 9 selection_color 1
          }
          Fl_Button {s.Gselect} {
            label G
            user_data {&s} user_data_type {transferRGB*}
            callback selectchannel_cb
            xywh {575 110 25 25} type Toggle value 1 color 10 selection_color 2
          }
          Fl_Button {s.Bselect} {
            label B
            user_data {&s} user_data_type {transferRGB*}
            callback selectchannel_cb
            xywh {610 110 25 25} type Toggle value 1 color 12 selection_color 4
          }
        }
        Fl_Group {} {open
          xywh {535 145 105 150}
        } {
          Fl_Input {s.RgammaInput} {
            label {Gamma:}
            user_data {&s} user_data_type {transferRGB*}
            callback gammainput_cb
            xywh {535 145 35 30} type Float color 9 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Float_Input
          }
          Fl_Input {s.RtopInput} {
            label {Top:}
            user_data {&s} user_data_type {transferRGB*}
            callback topinput_cb
            xywh {535 175 35 30} type Int color 9 labelsize 10 when 8 textsize 10
            class Fl_Int_Input
          }
          Fl_Input {s.RbottomInput} {
            label {Bottom:}
            user_data {&s} user_data_type {transferRGB*}
            callback bottominput_cb
            xywh {535 205 35 30} type Int color 9 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Int_Input
          }
          Fl_Input {s.RleftInput} {
            label {Left:}
            user_data {&s} user_data_type {transferRGB*}
            callback leftinput_cb
            xywh {535 235 35 30} type Int color 9 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Int_Input
          }
          Fl_Input {s.RrightInput} {
            label {Right:}
            user_data {&s} user_data_type {transferRGB*}
            callback rightinput_cb
            xywh {535 265 35 30} type Int color 9 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Int_Input
          }
          Fl_Input {s.GgammaInput} {
            user_data {&s} user_data_type {transferRGB*}
            callback gammainput_cb
            xywh {570 145 35 30} type Float color 10 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Float_Input
          }
          Fl_Input {s.GtopInput} {
            user_data {&s} user_data_type {transferRGB*}
            callback topinput_cb
            xywh {570 175 35 30} type Int color 10 labelsize 10 when 8 textsize 10
            class Fl_Int_Input
          }
          Fl_Input {s.GbottomInput} {
            user_data {&s} user_data_type {transferRGB*}
            callback bottominput_cb
            xywh {570 205 35 30} type Int color 10 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Int_Input
          }
          Fl_Input {s.GleftInput} {
            user_data {&s} user_data_type {transferRGB*}
            callback leftinput_cb
            xywh {570 235 35 30} type Int color 10 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Int_Input
          }
          Fl_Input {s.GrightInput} {
            user_data {&s} user_data_type {transferRGB*}
            callback rightinput_cb
            xywh {570 265 35 30} type Int color 10 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Int_Input
          }
          Fl_Input {s.BgammaInput} {
            user_data {&s} user_data_type {transferRGB*}
            callback gammainput_cb
            xywh {605 145 35 30} type Float color 12 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Float_Input
          }
          Fl_Input {s.BtopInput} {
            user_data {&s} user_data_type {transferRGB*}
            callback topinput_cb
            xywh {605 175 35 30} type Int color 12 labelsize 10 when 8 textsize 10
            class Fl_Int_Input
          }
          Fl_Input {s.BbottomInput} {
            user_data {&s} user_data_type {transferRGB*}
            callback bottominput_cb
            xywh {605 205 35 30} type Int color 12 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Int_Input
          }
          Fl_Input {s.BleftInput} {
            user_data {&s} user_data_type {transferRGB*}
            callback leftinput_cb
            xywh {605 235 35 30} type Int color 12 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Int_Input
          }
          Fl_Input {s.BrightInput} {
            user_data {&s} user_data_type {transferRGB*}
            callback rightinput_cb
            xywh {605 265 35 30} type Int color 12 labelsize 10 when 8 textsize 10
            code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
            class Fl_Int_Input
          }
        }
      }
      Fl_Box {} {
        xywh {490 340 160 5} resizable
      }
      Fl_Box {} {
        xywh {490 0 160 20}
      }
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               # data file for the Fltk User Interface Designer (fluid)
version 1.0103 
header_name {.h} 
code_name {.cxx}
Function {annotatept_panel(annotatept &anpp)} {open
} {
  Fl_Window {anpp.annotateWindow} {
    label {Annotate point} open
    xywh {29 68 451 317} type Single box ENGRAVED_BOX
    code0 {\#include "annotatePoints.hxx"} modal visible
  } {
    Fl_Group {} {open
      xywh {15 15 455 65}
    } {
      Fl_Input {anpp.annotateInput} {
        label {Annotation:}
        user_data {&anpp} user_data_type {annotatept*}
        callback annotateinput_cb
        tooltip {Text to appear next to point} xywh {125 15 310 60} type Multiline color 43 selection_color 143 labelfont 7
      }
    }
    Fl_Group {} {open
      xywh {329 239 110 66}
    } {
      Fl_Box {} {
        xywh {349 269 88 36} box THIN_DOWN_FRAME
      }
      Fl_Return_Button {anpp.OKButton} {
        label OK
        user_data {&anpp} user_data_type {annotatept*}
        callback okbutton_cb
        tooltip {Accept changes} xywh {353 272 80 30} hotspot
      }
    }
    Fl_Button {anpp.CancelButton} {
      label Cancel
      user_data {&anpp} user_data_type {annotatept*}
      callback cancelbutton_cb selected
      tooltip {Close dialog -- discard changes} xywh {15 270 80 30}
      code0 {o->shortcut("^[");}
    }
    Fl_Group {} {
      label {Position:} open
      tooltip {Position of text relative to point} xywh {125 80 125 60} box ENGRAVED_FRAME labelfont 7 align 4
    } {
      Fl_Round_Button {} {
        label NW
        user_data {&anpp} user_data_type {annotatept*}
        callback NW_cb
        xywh {160 80 30 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 39 align 4
      }
      Fl_Round_Button {} {
        label NE
        user_data {&anpp} user_data_type {annotatept*}
        callback NE_cb
        xywh {190 80 30 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 39 align 8
      }
      Fl_Round_Button {} {
        label SE
        user_data {&anpp} user_data_type {annotatept*}
        callback SE_cb
        xywh {190 110 30 30} type Radio down_box DIAMOND_DOWN_BOX value 1 selection_color 39 align 8
      }
      Fl_Round_Button {} {
        label SW
        user_data {&anpp} user_data_type {annotatept*}
        callback SW_cb
        xywh {160 110 30 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 39 align 4
      }
    }
    Fl_Choice {anpp.fontChoice} {
      label {Text font:} open
      tooltip {Text font} xywh {125 145 125 25} down_box BORDER_BOX labelfont 7
    } {
      menuitem {} {
        label Helvetica
        xywh {10 10 100 20} value 1
      }
      menuitem {} {
        label {Helv.Bold}
        xywh {10 10 100 20}
      }
      menuitem {} {
        label {Helv.Italic}
        xywh {20 20 100 20}
      }
      menuitem {} {
        label {Helv.Bold.Ital}
        xywh {10 10 100 20}
      }
      menuitem {} {
        label Courier
        xywh {20 20 100 20}
      }
      menuitem {} {
        label {Courier Bold}
        xywh {30 30 100 20}
      }
      menuitem {} {
        label {Courier Ital}
        xywh {40 40 100 20}
      }
      menuitem {} {
        label {Cour.Bold.Ital.}
        xywh {50 50 100 20}
      }
      menuitem {} {
        label Times
        xywh {60 60 100 20}
      }
      menuitem {} {
        label {Times Bold}
        xywh {70 70 100 20}
      }
      menuitem {} {
        label {Times.Bld.Ital.}
        xywh {80 80 100 20}
      }
      menuitem {} {
        label Symbol
        xywh {90 90 100 20}
      }
      menuitem {} {
        label Screen
        xywh {100 100 100 20}
      }
      menuitem {} {
        label {Screen Bold}
        xywh {110 110 100 20}
      }
    }
    Fl_Group {} {
      label {Distance:} open
      tooltip {Distance point-text} xywh {340 80 95 60} box ENGRAVED_BOX labelfont 7 align 4
    } {
      Fl_Roller {anpp.distanceRoller} {
        user_data {&anpp} user_data_type {annotatept*}
        callback setdistance_cb
        xywh {345 85 85 25} type Horizontal align 1 minimum 5 maximum 40 step 1 value 7
      }
      Fl_Value_Output {anpp.distanceValue} {
        xywh {345 110 85 25} minimum 5 maximum 40 step 1 value 7
      }
    }
    Fl_Choice {anpp.fontColourChoice} {
      label {Colour:} open
      tooltip {Text colour} xywh {340 145 95 25} down_box BORDER_BOX labelfont 7
    } {
      menuitem {} {
        label black
        xywh {30 30 100 20}
      }
      menuitem {} {
        label red
        xywh {20 20 100 20}
      }
      menuitem {} {
        label green
        xywh {20 20 100 20}
      }
      menuitem {} {
        label yellow
        xywh {30 30 100 20}
      }
      menuitem {} {
        label blue
        xywh {20 20 100 20}
      }
      menuitem {} {
        label magenta
        xywh {30 30 100 20}
      }
      menuitem {} {
        label cyan
        xywh {40 40 100 20}
      }
      menuitem {} {
        label white
        xywh {40 40 100 20}
      }
    }
    Fl_Group {} {open
      tooltip {Text size} xywh {125 185 310 40}
    } {
      Fl_Slider {anpp.fontSizeSlider} {
        label {Text size:}
        xywh {125 185 310 25} type {Horz Knob} labelfont 7 align 4 minimum 5 maximum 24 step 1 value 10
      }
      Fl_Box {} {
        label {tiny       small      medium       large      huge}
        xywh {125 210 310 15} labelfont 4 labelsize 10 align 20
      }
    }
    Fl_Round_Button {anpp.hiddenButton} {
      label {Hidden:}
      tooltip {Hide text} xywh {125 230 25 25} down_box ROUND_DOWN_BOX selection_color 39 labelfont 7 align 4
    }
    Fl_Value_Slider {anpp.pointsizeValueSlider} {
      label {Point size:}
      tooltip {Size of point} xywh {265 230 170 25} type Horizontal labelfont 7 align 4 minimum 1 maximum 15 step 1 value 3
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 /* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"32 28 2 1",
"  c gray0",
"X s mask c none",
/* pixels */
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXX      XXXXXXXXXXXXX",
"XXXXXXXXXXXXX      XXXXXXXXXXXXX",
"XXXXXXXXXXXXX  XX  XXXXXXXXXXXXX",
"XXXXXXXXXXXXX  XX  XXXXXXXXXXXXX",
"XXXXXXXXXXXXX      XXXXXXXXXXXXX",
"XXXXXXXXXXXX        XXXXXXXXXXXX",
"XXXXXXXXXXX  XXXXXX  XXXXXXXXXXX",
"XXXXXXXXXX  XXXXXXXX  XXXXXXXXXX",
"XXXXXXXXX  XXXXXXXXXX  XXXXXXXXX",
"XXXXXXXX  XXXXX XXXXXX  XXXXXXXX",
"XXXXXXX  XXXXX   XXXXXX  XXXXXXX",
"XXXXXX  XXXXX X X XXXXXX  XXXXXX",
"XXXXX  XXXXXXXX XXXXXXXXX  XXXXX",
"XXXX  XXXXXXXXX XXXXXXXXXX  XXXX",
"XXX  XXXXXXXXXX XXXXXXXXXXX  XXX",
"XX  XXXXXXXXXXX XXXXXXXXXXXX  XX",
"X  XXXXXXXXXXXX XXXXXXXXXXXXX  X",
"XXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X X X X X X X X X X X X X X X XX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /* XPM */
static char * measure_xpm[] = {
"32 28 2 1",
" 	s mask c none  ",
".	c #000000000000",
"     .               .          ",
"    .               ..          ",
"   ...             . .          ",
"   .  ....         . .          ",
"    .     ....      ..          ",
"    .         ....         .    ",
"                  ....     .    ",
"   ..                 ....  .   ",
"   . ....                 ...   ",
"    .    ....             ..    ",
"    .        ....        .      ",
"    .            ....           ",
"     .           .   ....       ",
"     .           .       ..     ",
"      .          .              ",
"      .         .               ",
"      .         .               ",
"       .        .               ",
"       .       .                ",
"       .      .       ... .     ",
"        .     .      .. . .     ",
"        .   ..       .   .      ",
"         ...         .   .      ",
"         .           .. . .     ",
"         .            ..  ..    ",
"          .                     ",
"          .                     ",
"                                "};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"32 28 2   2",
"   c gray0",
".  s mask c none",
/* pixels */
". . . . . . . . . . . . . . . . .   . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . .     . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . .   .   . . . . . . . . . . . . ",
". . . . . . . . . . . . . .         . .   . . . . . . . . . . . ",
". . . . . . . . . . . .     . . . . . . .   . . . . . . . . . . ",
". . . . . . . . . . .   . . . . . . . . .   . . . . . . . . . . ",
". . . . . . . . . .   . . .         . .   . . . . . . . . . . . ",
". . . . . . . . . .   . .   . . .   .   . . . . . . . . . . . . ",
". . . . . . . . .   . .   . . . .     . . . . . . . . . . . . . ",
". . . . . . . . .   . .   . . . .   . . . . . . . . . . . . . . ",
". . . . . . . . .   . .   . . . . . . .         . . . . . . . . ",
". . . . . . . . .   . .   . . . . . . .   . .   . . . . . . . . ",
". . . . . . . . .   . .   . . . . . . .   . .   . . . . . . . . ",
". . . . . . . . . .   . .   . . . . .   . .   . . . . . . . . . ",
". . . . . . . . . .   . . .           . . .   . . . . . . . . . ",
". . . . . . . . . . .   . . . . . . . . .   . . . . . . . . . . ",
". . . . . . . . . . . .     . . . . .     . . . . . . . . . . . ",
". . . . . . . . . . . . . .           . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
".         . . . . . . . .   . . . . . . . . .   . . . . . . . . ",
".   . . .   . . . . . . .   . . . . . . . . .   . . . . . . . . ",
".   . . .   . .     . .       . . .     . .       . . .     . . ",
".   . . .   .   . .   . .   . . . . . .   . .   . . .   . .   . ",
".         . .   . .   . .   . . .         . .   . . .         . ",
".   . . .   .   . .   . .   . . .   . .   . .   . . .   . . . . ",
".   . . .   .   . .   . .   .   .   . .   . .   .   .   . .   . ",
".   . . .   . .     . . . .   . . .       . . .   . . .     . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "
};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  /* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"32 28 2  1",
"  c gray0",
"# s mask c none",
/* pixels */
"################################",
"#   #######################   ##",
"#                             ##",
"#   #######################   ##",
"## ################   ###### ###",
"## #####    #####  ###  #### ###",
"## #### #### ### ####### ### ###",
"## ### ###### ## ####### ### ###",
"## ### ######### ####### ### ###",
"## #### #########  ###  #### ###",
"## #####    #######   ###### ###",
"## ######### ############### ###",
"## ########## ############## ###",
"## ### ###### ######## ##### ###",
"## #### #### ########## #### ###",
"## #####    ############ ### ###",
"## ############       ### ## ###",
"## ############### ###### ## ###",
"## ############### ###### ## ###",
"## ###        #### ###### ## ###",
"## ### ###### #### ###### ## ###",
"## ### ###### #### ##### ### ###",
"## ### ###### #### #### #### ###",
"## ###        #### ### ##### ###",
"## ######################### ###",
"#   #######################   ##",
"#                             ##",
"#   #######################   ##"
};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     # data file for the Fltk User Interface Designer (fluid)
version 1.00 
header_name {.H} 
code_name {.C} 
gridx 5 
gridy 5 
snap 3
Function {progress_panel(progress &p)} {open
} {
  Fl_Window {p.progressWindow} {
    label {Progress Indicator} open selected
    xywh {735 239 300 100} type Single resizable
    code0 {\#include "progressInfo.hxx"} visible
  } {
    Fl_Slider {p.progressSlider} {
      label Progress
      xywh {25 25 255 25} type {Horz Fill} color 174 selection_color 230 align 1 maximum 100
    }
    Fl_Return_Button {} {
      label Dismiss
      user_data {&p} user_data_type {progress *}
      callback okbutton_cb
      xywh {195 60 85 25}
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           /* config.h.in.  Generated automatically from configure.in by autoheader.  */

/* Define to empty if the keyword does not work.  */
#undef const

/* Define if you have the ANSI C header files.  */
#undef STDC_HEADERS

/* Define if your <sys/time.h> declares struct tm.  */
#undef TM_IN_SYS_TIME
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         # data file for the Fltk User Interface Designer (fluid)
version 1.00 
header_name {.h} 
code_name {.cxx} 
gridx 10 
gridy 10 
snap 3
Function {printspect_panel(printspect &s)} {open
} {
  Fl_Window {s.prefWindow} {
    label {Print one-dimensional data} open selected
    xywh {541 300 430 330} type Single box ENGRAVED_BOX
    code0 {\#include "printSpect.hxx"} modal visible
  } {
    Fl_Box {} {
      xywh {0 164 430 106} box ENGRAVED_BOX
    }
    Fl_Group {s.printtypeGroup} {
      label {Print to:} open
      xywh {150 10 260 30} labelfont 7 align 4
    } {
      Fl_Check_Button {s.printerCheck} {
        label Printer
        user_data {&s} user_data_type {printspect*}
        callback printercheck_cb
        xywh {150 10 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 17
      }
      Fl_Check_Button {s.fileCheck} {
        label File
        user_data {&s} user_data_type {printspect*}
        callback filecheck_cb
        xywh {250 10 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 17
      }
    }
    Fl_Group {s.inputGroup} {open
      xywh {150 40 265 110}
    } {
      Fl_Input {s.commandInput} {
        label {Print command:}
        user_data {&s} user_data_type {printspect*}
        callback commandInput_cb
        xywh {150 40 260 30} color 43 selection_color 43 labelfont 7 align 132 textfont 4 textsize 12
      }
      Fl_Input {s.filenameInput} {
        label {File name:}
        user_data {&s} user_data_type {printspect*}
        callback filenameInput_cb
        xywh {150 80 190 30} selection_color 43 labelfont 7 labelcolor 31 align 132 textfont 4 textsize 12 textcolor 31 deactivate
      }
      Fl_Button {s.browseButton} {
        label {Browse...}
        user_data {&s} user_data_type {printspect*}
        callback browsebutton_cb
        xywh {340 80 70 30} labelcolor 31 deactivate
      }
      Fl_Input {s.titleInput} {
        label {Page title:}
        user_data {&s} user_data_type {printspect*}
        callback titleInput_cb
        xywh {150 120 260 30} color 43 selection_color 43 labelfont 7 align 132 textfont 4 textsize 12
      }
    }
    Fl_Group {s.orientationGroup} {
      label {Orientation:} open
      xywh {150 165 200 30} labelfont 7 align 4
    } {
      Fl_Check_Button {s.portraitCheck} {
        label Portrait
        user_data {&s} user_data_type {printspect*}
        callback portraitcheck_cb
        xywh {150 165 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 17
      }
      Fl_Check_Button {s.landscapeCheck} {
        label Landscape
        user_data {&s} user_data_type {printspect*}
        callback landscapecheck_cb
        xywh {250 165 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 17
      }
    }
    Fl_Group {s.papersizeGroup} {
      label {Paper size:} open
      xywh {150 195 268 30} labelfont 7 align 4
    } {
      Fl_Check_Button {s.A4Check} {
        label A4
        user_data {&s} user_data_type {printspect*}
        callback a4check_cb
        xywh {150 195 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 17
      }
      Fl_Check_Button {s.letterCheck} {
        label Letter
        user_data {&s} user_data_type {printspect*}
        callback lettercheck_cb
        xywh {250 195 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 17
      }
      Fl_Check_Button {s.A3Check} {
        label A3
        user_data {&s} user_data_type {printspect*}
        callback a3check_cb
        xywh {350 195 50 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 17
      }
    }
    Fl_Button {s.CancelButton} {
      label Cancel
      user_data {&s} user_data_type {printspect*}
      callback cancelbutton_cb
      xywh {30 287 80 30}
      code0 {o->shortcut("^[");}
    }
    Fl_Input {s.nbcopiesInput} {
      label {Nb copies:}
      user_data {&s} user_data_type {printspect*}
      callback nbcopies_cb
      xywh {150 230 40 30} type Int color 43 selection_color 43 labelfont 7 textfont 4 textsize 12
    }
    Fl_Group {s.joinGroup} {
      label {Join:} open
      xywh {250 230 170 30} labelfont 7 align 4
    } {
      Fl_Check_Button {s.linesCheck} {
        label Lines
        user_data {&s} user_data_type {printspect*}
        callback linescheck_cb
        xywh {250 230 80 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 17
      }
      Fl_Check_Button {s.splinesCheck} {
        label Splines
        user_data {&s} user_data_type {printspect*}
        callback splinescheck_cb
        xywh {350 230 70 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 17
      }
    }
    Fl_Group {} {open
      xywh {290 284 110 46}
    } {
      Fl_Box {} {
        xywh {310 284 88 36} box THIN_DOWN_FRAME
      }
      Fl_Return_Button {s.OKButton} {
        label Print
        user_data {&s} user_data_type {printspect*}
        callback okbutton_cb
        xywh {314 287 80 30} hotspot
      }
    }
    Fl_Button {s.previewButton} {
      label Preview
      user_data {&s} user_data_type {printspect*}
      callback previewbutton_cb
      xywh {210 287 80 30} type Toggle down_box DOWN_BOX when 1
      code0 {o->shortcut("p");}
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             /* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"32 28 2  1",
"  c gray0",
"# s mask c none", 
/* pixels */
"################################",
"############   #################",
"############ # #################",
"############   #################",
"#####    ###  ##################",
"###### ## # # ##################",
"####### ##  # ##################",
"######## ## # ##################",
"######### ##  ##################",
"## ######  ## ##################",
"##   #### # ## #################",
"## ##  # ### ## ################",
"##  ###  #### ## ###############",
"####  # #  ##  ## ##############",
"######  ###   # ## #############",
"###### #  ###  # ## ############",
"###### ###  # #   ## ###########",
"##### ######  ###  # ####   ####",
"##### #######   ###   ##     ###",
"#### ######## #           ##  ##",
"### ######### #######  #   ## ##",
"### ######### ######    ##    ##",
"## ########## ######  #  ##  ###",
"## ########## ######  ##  ######",
"############# #######  ## ######",
"############# ########  # ######",
"############# #########   ######",
"################################"
};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    # data file for the Fltk User Interface Designer (fluid)
version 1.0011 
header_name {.H} 
code_name {.C} 
gridx 5 
gridy 5 
snap 3
Function {bivhist_panel(bivhist &bh)} {open
} {
  Fl_Window {bh.bivhistWindow} {
    label {Bivariate histogram} open selected
    xywh {667 242 800 600} type Single resizable
    code0 {\#include "bivHist.hxx"} visible
  } {
    Fl_Group {} {
      xywh {0 45 685 510} resizable
    } {
      Fl_Scroll {bh.bivhistScroll} {open
        xywh {65 45 620 480} box THIN_DOWN_BOX color 53 resizable
      } {}
      Fl_Box {bh.absissaBox} {
        label X
        xywh {65 526 620 24} labelfont 3 align 16
        class axisBox
      }
      Fl_Box {bh.ordinateBox} {
        label Y
        xywh {0 45 63 480} labelfont 3 align 16
        class axisBox
      }
      Fl_Box {} {
        xywh {0 525 65 25}
      }
    }
    Fl_Group {} {
      xywh {0 560 800 35}
    } {
      Fl_Button {bh.printButton} {
        label print
        xywh {600 565 80 25}
      }
      Fl_Button {bh.saveButton} {
        label save
        xywh {510 565 80 25}
      }
      Fl_Box {} {
        xywh {690 560 100 35} box THIN_DOWN_BOX
      }
      Fl_Return_Button {bh.computeButton} {
        label compute
        user_data {&bh} user_data_type {bivhist*}
        callback computebivhist_cb
        xywh {695 565 90 25}
      }
      Fl_Button {bh.dismissButton} {
        label dismiss
        user_data {&bh} user_data_type {bivhist*}
        callback dismissbutton_cb
        xywh {65 565 70 25}
      }
      Fl_Box {} {
        xywh {135 560 375 35} resizable
      }
      Fl_Box {} {
        xywh {0 560 65 35}
      }
      Fl_Box {} {
        xywh {790 560 10 35}
      }
    }
    Fl_Group {} {open
      xywh {690 0 110 525}
    } {
      Fl_Group {} {
        label region open
        xywh {690 45 92 165} box ENGRAVED_BOX
      } {
        Fl_Group {} {open
          xywh {695 55 80 60}
        } {
          Fl_Button {bh.selectRegionButton} {
            label select
            xywh {695 55 80 25} type Radio
            code0 {o->value(1);}
          }
          Fl_Button {bh.clearRegionButton} {
            label clear
            xywh {695 90 80 25} type Radio
          }
        }
        Fl_Choice {bh.regioncolourChoice} {
          label {colour:} open
          xywh {695 140 80 25} align 1
        } {
          menuitem {} {
            label red
            xywh {0 0 100 20}
          }
          menuitem {} {
            label green
            xywh {0 0 100 20}
          }
          menuitem {} {
            label yellow
            xywh {10 10 100 20}
          }
          menuitem {} {
            label blue
            xywh {0 0 100 20}
          }
          menuitem {} {
            label magenta
            xywh {10 10 100 20}
          }
          menuitem {} {
            label cyan
            xywh {20 20 100 20}
          }
        }
        Fl_Button {bh.clearAllRegionsButton} {
          label {clear all}
          xywh {695 175 80 25}
        }
      }
      Fl_Group {} {
        label zoom open
        xywh {690 235 92 115} box ENGRAVED_BOX
      } {
        Fl_Button {bh.zoominButton} {
          label enlarge
          user_data {&bh} user_data_type {bivhist*}
          callback zoominbutton_cb
          xywh {695 245 80 25}
        }
        Fl_Button {bh.zoomoutButton} {
          label shrink
          user_data {&bh} user_data_type {bivhist*}
          callback zoomoutbutton_cb
          xywh {695 280 80 25}
        }
        Fl_Button {bh.resetzoomButton} {
          label reset
          user_data {&bh} user_data_type {bivhist*}
          callback resetbutton_cb
          xywh {695 315 80 25}
        }
      }
      Fl_Group {} {
        label {pen width} open
        xywh {690 465 95 60} box ENGRAVED_BOX
      } {
        Fl_Roller {bh.penRadiusRoller} {
          user_data {&bh} user_data_type {bivhist*}
          callback setpenwidth_cb
          xywh {695 470 85 25} type Horizontal align 1 minimum 1 maximum 40 step 1 value 1
        }
        Fl_Value_Output {bh.penWidthValue} {
          xywh {695 495 85 25} minimum 1 maximum 40 step 1 value 1
        }
      }
      Fl_Group {} {
        label transparency open
        xywh {690 385 95 60} box ENGRAVED_BOX
      } {
        Fl_Roller {bh.transparencyRoller} {
          user_data {&bh} user_data_type {bivhist*}
          callback settransparency_cb
          xywh {695 390 85 25} type Horizontal align 1 step 0.05
        }
        Fl_Value_Output {bh.transparencyValue} {
          xywh {695 415 85 25} step 0.05
        }
      }
      Fl_Box {} {
        xywh {690 0 110 45}
      }
      Fl_Box {} {
        xywh {690 210 90 25}
      }
      Fl_Box {} {
        xywh {690 350 90 35} resizable
      }
    }
    Fl_Group {} {
      xywh {0 5 685 35}
    } {
      Fl_Group {} {open
        xywh {150 5 150 35}
      } {
        Fl_Group {} {
          label {vs.} open
          xywh {150 5 150 35} align 16
        } {
          Fl_Input {bh.Xinput} {
            label {X:}
            xywh {170 10 35 25} type Int
          }
          Fl_Input {bh.Yinput} {
            label {Y:}
            xywh {260 10 35 25} type Int
          }
        }
        Fl_Box {} {
          label {Components:}
          xywh {150 5 150 35} box ENGRAVED_FRAME align 4
        }
      }
      Fl_Output {bh.positionOutput} {
        label {Position:}
        xywh {460 5 225 35} box ENGRAVED_BOX color 49
      }
      Fl_Box {} {
        xywh {0 5 150 35}
      }
      Fl_Box {} {
        xywh {300 5 160 35} resizable
      }
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                # data file for the Fltk User Interface Designer (fluid)
version 1.0011 
header_name {.h} 
code_name {.cxx} 
gridx 3 
gridy 3 
snap 3
Function {profile_panel(profile &s)} {open
} {
  Fl_Window {s.profileWindow} {
    label {Display Profile} open
    xywh {198 253 622 398} type Double box ENGRAVED_BOX labeltype NORMAL_LABEL align 4 resizable
    code0 {\#include "profileBox.hxx"} visible
  } {
    Fl_Group {} {open
      xywh {-3 309 621 79}
    } {
      Fl_Group {} {open
        xywh {306 312 312 74}
      } {
        Fl_Group {} {
          label {RGB Range is:} open
          xywh {306 312 312 30} labelfont 7 align 20
        } {
          Fl_Check_Button {s.absolute} {
            label Absolute
            user_data {&s} user_data_type {profile*}
            callback absolutecheck_cb
            xywh {520 312 98 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 42
          }
          Fl_Check_Button {s.relative} {
            label Relative
            user_data {&s} user_data_type {profile*}
            callback relativecheck_cb
            xywh {435 312 87 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 42
          }
        }
        Fl_Group {} {open
          xywh {308 350 310 36}
        } {
          Fl_Box {} {
            xywh {507 350 99 36} box THIN_DOWN_FRAME
          }
          Fl_Return_Button {s.OKButton} {
            label {Dismiss  }
            user_data {&s} user_data_type {profile*}
            callback okbutton_cb
            xywh {511 353 91 30} hotspot
          }
          Fl_Button {s.saveButton} {
            label Save
            user_data {&s} user_data_type {profile*}
            callback savebutton_cb
            xywh {408 354 91 29}
          }
          Fl_Button {s.printButton} {
            label Print
            user_data {&s} user_data_type {profile*}
            callback printbutton_cb
            xywh {308 354 91 29}
          }
        }
      }
      Fl_Box {} {
        xywh {252 312 54 75} resizable
      }
      Fl_Group {} {open
        xywh {-3 309 255 79}
      } {
        Fl_Output {s.xvalue} {
          label {x:}
          xywh {88 318 68 20}
        }
        Fl_Output {s.yvalue} {
          label {y:}
          xywh {88 340 68 20}
        }
        Fl_Output {s.zvalue} {
          label {z:}
          xywh {88 362 68 20}
        }
        Fl_Output {s.Rvalue} {
          label {R:}
          xywh {181 318 69 20}
        }
        Fl_Output {s.Gvalue} {
          label {G:}
          xywh {181 340 69 18}
        }
        Fl_Output {s.Bvalue} {
          label {B:}
          xywh {181 362 69 20}
        }
      }
    }
    Fl_Group {} {open
      xywh {0 -144 627 454} resizable
    } {
      Fl_Group {} {open
        xywh {0 0 618 30}
      } {
        Fl_Output {s.profileTitle} {
          xywh {120 3 350 24} box EMBOSSED_BOX selection_color 47 align 0 textcolor 36 resizable
        }
        Fl_Check_Button {s.keepline} {
          label {Keep line:}
          user_data {&s} user_data_type {profile*}
          callback keepline_cb
          xywh {582 3 36 27} down_box ROUND_DOWN_BOX labelfont 7 align 4
        }
        Fl_Box {} {
          xywh {0 3 120 24}
        }
      }
      Fl_Box {s.profileBox} {
        user_data {&s} user_data_type {profile*}
        xywh {66 30 537 260} box EMBOSSED_BOX color 93 selection_color 47 resizable
        class myProfileBox
      }
      Fl_Box {s.abcissaBox} {
        label {profile length} selected
        xywh {66 290 537 20} labelsize 10
        class axisBox
      }
      Fl_Box {s.ordinateBox} {
        label {profile  values}
        xywh {0 30 66 260} labelsize 10 align 152
        class axisBox
      }
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                  /* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"32 28 2   2",
"   c gray0",
".  s mask c none",
/* pixels */
". . . . . . . . . . . . . . .   . . . . . . . . . . . . . . . . ",
". . . . . . . .       . . . . . . . . .       . . . . . . . . . ",
". . . . . . .   . . .   . . .   . . .   . . .   . . . . . . . . ",
". . . . . .   . . . . .   . . . . .   . . . . .   . . . . . . . ",
". . . . . .   . . . . .   . .   . .   . . . . .   . . . . . . . ",
". . . . . .   . . . . .   . . . . .   . . . . .   . . . . . . . ",
". . . . . . .   . . .   . . .   . . .   . . .   . . . . . . . . ",
". . . . . . . .   .   . . . . . . . . .   .   . . . . . . . . . ",
". . . . . . . .   .   . . . .   . . . .   .   . . . . . . . . . ",
". . . . .       . . .       . . .       . . .       . . . . . . ",
". . . .   . . . . . . . . .       . . . . . . . . .   . . . . . ",
". . .   . .     . . . .     . . .     . . . . .   . .   . . . . ",
". .   . .   .   . . .   . .       . .   . . .   .   . .   . . . ",
". .   .   . .   . . .   . . .   . . .   . . .   . .   .   . . . ",
". .     . .   . . . . .   . . . . .   . . . . .   . .     . . . ",
". . . . . .   . . . . .   . .   . .   . . . . .   . . . . . . . ",
". . . . .   . . . . . . .   . . .   . . . . . . .   . . . . . . ",
". . . . .   . . . . . . .   .   .   . . . . . . .   . . . . . . ",
". . . .   . . . . . . . . .   .   . . . . . . . . .   . . . . . ",
". . . .         .   .                   .   .         . . . . . ",
". . . . . . .   .   .   . . . . . . .   .   .   . . . . . . . . ",
". . . . . . .   .   .   . . .   . . .   .   .   . . . . . . . . ",
". . . . . . .   .   .   . . . . . . .   .   .   . . . . . . . . ",
". . . . . . .   .   .   . . .   . . .   .   .   . . . . . . . . ",
". . . . . . .   .   .   . . . . . . .   .   .   . . . . . . . . ",
". . . . . . .   .   .   . . .   . . .   .   .   . . . . . . . . ",
". . . . . . .           . . . . . . .           . . . . . . . . ",
". . . . . . . . . . . . . . .   . . . . . . . . . . . . . . . . "
};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  # data file for the Fltk User Interface Designer (fluid)
version 1.0105 
header_name {.H} 
code_name {.C}
Function {printprefs_panel(printprefs &s)} {
  callback chosenmargin_cb open
} {
  Fl_Window {s.prefWindow} {
    label {Print an image} open
    xywh {579 360 415 420} type Double box ENGRAVED_BOX
    code0 {\#include "printPrefs.hxx"} visible
  } {
    Fl_Group {s.printtypeGroup} {
      label {Print to:} open
      xywh {150 10 260 30} labelfont 7 align 4
    } {
      Fl_Check_Button {s.printerCheck} {
        label Printer
        user_data {&s} user_data_type {printprefs*}
        callback printercheck_cb
        xywh {150 10 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 12
      }
      Fl_Check_Button {s.fileCheck} {
        label File
        user_data {&s} user_data_type {printprefs*}
        callback filecheck_cb
        xywh {250 10 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 12
      }
    }
    Fl_Group {s.inputGroup} {open
      xywh {150 40 265 110}
    } {
      Fl_Input {s.commandInput} {
        label {Print command:}
        user_data {&s} user_data_type {printprefs*}
        callback commandInput_cb
        xywh {150 40 260 30} color 43 selection_color 12 labelfont 7 textfont 4 textsize 12
      }
      Fl_Input {s.filenameInput} {
        label {File name:}
        user_data {&s} user_data_type {printprefs*}
        callback filenameInput_cb
        xywh {150 80 190 30} selection_color 12 labelfont 7 labelcolor 31 textfont 4 textsize 12 textcolor 31 deactivate
      }
      Fl_Button {s.browseButton} {
        label {Browse...}
        user_data {&s} user_data_type {printprefs*}
        callback browsebutton_cb
        xywh {340 80 70 30} labelcolor 31 deactivate
      }
      Fl_Input {s.titleInput} {
        label {Page title:}
        user_data {&s} user_data_type {printprefs*}
        callback titleInput_cb
        xywh {150 120 260 30} color 43 selection_color 12 labelfont 7 textfont 4 textsize 12
      }
    }
    Fl_Tabs {} {open
      xywh {0 165 430 200}
    } {
      Fl_Group {} {
        label {main parameters} open
        xywh {0 190 430 175}
      } {
        Fl_Group {s.orientationGroup} {
          label {Orientation:} open
          tooltip {General page orientation} xywh {155 205 200 30} labelfont 7 align 4
        } {
          Fl_Check_Button {s.portraitCheck} {
            label Portrait
            user_data {&s} user_data_type {printprefs*}
            callback portraitcheck_cb
            xywh {155 205 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 12
          }
          Fl_Check_Button {s.landscapeCheck} {
            label Landscape
            user_data {&s} user_data_type {printprefs*}
            callback landscapecheck_cb
            xywh {255 205 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 12
          }
        }
        Fl_Group {s.papersizeGroup} {
          label {Paper size:} open
          xywh {155 235 268 30} labelfont 7 align 4
        } {
          Fl_Choice {s.papersizeChoice} {
            user_data {&s} user_data_type {printprefs*}
            callback papersize_cb open
            tooltip {size of sheet the images will be printed on} xywh {160 235 85 30} down_box BORDER_BOX
          } {
            menuitem {} {
              label Automatic
              xywh {0 0 100 20} deactivate
            }
            menuitem {} {
              label A5
              xywh {0 0 100 20} value 1
            }
            menuitem {} {
              label B5
              xywh {0 0 100 20} value 1
            }
            menuitem {} {
              label A4 selected
              xywh {0 0 100 20} value 1
            }
            menuitem {} {
              label Letter
              xywh {0 0 100 20} value 1
            }
            menuitem {} {
              label Legal
              xywh {0 0 100 20} value 1
            }
            menuitem {} {
              label A3
              xywh {0 0 100 20} value 1
            }
          }
        }
        Fl_Group {s.languageGroup} {
          label {Language:} open
          tooltip {Use PS for printing and EPS for inclusion in other documents} xywh {155 265 200 30} labelfont 7 align 4
        } {
          Fl_Check_Button {s.psCheck} {
            label PS
            user_data {&s} user_data_type {printprefs*}
            callback pscheck_cb
            xywh {155 265 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 12
          }
          Fl_Check_Button {s.epsCheck} {
            label EPS
            user_data {&s} user_data_type {printprefs*}
            callback epscheck_cb
            xywh {255 265 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 12
          }
        }
        Fl_Group {s.fitGroup} {
          label {Fit on page:} open
          tooltip {Print the current image or the whole list, on the one page} xywh {155 294 205 31} labelfont 7 align 4
        } {
          Fl_Check_Button {s.oneImageCheck} {
            label {One image}
            user_data {&s} user_data_type {printprefs*}
            callback oneimagecheck_cb
            xywh {155 295 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 12
          }
          Fl_Check_Button {s.wholeListCheck} {
            label {Whole list}
            user_data {&s} user_data_type {printprefs*}
            callback wholelistcheck_cb
            xywh {255 294 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 12
          }
        }
        Fl_Input {s.nbcopiesInput} {
          label {Nb copies:}
          user_data {&s} user_data_type {printprefs*}
          callback nbcopies_cb
          tooltip {Single or multiple copies} xywh {155 325 40 30} type Int color 43 selection_color 12 labelfont 7 textfont 4 textsize 12
        }
        Fl_Group {s.subsetGroup} {
          label {Image:} open
          tooltip {Prints whole image or only currently displayed subset} xywh {255 325 171 30} labelfont 7 align 4
        } {
          Fl_Check_Button {s.wholeCheck} {
            label Whole
            user_data {&s} user_data_type {printprefs*}
            callback wholecheck_cb
            xywh {256 325 80 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 12
          }
          Fl_Check_Button {s.subsetCheck} {
            label Subset
            user_data {&s} user_data_type {printprefs*}
            callback subsetcheck_cb
            xywh {340 325 70 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 12
          }
        }
      }
      Fl_Group {} {
        label margins open
        xywh {0 190 430 175} hide
      } {
        Fl_Group {} {
          label {custom margins:} open
          xywh {140 250 265 105} box ENGRAVED_FRAME align 4 deactivate
        } {
          Fl_Input {s.leftMarginInput} {
            label {left:}
            xywh {190 260 65 25}
          }
          Fl_Input {s.rightMarginInput} {
            label {right:}
            xywh {320 260 65 25}
          }
          Fl_Input {s.topMarginInput} {
            label {top:}
            xywh {190 290 65 25}
          }
          Fl_Input {s.bottomMarginInput} {
            label {bottom:}
            xywh {320 290 65 25}
          }
          Fl_Input {s.titleMarginInput} {
            label {title:}
            tooltip {Title height} xywh {190 320 65 25}
          }
        }
        Fl_Choice {s.marginDims} {
          label {Margin dimensions:}
          user_data {&s} user_data_type {printprefs*}
          callback marginchoice_cb open
          xywh {140 215 110 25} down_box BORDER_BOX
        } {
          menuitem {s.standardMarginItem} {
            label standard
            user_data 0
            callback chosenmargin_cb
            tooltip {reasonable margins all around} xywh {0 0 100 20}
          }
          menuitem {s.smallMarginItem} {
            label small
            user_data 1
            callback chosenmargin_cb
            tooltip {small margins} xywh {0 0 100 20}
          }
          menuitem {s.largeMarginItem} {
            label large
            user_data 2
            callback chosenmargin_cb
            tooltip {wide margins} xywh {0 0 100 20}
          }
          menuitem {s.zeroMarginItem} {
            label zero
            user_data 3
            callback chosenmargin_cb
            tooltip {no margin (print to the edge)} xywh {0 0 100 20}
          }
          menuitem {s.customMarginItem} {
            label custom
            user_data 4
            callback chosenmargin_cb
            tooltip {define margins below} xywh {0 0 100 20}
          }
        }
        Fl_Choice {} {
          label {Unit:} open
          xywh {300 215 105 25} down_box BORDER_BOX
        } {
          menuitem {} {
            label {point (pt)}
            xywh {0 0 100 20}
          }
          menuitem {} {
            label mm
            xywh {0 0 100 20}
          }
          menuitem {} {
            label cm
            xywh {0 0 100 20}
          }
          menuitem {} {
            label {inches (in)}
            xywh {0 0 100 20}
          }
        }
      }
    }
    Fl_Group {} {open
      xywh {30 375 370 40}
    } {
      Fl_Button {s.CancelButton} {
        label Cancel
        user_data {&s} user_data_type {printprefs*}
        callback cancelbutton_cb
        xywh {30 380 80 30}
        code0 {o->shortcut("^[");}
      }
      Fl_Button {s.PreviewButton} {
        label Preview
        user_data {&s} user_data_type {printprefs*}
        callback previewbutton_cb
        xywh {180 380 80 30}
      }
      Fl_Group {} {open
        xywh {310 375 90 40}
      } {
        Fl_Box {} {
          xywh {310 375 88 40} box THIN_DOWN_FRAME
        }
        Fl_Return_Button {s.OKButton} {
          label Print
          user_data {&s} user_data_type {printprefs*}
          callback okbutton_cb
          xywh {314 380 80 30} hotspot
        }
      }
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          /* XPM */
static char *pencil[] = {
/* columns rows colors chars-per-pixel */
"22 22 15 1",
"  c opaque",
". c gray19",
"X c #400000",
"o c #800000",
"O c #c00000",
"+ c #cc0000",
"@ c red",
"# c #808080",
"$ c #aaaaaa",
"% c #ff8080",
"& c #c8c8c8",
"* c gainsboro",
"= c #ffc0c0",
"- c white",
"; c None",
/* pixels */
";;;;;;;;;;;;;;;;;;o@%O",
";;;;;;;;;;;;;;;;;oO=OO",
";;;;;;;;;;;;;;;;oO=OOO",
";;;;;;;;;;;;;;;oO=OOOo",
";;;;;;;;;;;;;;oO=OOOoo",
";;;;;;;;;;;;;oO=OOOoo ",
";;;;;;;;;;;;oO=OOOoo ;",
";;;;;;;;;;;oO=OOOoo ;;",
";;;;;;;;;;oO=OOOoo ;;;",
";;;;;;;;;oO=OOOoo ;;;;",
";;;;;;;;oO=OOOoo ;;;;;",
";;;;;;;oO=OOOoo ;;;;;;",
";;;;;;oO=OOOoo ;;;;;;;",
";;;;;oO=OOOoo ;;;;;;;;",
";;;;;-&OOOoo ;;;;;;;;;",
";;;;*-*&Ooo ;;;;;;;;;;",
";;;;-*&&#o ;;;;;;;;;;;",
";;;-*&$#. ;;;;;;;;;;;;",
";;;O&$. ;;;;;;;;;;;;;;",
";;OoX ;;;;;;;;;;;;;;;;",
";;oX;;;;;;;;;;;;;;;;;;",
";;;;;;;;;;;;;;;;;;;;;;"
};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 # data file for the Fltk User Interface Designer (fluid)
version 1.0104 
header_name {.H} 
code_name {.C}
Function {imageinfo_panel(imageinfo &s)} {open
} {
  Fl_Window {s.outputWindow} {
    label {Image information} open selected
    xywh {600 461 450 240} type Single box ENGRAVED_BOX resizable
    code0 {\#include "imageInfo.hxx"} visible
  } {
    Fl_Box {} {
      xywh {10 20 432 170} box ENGRAVED_FRAME
    }
    Fl_Box {} {
      label {Image Information}
      xywh {157 10 120 20} box FLAT_BOX
    }
    Fl_Output {s.textOutput} {
      xywh {15 30 422 155} type Multiline box FLAT_BOX selection_color 47 textsize 12 resizable
    }
    Fl_Group {} {open
      xywh {330 190 114 50}
    } {
      Fl_Box {} {
        xywh {340 197 102 36} box THIN_DOWN_FRAME
      }
      Fl_Return_Button {s.OKButton} {
        label {Dismiss  }
        user_data {&s} user_data_type {imageinfo*}
        callback okbutton_cb
        xywh {344 200 94 30} hotspot
      }
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           # data file for the Fltk User Interface Designer (fluid)
version 1.0104 
header_name {.H} 
code_name {.C}
Function {savespect_panel(savespect &svsp)} {open
} {
  Fl_Window {svsp.saveWindow} {
    label {Save one-dimensional data} open selected
    xywh {20 710 440 150} type Single box ENGRAVED_BOX
    code0 {\#include "saveSpect.hxx"} modal visible
  } {
    Fl_Group {svsp.inputGroup} {open
      xywh {130 20 300 30} selection_color 43 align 129
    } {
      Fl_Input {svsp.filenameInput} {
        label {Filename:}
        user_data {&svsp} user_data_type {savespect*}
        callback filenameinput_cb
        xywh {130 20 230 30} color 43 selection_color 43 labelfont 7 textfont 4 textsize 12
      }
      Fl_Button {svsp.browseButton} {
        label {Browse...}
        user_data {&svsp} user_data_type {savespect*}
        callback browsebutton_cb
        xywh {360 20 70 30}
      }
    }
    Fl_Group {} {open
      xywh {130 64 301 26}
    } {
      Fl_Choice {svsp.formatChoice} {
        label {Format:}
        user_data {&svsp} user_data_type {savespect*}
        callback formatchoice_cb open
        xywh {130 64 90 26} down_box BORDER_BOX labelfont 7 align 132 textfont 4 textsize 12
      } {
        menuitem tiffmenuitem {
          label TIFF
          user_data 0
          callback chosenSpectFormat_cb
          xywh {10 10 100 20} labelfont 4 labelsize 12
        }
        menuitem zimagemenuitem {
          label {Z-IMAGE}
          user_data 1
          callback chosenSpectFormat_cb
          xywh {0 0 100 20} labelfont 4 labelsize 12
        }
        menuitem euromenuitem {
          label Euro
          user_data 2
          callback chosenSpectFormat_cb
          xywh {0 0 100 20} labelfont 4 labelsize 12
        }
      }
    }
    Fl_Button {svsp.CancelButton} {
      label Cancel
      user_data {&svsp} user_data_type {savespect*}
      callback cancelbutton_cb
      xywh {30 107 80 30}
      code0 {o->shortcut("^[");}
    }
    Fl_Group {} {open
      xywh {324 104 110 46}
    } {
      Fl_Box {} {
        xywh {344 104 88 36} box THIN_DOWN_FRAME
      }
      Fl_Return_Button {svsp.OKButton} {
        label Save
        user_data {&svsp} user_data_type {savespect*}
        callback okbutton_cb
        xywh {348 107 80 30} hotspot
      }
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         # data file for the Fltk User Interface Designer (fluid)
version 1.0105 
header_name {.h} 
code_name {.cxx}
Function {toolbar_panel(toolbar &tb)} {open
} {
  Fl_Window {tb.toolbarWindow} {
    label Toolbar open
    xywh {1856 80 540 60} type Single box ENGRAVED_BOX
    code0 {\#include "toolbar.hxx"} visible
  } {
    Fl_Group {} {open
      xywh {5 5 270 50} box ENGRAVED_FRAME align 16
    } {
      Fl_Button {} {
        user_data {&tb} user_data_type {toolbar*}
        callback setzoommode_cb
        tooltip {Zoom mode, <Shift> toggles constrained/unconstrained zoom} image {zoom_s.xpm} xywh {10 10 40 40} type Radio value 1 selection_color 42 labelsize 10
        class tipButton
      }
      Fl_Button {} {
        user_data {&tb} user_data_type {toolbar*}
        callback setmeasuremode_cb
        tooltip {Measurement mode, shortcut = <Control>} image {measure.xpm} xywh {55 10 40 40} type Radio selection_color 41 labelsize 10
        class tipButton
      }
      Fl_Choice {} {
        user_data {&tb} user_data_type {toolbar*}
        callback setpointmode_cb open selected
        tooltip {Point modes} image {pencil.xpm} xywh {140 10 130 40} down_box BORDER_BOX when 6
      } {
        menuitem {} {
          label {Add points}
          tooltip {Add point} xywh {0 0 100 20}
        }
        menuitem {} {
          label {Select points}
          tooltip {Select points} xywh {10 10 100 20}
        }
        menuitem {} {
          label {Draw points}
          tooltip {Draw points} xywh {20 20 100 20}
        }
        menuitem {} {
          label {Rm points}
          tooltip {Remove a single point} xywh {10 10 100 20}
        }
        menuitem {} {
          label {Remove group}
          tooltip {Remove a whole groups} xywh {20 20 100 20}
        }
      }
    }
    Fl_Group {} {open
      xywh {280 5 175 50} box ENGRAVED_FRAME align 16
    } {
      Fl_Button {} {
        callback local_rotate90right_cb
        tooltip {Rotate 90 degree clockwise} image {rotate+90.xpm} xywh {285 10 40 40} labelsize 10
        class tipButton
      }
      Fl_Button {} {
        callback local_rotate90left_cb
        tooltip {Rotate 90 degree counter-clockwise} image {rotate-90.xpm} xywh {325 10 45 40} labelsize 10
        class tipButton
      }
      Fl_Button {} {
        callback local_flipv_cb
        tooltip {Flip image horizontally} image {flipv.xpm} xywh {370 10 40 40} labelsize 10
        class tipButton
      }
      Fl_Button {} {
        callback local_fliph_cb
        tooltip {Flip image vertically} image {fliph.xpm} xywh {410 10 40 40} labelsize 10
        class tipButton
      }
    }
    Fl_Group {} {open
      xywh {460 5 55 50} box ENGRAVED_FRAME align 16
    } {
      Fl_Button {} {
        user_data {&tb} user_data_type {toolbar*}
        callback hidetoolbar_cb
        tooltip {Hide in shadow} image {hidetoolbar.xpm} xywh {465 10 45 40} labelsize 10
        class tipButton
      }
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               # data file for the Fltk User Interface Designer (fluid)
version 1.00 
header_name {.H} 
code_name {.C} 
gridx 1 
gridy 1 
snap 2
Function {rawimage_panel(rawimage &ri)} {open
} {
  Fl_Window {ri.rawimageWindow} {
    label {Unknown image format} open selected
    xywh {29 761 550 284} type Single
    code0 {\#include "rawImage.hxx"} non_modal visible
  } {
    Fl_Group {} {
      label Dimensions open
      xywh {12 105 258 51} box ENGRAVED_FRAME
    } {
      Fl_Input {ri.xInput} {
        label {X:}
        user_data {&ri} user_data_type {rawimage*}
        callback xinput_cb
        xywh {40 117 60 30} type Int
        class Fl_Int_Input
      }
      Fl_Input {ri.yInput} {
        label {Y:}
        user_data {&ri} user_data_type {rawimage*}
        callback yinput_cb
        xywh {120 117 60 30} type Int
        class Fl_Int_Input
      }
      Fl_Input {ri.zInput} {
        label {Z:}
        user_data {&ri} user_data_type {rawimage*}
        callback zinput_cb
        xywh {200 117 60 30} type Int
        class Fl_Int_Input
      }
    }
    Fl_Group {} {
      label Bands open
      xywh {11 179 259 49} box ENGRAVED_FRAME
    } {
      Fl_Input {ri.nbBandsInput} {
        label {Nb:}
        user_data {&ri} user_data_type {rawimage*}
        callback nbband_cb
        xywh {40 190 60 28} type Int
        class Fl_Int_Input
      }
      Fl_Choice {ri.bandTypeChoice} {
        user_data {&ri} user_data_type {rawimage*}
        callback interleave_cb open
        xywh {121 189 62 28}
      } {
        menuitem {} {
          label BIL
          xywh {0 0 100 20}
        }
        menuitem {} {
          label BIP
          xywh {0 0 100 20}
        }
        menuitem {} {
          label BSQ
          xywh {0 0 100 20}
        }
      }
      Fl_Button {ri.assignButton} {
        label Assign
        xywh {200 189 59 28}
      }
    }
    Fl_Group {} {
      label Pixel open
      xywh {280 105 259 51} box ENGRAVED_FRAME
    } {
      Fl_Choice {ri.pixelTypeChoice} {
        label {Type:}
        user_data {&ri} user_data_type {rawimage*}
        callback pixeltype_cb open
        xywh {324 116 79 29}
      } {
        menuitem {} {
          label Uchar
          xywh {0 0 100 20}
        }
        menuitem {} {
          label Short
          xywh {0 0 100 20}
        }
        menuitem {} {
          label UShort
          xywh {0 0 100 20}
        }
        menuitem {} {
          label Int
          xywh {0 0 100 20}
        }
        menuitem {} {
          label UInt
          xywh {0 0 100 20}
        }
        menuitem {} {
          label Long
          xywh {0 0 100 20}
        }
        menuitem {} {
          label ULong
          xywh {0 0 100 20}
        }
        menuitem {} {
          label Float
          xywh {0 0 100 20}
        }
        menuitem {} {
          label Double
          xywh {0 0 100 20}
        }
      }
      Fl_Choice {ri.byteOrderChoice} {
        label {Order:}
        user_data {&ri} user_data_type {rawimage*}
        callback byteorder_cb open
        xywh {453 116 78 29}
      } {
        menuitem {} {
          label Default
          xywh {0 0 100 20}
        }
        menuitem {} {
          label MSB
          xywh {0 0 100 20}
        }
        menuitem {} {
          label LSB
          xywh {0 0 100 20}
        }
        menuitem {} {
          label Guess
          xywh {0 0 100 20}
        }
      }
    }
    Fl_Group {} {
      label {File and header} open
      xywh {281 179 258 49} box ENGRAVED_FRAME
    } {
      Fl_Input {ri.headerSizeInput} {
        label {Skip:}
        user_data {&ri} user_data_type {rawimage*}
        callback headersize_cb
        xywh {453 190 79 30} type Int align 132
        class Fl_Int_Input
      }
      Fl_Output {ri.filesizeOutput} {
        label {Size:}
        xywh {325 190 92 30}
      }
    }
    Fl_Button {ri.cancelButton} {
      label Cancel
      user_data {&ri} user_data_type {rawimage*}
      callback cancelbutton_cb
      xywh {381 241 75 30}
    }
    Fl_Button {ri.OKButton} {
      label Try
      user_data {&ri} user_data_type {rawimage*}
      callback okbutton_cb
      xywh {464 241 75 30}
    }
    Fl_Button {ri.helpButton} {
      label Help
      user_data {&ri} user_data_type {rawimage*}
      callback helpbutton_cb
      xywh {282 241 75 30}
    }
    Fl_Button {ri.computeHeaderButton} {
      label {Compute header}
      user_data {&ri} user_data_type {rawimage*}
      callback computeskip_cb
      xywh {11 242 119 30}
    }
    Fl_Output {ri.bannerOutput} {
      xywh {13 37 525 43} type Multiline box ENGRAVED_BOX color 93 selection_color 47 textfont 3
      code0 {o->value("Sample text\\nSample text");}
    }
    Fl_Box {ri.titleBox} {
      label {File format not recognized}
      xywh {18 5 516 28} labelfont 1 labelsize 16 labelcolor 1
    }
  }
} 

Function {make_window()} {open
} {} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /* XPM */
static char * zoom_s_xpm[] = {
"33 31 2 1",
" 	s mask c none",
".	c #000000000000",
"                                 ",
"                                 ",
"                                 ",
"   ............                  ",
"   . .       .  . .              ",
"   .   .     .       .           ",
"   .     .   .          .        ",
"   .      ...................    ",
"   .      .  .              .    ",
"   .      .  .              .    ",
"   .      .  .              .    ",
"   ...........              .    ",
"          .                 .    ",
"    .     .    .            .    ",
"     .    .      .          .    ",
"          .        .        .    ",
"      .   .                 .    ",
"       .  .          .      .    ",
"          .            .    .    ",
"        . .              .  .    ",
"         ..                 .    ",
"          ...................    ",
"  .......                        ",
"       ..                        ",
"      ..  ....   ....   ...  ... ",
"     ..  ..  .. ..  .. ..  ..  ..",
"    ..   .    . .    . ..  ..  ..",
"   ..    .    . .    . ..  ..  ..",
"  ..     ..  .. ..  .. ..  ..  ..",
"  ....... ....   ....  ..  ..  ..",
"                                 "};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"32 28 2   2",
"   c gray0",
".  s mask c none",
/* pixels */
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . .   . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . .   . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . .   .   . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . .   .   . . . . . . . . . .   . . . . . . . ",
". . . . . . . . . .   . . .   . . . . . . . .   . . . . . . . . ",
". . . . . . . . . .   . . .   . . . . . . .         . . . . . . ",
". . . . . . . . .   . . . . .   . . . . . . .   . .     . . . . ",
". . . . . . . . .   . . . . .   . . . . . . . .   . . .   . . . ",
". . . . . . . .   . . . . . . .   . . . . . . . . . . .   . . . ",
". . . . . . . .                   . . . . . . . . . . . .   . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . .   . . ",
". .   .   .   .   .   .   .   .   .   .   .   . . . . . .   . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . .   . . ",
". . . . . . . .                   . . . . . . . . . . . .   . . ",
". . . . . . . .   . . . . . . .   . . . . . . . . . . .   . . . ",
". . . . . . . . .   . . . . .   . . . . . . . .   . . .   . . . ",
". . . . . . . . .   . . . . .   . . . . . . .   . .     . . . . ",
". . . . . . . . . .   . . .   . . . . . . .         . . . . . . ",
". . . . . . . . . .   . . .   . . . . . . . .   . . . . . . . . ",
". . . . . . . . . . .   .   . . . . . . . . . .   . . . . . . . ",
". . . . . . . . . . .   .   . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . .   . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . .   . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "
};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  /* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"32 28 2  1",
"  c gray0",
"# s mask c none", 
/* pixels */
"################################",
"################################",
"####     ## # # # # #         ##",
"###  ###  ########### ####### ##",
"### #####  ########## #   ### ##",
"##  ######  ######### ####### ##",
"## ######## ######### #    ## ##",
"##  ####### ######### ####### ##",
"###  #####  ######### #  #### ##",
"####  ###  ########## ####### ##",
"#####     ########### #     # ##",
"########### ######### ####### ##",
"############# ####### #     # ##",
"############### ##### ####### ##",
"################# ### ####### ##",
"################### #         ##",
"################################",
"################################",
"######     ##### ###############",
"###### ######### ### ### #######",
"###### ######### ####### #######",
"###### ######  # ##  ##   ######",
"######    ## ##  ### ### #######",
"###### ##### ### ### ### #######",
"###### ##### ### ### ### #######",
"###### ##### ##  ### ### # #####",
"######     ##  # ##   ### ######",
"################################"
};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    # data file for the Fltk User Interface Designer (fluid)
version 1.0104 
header_name {.H} 
code_name {.C}
Function {saveprefs_panel(saveprefs &svpr)} {open
} {
  Fl_Window {svpr.saveWindow} {
    label {Save an image} open selected
    xywh {793 662 450 210} type Double box ENGRAVED_BOX
    code0 {\#include "savePrefs.hxx"} modal visible
  } {
    Fl_Box {} {
      xywh {0 100 450 60} box ENGRAVED_BOX
    }
    Fl_Group {svpr.inputGroup} {open
      xywh {130 20 300 30} selection_color 43
    } {
      Fl_Input {svpr.filenameInput} {
        label {File name:}
        user_data {&svpr} user_data_type {saveprefs*}
        callback filenameinput_cb
        xywh {130 20 230 30} color 43 selection_color 84 labelfont 7 textfont 4 textsize 12
      }
      Fl_Button {svpr.browseButton} {
        label {Browse...}
        user_data {&svpr} user_data_type {saveprefs*}
        callback browsebutton_cb
        xywh {360 20 70 30}
      }
    }
    Fl_Group {} {open
      xywh {130 64 301 26}
    } {
      Fl_Choice {svpr.formatChoice} {
        label {Format:}
        user_data {&svpr} user_data_type {saveprefs*}
        callback formatchoice_cb open
        xywh {130 64 90 26} down_box BORDER_BOX labelfont 7 textfont 4 textsize 12
      } {
        menuitem {svpr.tiffmenuitem} {
          label TIFF
          user_data 0
          callback chosenformat_cb
          xywh {0 0 100 20} labelfont 4 labelsize 12
        }
        menuitem zimagemenuitem {
          label {Z-IMAGE}
          user_data 1
          callback chosenformat_cb
          xywh {0 0 100 20} labelfont 4 labelsize 12
        }
        menuitem euromenuitem {
          label Euro
          user_data 2
          callback chosenformat_cb
          xywh {10 10 100 20} labelfont 4 labelsize 12 hide deactivate
        }
        menuitem {svpr.pngmenuitem} {
          label PNG
          user_data 3
          callback chosenformat_cb
          xywh {10 10 100 20} value 1 labelfont 4 labelsize 12
        }
        menuitem {svpr.jpgmenuitem} {
          label JPEG
          user_data 4
          callback chosenformat_cb
          xywh {20 20 100 20} value 1 labelfont 4 labelsize 12
        }
      }
      Fl_Choice {svpr.compressionChoice} {
        label {Compression:}
        user_data {&svpr} user_data_type {saveprefs*}
        callback compressionchoice_cb open
        xywh {340 64 91 26} down_box BORDER_BOX labelfont 7 labelcolor 40 textfont 4 textsize 12 textcolor 40
      } {
        menuitem {} {
          label None
          xywh {0 0 100 20}
        }
      }
    }
    Fl_Group {svpr.subsetGroup} {
      label {Save image:} open
      xywh {130 100 200 30} labelfont 7 align 4
    } {
      Fl_Check_Button {svpr.wholeCheck} {
        label Whole
        user_data {&svpr} user_data_type {saveprefs*}
        callback wholecheck_cb
        xywh {130 100 80 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 84
      }
      Fl_Check_Button {svpr.subsetCheck} {
        label Subset
        user_data {&svpr} user_data_type {saveprefs*}
        callback subsetcheck_cb
        xywh {250 100 70 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 84
      }
    }
    Fl_Group svprwhatGroup {
      label {Save what:} open
      xywh {130 130 220 30} labelfont 7 align 4
    } {
      Fl_Check_Button {svpr.visibleCheck} {
        label {Visible image}
        user_data {&svpr} user_data_type {saveprefs*}
        callback visiblecheck_cb
        xywh {130 130 80 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 84
      }
      Fl_Check_Button {svpr.underlyingCheck} {
        label {Raw data}
        user_data {&svpr} user_data_type {saveprefs*}
        callback underlyingcheck_cb
        xywh {250 130 100 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 83
      }
    }
    Fl_Button {svpr.CancelButton} {
      label Cancel
      user_data {&svpr} user_data_type {saveprefs*}
      callback cancelbutton_cb
      xywh {30 170 80 30}
      code0 {o->shortcut("^[");}
    }
    Fl_Group {} {open
      xywh {324 160 110 50}
    } {
      Fl_Box {} {
        xywh {344 167 88 36} box THIN_DOWN_FRAME
      }
      Fl_Return_Button {svpr.OKButton} {
        label Save
        user_data {&svpr} user_data_type {saveprefs*}
        callback okbutton_cb
        xywh {348 170 80 30} hotspot
      }
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  dnl Process this file with autoconf to produce a configure script.
AC_INIT(printprefs.C)

dnl Checks for programs.
AC_PROG_CC

dnl Checks for libraries.

dnl Checks for header files.

dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_STRUCT_TM

dnl Checks for library functions.
AC_HEADER_STDC

AC_OUTPUT(Makefile)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /* XPM */
static char *hidetoolbar[] = {
/* width height num_colors chars_per_pixel */
"    32    32      250            2",
/* colors */
".. c #0c0204",
".# c #7c8664",
".a c #394219",
".b c #784618",
".c c #471d09",
".d c #bcc29c",
".e c #6c6430",
".f c #0c2224",
".g c #5c441e",
".h c #b48254",
".i c #2f2406",
".j c #786218",
".k c #2f3313",
".l c #9ca078",
".m c #662d20",
".n c #9c6634",
".o c #99835e",
".p c #4c310c",
".q c #4c5430",
".r c #76644f",
".s c #2c352f",
".t c #ece2a4",
".u c #46432a",
".v c #544440",
".w c #472e2f",
".x c #240f04",
".y c #a0936f",
".z c #b7a571",
".A c #67441c",
".B c #2c222c",
".C c #7c724f",
".D c #64724c",
".E c #333c31",
".F c #443b35",
".G c #785220",
".H c #d4a268",
".I c #4c6254",
".J c #ecf6cc",
".K c #111407",
".L c #33433c",
".M c #e7c389",
".N c #575551",
".O c #aa8858",
".P c #322d16",
".Q c #8e6436",
".R c #323c1f",
".S c #173527",
".T c #8f7450",
".U c #acb19f",
".V c #484544",
".W c #745440",
".X c #9c9280",
".Y c #6a4b1e",
".Z c #374c3a",
".0 c #9ea08c",
".1 c #281906",
".2 c #3c3d2f",
".3 c #66645a",
".4 c #8c966c",
".5 c #503a10",
".6 c #1f2508",
".7 c #c4b27c",
".8 c #8e5d26",
".9 c #798476",
"#. c #b49450",
"## c #3c3511",
"#a c #988270",
"#b c #593c38",
"#c c #391909",
"#d c #242420",
"#e c #46280a",
"#f c #5a4b20",
"#g c #643a08",
"#h c #77756f",
"#i c #0e1b0a",
"#j c #e4d294",
"#k c #3c2514",
"#l c #78643e",
"#m c #6a5429",
"#n c #3c3535",
"#o c #484a38",
"#p c #543431",
"#q c #f4f2dc",
"#r c #a2a794",
"#s c #878471",
"#t c #cc9654",
"#u c #9e7940",
"#v c #583414",
"#w c #906e4c",
"#x c #644440",
"#y c #745b2f",
"#z c #666c60",
"#A c #160504",
"#B c #49544f",
"#C c #c4a478",
"#D c #664530",
"#E c #302d27",
"#F c #313c3e",
"#G c #473e49",
"#H c #d9b577",
"#I c #3c453b",
"#J c #695354",
"#K c #e4d2c4",
"#L c #84643d",
"#M c #695c36",
"#N c #d4deac",
"#O c #2f2417",
"#P c #483120",
"#Q c #3c2b0b",
"#R c #936f40",
"#S c #291e07",
"#T c #b6946a",
"#U c #562824",
"#V c #303420",
"#W c #7a6b56",
"#X c #483634",
"#Y c #fbfbc3",
"#Z c #a88464",
"#0 c #4b4c49",
"#1 c #694c2f",
"#2 c #3b4b49",
"#3 c #616b44",
"#4 c #742d1f",
"#5 c #343431",
"#6 c #797d5c",
"#7 c #4c3d34",
"#8 c #dcc294",
"#9 c #8c5e5c",
"a. c #7c3927",
"a# c #f4d8b4",
"aa c #81453c",
"ab c #c0b29c",
"ac c #d7b98f",
"ad c #e6e3cc",
"ae c #f4d29c",
"af c #a9977c",
"ag c #b07848",
"ah c #6c7e64",
"ai c #8c7a74",
"aj c #d4c2ac",
"ak c #d4aa6c",
"al c #1c3e2c",
"am c #b48e64",
"an c #5a6b5e",
"ao c #787e70",
"ap c #fcecaf",
"aq c #c7ad77",
"ar c #c4bea4",
"as c #683828",
"at c #745e3c",
"au c #6c7567",
"av c #845214",
"aw c #846e51",
"ax c #6c4b3f",
"ay c #645e44",
"az c #ecdeb4",
"aA c #eceebc",
"aB c #b7a989",
"aC c #e4ba84",
"aD c #a16f3f",
"aE c #5a4c42",
"aF c #595b53",
"aG c #917d5c",
"aH c #202c08",
"aI c #998c71",
"aJ c #202b23",
"aK c #ecdea1",
"aL c #fcfdd9",
"aM c #b79c6f",
"aN c #a48b6c",
"aO c #ececc4",
"aP c #dcceb4",
"aQ c #8c8258",
"aR c #ac9f74",
"aS c #847654",
"aT c #fcf4bf",
"aU c #243524",
"aV c #aca18c",
"aW c #5c3a14",
"aX c #1c1b0a",
"aY c #aca68e",
"aZ c #5c5e34",
"a0 c #170c05",
"a1 c #f8dc98",
"a2 c #84622c",
"a3 c #340e04",
"a4 c #cc9e70",
"a5 c #d4d8c8",
"a6 c #0b0d04",
"a7 c #696549",
"a8 c #607368",
"a9 c #3c3d1c",
"b. c #482820",
"b# c #695636",
"ba c #845c2c",
"bb c #3c2c2f",
"bc c #ccb694",
"bd c #e4ae7c",
"be c #847d77",
"bf c #c4ae8c",
"bg c #a49a68",
"bh c #8f6a3f",
"bi c #999a81",
"bj c #341e0d",
"bk c #a07e50",
"bl c #c48e54",
"bm c #84664c",
"bn c #3c2428",
"bo c #1c1404",
"bp c #8c9a8c",
"bq c #6c6e44",
"br c #fceac4",
"bs c #846a6c",
"bt c #ac9a6c",
"bu c #744e1c",
"bv c #44220c",
"bw c #6c322c",
"bx c #948a64",
"by c #49360f",
"bz c #bcaa74",
"bA c #5c625c",
"bB c #e4ca7c",
"bC c #7c8a84",
"bD c #7c6a44",
"bE c #485a4c",
"bF c #d4be94",
"bG c #ac7e54",
"bH c #745e5c",
"bI c #3a432b",
"bJ c #56442e",
"bK c #454439",
"bL c #49313f",
"bM c #79745e",
"bN c #775531",
"bO c #2c1a1c",
"bP c #523b20",
"bQ c #594c31",
"bR c #6c6c70",
"bS c #888c80",
"bT c #644c50",
"bU c #47361f",
"bV c #c4ba8c",
"bW c #846a34",
"bX c #74322c",
"bY c #dccaa0",
"bZ c #fcdeb4",
"b0 c #4c523f",
"b1 c #9c9694",
"b2 c #3c3d40",
"b3 c #3c351f",
/* pixels */
"af#X.2.2#0.saJb0#o.R.k.Ra9.k###o.u#V#V.E.P.sbI.R.E.Z.R#oa8.F#O#p",
"#Qbo#5#BaJ.PbI.q.kaH.k#i#Q.i#A##.P.Pa6.P.E.KbIbI.P.q.a.#bS#Fa0#b",
"bJ.F#d.E#E.s.u.ia0##.e#MbtbtbtaRaG#s.X#r.Ua5.0a5ad.daObian.L#E#J",
"b3#0#IaJ#0.FaE#Q#e#l#Zbx.zaMbD.r#KadaVbeb1be#s.0#qaLaz.0a8#F#d#7",
"#O.V#B.saFaX.1#c.g#TacbZbraT.o#Majab.N.V#haF.V#zadaLaL.la8.Lb2.F",
"#X#G#F.L#oaX##.eaRazaK#Yapapbz.obxbM#7#0#5aE.6.kbiaO#Y#3#z#2aF#P",
"#b#n#F.E.Z.k#f.ebg#j.t#Y#Yap.zbtaRbM.P.R.2.s.Z.P#3aLaA.l.9#F#Gbn",
".w#5#0.La6##.e#..Map#Y#YaTa1btaQ.lay#I.3#o#I.kaU.k.J#N.4au#5#X#p",
"bL#5#FaFa6###laMaeapaTapapaq.7btbiay#zan.L#z#IbI.6#YaA#6#h#Ebb#x",
"bL#G#G#IaXbPaW.oaMaCa1bBbdakbW.TbxbC.9#F.L#FaH.k#Saz#YaBbI#F#5#b",
"bL#G#naXbo.PbxaG#TbW.j.j.8#g.AbN#r.0.Z.EaUbI.2bQ.1azaTaw.R.s.B#J",
"bn.B#I#VaX.k.xbj.i.5#f#m.Abu.Y#mbFara7#o.kaVbYbY#mbFbYbxau.s#Ibs",
"bT.V#5#ia6b3.1bj#Q.x##.1#e#m#laSaBayb#.oaL#8#C.o.1.obV.y.EaJ.NbH",
"bbb2aJbI.UbM#V#A...1#Abo#Q.1.Pbyabbra#aqa2bu.Obh#Law.C#raobC#B#X",
"bT.3aJ#i.lao.K#S#7#KaPaV.1bobUa7aG#m.Y.c.ca3.Q.Y.g#Qa9aQ.9an#d.w",
".w#0bIal.D#6#oa0a0bj#Wa0.1bQ#M#W#1.p.T.Q#c.G#u#y.o#Q#O.0.9#2.3ai",
"#k#nbIaH#3.abQ.P#Aa3.v#1aGataIaNbx.C.i.p.oaMat#maI.6.PbpbpaJ#Bbb",
"#b.F.RaH.abqa7#QbP#1#l#C#T.O.Obfafbob3.Pboaybx#s#W.K#0.U.9.sb2bb",
"#b#7#VaH.aaZaIb#.T.T.O.M.HaC.Obcbx#s#dbI.K#EbR.u#dbo#d#rbp.L#Ibb",
"#b.V#IaH.6a9bg.Y.T#CaC.Ma1avbha#bM#z#B#2.L.f#I#i#S#o#Ebibp.L#5bO",
"#p#7bK.RaH.6#M#kbNam#H.H#t.n.bataVbR#2.f#F#F.s#5#db3.FaIa8#B#z.v",
".w#E.EaU.ZaX.iby.A.A#Ragavba#Raf.XaF#2#F#2.sa6.F.vbPbP.3#z#BbAaE",
"bL#5.L.LbI.k.1#P#Dbv#g.G.G.8atbJ#sbS#IaJ#5.B.FaEbJbPbP#aaF#B.s.F",
".v#F.Z.LalbI#E.x#1.A.b.Aa2atbJ#P#6#5bob0#XbobPbP#D#1#vaw#oan#IaE",
"#7.L#2.San.Z#5#Absbm.Ga2.oac.o#sbM#5bK.2.ibj.g.A.YaW.A#WaFau#E.v",
".VaJal.Sal.ZaUa6#lbm#u#.#u#ebQ##an#B#i#I.1.i.A#m.A.Y#laGbebR#n#p",
"#XaX.L.IbE.S.E.2#Oaw#H#..8.b.5#Sa7.E#0a9.1by.Aba#Ra2#yaSaobRb2bn",
"bLbbb2bA#F#5b2#X#A#b#Za4bl.h#R#1.r#W#Oa0a3.Q.n.b.8aDbh.oana8#0bQ",
"#p#JbL#0#5aF#n#5bO#c.p#Tbd.ha4#ZaIbO#k.WaDbGagaDaDbaa2aRah.Zal#V",
"bb#0.saU.Z.ZaU.s.EaJ.6#f#y#Rbf#a.raV.Caf.ybkbk#.aMaN.yaY.9#V.2#S",
"#P.1#o#obI#I#o#F#0.2#Vbybv.p#eb##a.r#a#1.W.Q#wbh#waNaVaIbJ#k#P#U",
"#U#cax.WbvbJ#x#PbJ#Ub.aW.ma..mbw#UaaaabX#4#4#4a.as.c#U#9.maa.mbX"
};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       # data file for the Fltk User Interface Designer (fluid)
version 1.0103 
header_name {.h} 
code_name {.cxx}
Function {spectra_panel(spectra &s)} {open
} {
  Fl_Window {s.spectraWindow} {
    label {Display spectra} open
    xywh {1724 497 570 395} type Double box ENGRAVED_BOX align 4 resizable
    code0 {\#include "spectraBox.hxx"} visible
  } {
    Fl_Group {} {open
      xywh {0 0 560 310} resizable
    } {
      Fl_Output {s.spectrumTitle} {selected
        tooltip {Coordinates of image point} xywh {130 6 290 21} box EMBOSSED_BOX selection_color 47
      }
      Fl_Box {s.spectraBox} {
        user_data {&s} user_data_type {spectra*}
        tooltip {Spectrum at selected image point} xywh {48 30 512 260} box EMBOSSED_BOX color 204 selection_color 47 resizable
        class mySpectraBox
      }
      Fl_Box {s.abcissaBox} {
        xywh {48 290 512 20}
        class axisBox
      }
      Fl_Box {s.ordinateBox} {
        xywh {0 30 48 260}
        class axisBox
      }
    }
    Fl_Group {} {open
      xywh {0 310 556 30}
    } {
      Fl_Box {} {
        xywh {270 310 50 30} resizable
      }
      Fl_Group {} {open
        xywh {0 312 272 28}
      } {
        Fl_Output {s.xvalue} {
          label {component:}
          tooltip {Component/depth index} xywh {126 312 49 28}
        }
        Fl_Output {s.yvalue} {
          label {value:}
          tooltip {component value} xywh {222 312 50 28}
        }
      }
      Fl_Group {} {
        label {Display is:} open
        xywh {390 310 166 30} align 4
      } {
        Fl_Check_Button {s.absolute} {
          label Absolute
          user_data {&s} user_data_type {spectra*}
          callback absolutecheck_cb
          tooltip {Display fixed range (0-255)} xywh {472 310 84 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 42
        }
        Fl_Check_Button {s.relative} {
          label Relative
          user_data {&s} user_data_type {spectra*}
          callback relativecheck_cb
          tooltip {Fit to display range} xywh {390 310 84 30} type Radio down_box DIAMOND_DOWN_BOX selection_color 42
        }
      }
    }
    Fl_Group {} {open
      xywh {0 340 560 40}
    } {
      Fl_Group {} {open
        xywh {260 340 300 40}
      } {
        Fl_Box {} {
          xywh {459 344 99 36} box THIN_DOWN_FRAME
        }
        Fl_Return_Button {s.OKButton} {
          label {Dismiss  }
          user_data {&s} user_data_type {spectra*}
          callback okbutton_cb
          tooltip {Close window} xywh {463 347 91 30} hotspot
        }
        Fl_Button {s.saveButton} {
          label Save
          user_data {&s} user_data_type {spectra*}
          callback savebutton_cb
          tooltip {Save to text or binary format} xywh {360 348 91 29}
        }
        Fl_Button {s.printButton} {
          label Print
          user_data {&s} user_data_type {spectra*}
          callback printbutton_cb
          tooltip {Print spectrum (or save to PS)} xywh {260 348 91 29}
        }
      }
      Fl_Group {} {open
        xywh {0 340 250 40} resizable
      } {}
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       /* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"32 28 2   2",
"   c gray0",
".  s mask c none",
/* pixels */
". . . . . . . . . . . . . . .   . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . .     . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . .   .   . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . .   . .         . . . . . . . . . . . . . ",
". . . . . . . . . . .   . . . . . . .     . . . . . . . . . . . ",
". . . . . . . . . . .   . . . . . . . . .   . . . . . . . . . . ",
". . . . . . . . . . . .   . .         . . .   . . . . . . . . . ",
". . . . . . . . . . . . .   .   . . .   . .   . . . . . . . . . ",
". . . . . . . . . . . . . .     . . . .   . .   . . . . . . . . ",
". . . . . . . . . . . . . . .   . . . .   . .   . . . . . . . . ",
". . . . . . . . .         . . . . . . .   . .   . . . . . . . . ",
". . . . . . . . .   . .   . . . . . . .   . .   . . . . . . . . ",
". . . . . . . . .   . .   . . . . . . .   . .   . . . . . . . . ",
". . . . . . . . . .   . .   . . . . .   . .   . . . . . . . . . ",
". . . . . . . . . .   . . .           . . .   . . . . . . . . . ",
". . . . . . . . . . .   . . . . . . . . .   . . . . . . . . . . ",
". . . . . . . . . . . .     . . . . .     . . . . . . . . . . . ",
". . . . . . . . . . . . . .           . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
".         . . . . . . . .   . . . . . . . . .   . . . . . . . . ",
".   . . .   . . . . . . .   . . . . . . . . .   . . . . . . . . ",
".   . . .   . .     . .       . . .     . .       . . .     . . ",
".   . . .   .   . .   . .   . . . . . .   . .   . . .   . .   . ",
".         . .   . .   . .   . . .         . .   . . .         . ",
".   . . .   .   . .   . .   . . .   . .   . .   . . .   . . . . ",
".   . . .   .   . .   . .   .   .   . .   . .   .   .   . .   . ",
".   . . .   . .     . . . .   . . .       . . .   . . .     . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "
};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  # data file for the Fltk User Interface Designer (fluid)
version 1.0103 
header_name {.hxx} 
code_name {.cxx}
Function {slider_panel(slideinput &s)} {open
} {
  Fl_Window {s.sliceWindow} {
    label {Choose slice} open
    xywh {247 168 480 45} type Single box ENGRAVED_BOX
    code0 {\#include "sliceSlider.hxx"} visible
  } {
    Fl_Return_Button {} {
      label Dismiss
      user_data {&s} user_data_type {slideinput *}
      callback okbutton_cb selected
      tooltip {Close window} xywh {385 10 85 25}
    }
    Fl_Scrollbar {s.sliceSlider} {
      user_data {&s} user_data_type {slideinput *}
      callback sliceslider_cb
      tooltip {Select slice} xywh {115 10 260 25} type Horizontal color 40 labelcolor 32
    }
    Fl_Value_Input {s.sliceValue} {
      label {value:}
      user_data {&s} user_data_type {slideinput *}
      callback slicevalue_cb
      tooltip {Drag to change} xywh {55 10 50 25}
    }
  }
} 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 # -*- Makefile -*-
# Hand-generated makefile for the fluid part of ImView
#
# These C++ files are fluid-generated
#


SHELL = /bin/sh
VPATH = @srcdir@

prefix          = @prefix@
exec_prefix     = @exec_prefix@
subdirs         = @subdirs@
top_srcdir      = @top_srcdir@
srcdir          = @srcdir@
bindir          = $(exec_prefix)/bin
infodir         = $(prefix)/info
libdir          = $(prefix)/lib/gnudl
mandir          = $(prefix)/man/man1

# compilers and flags
CC              = @CC@
CXX             = @CXX@
FLUID		= @FLUID@
CPPFLAGS        = @CPPFLAGS@
CFLAGS          = $(CPPFLAGS) @CFLAGS@ 
CXXFLAGS        = $(CPPFLAGS) @CXXFLAGS@
LDFLAGS         = @LDFLAGS@
LIBS            = @LIBS@
INSTALL         = @INSTALL@

# program to make the archive:
LIBNAME         = @LIBNAME@
LIBCOMMAND      = @LIBCOMMAND@
RANLIB          = @RANLIB@
DSONAME         = @DSONAME@
DSOCOMMAND      = @DSOCOMMAND@

# we are building a library

TOP = ${top_srcdir}

TARGET = imview_ui.a

# so as to include the class declarations and config.h
CXXFLAGS += -I${TOP} -I..

FLUIDFILES = \
	printdlg.fl \
	savedlg.fl \
	imginfodlg.fl \
	transfer.fl \
	spectra.fl \
	savespectdlg.fl \
	prntspectdlg.fl \
	profile.fl \
	userprefdlg.fl \
	tmpmsgdlg.fl \
	bivdlg.fl \
	progress.fl \
	arbitrary.fl \
	annotatedlg.fl \
	toolbardlg.fl \
	transfer2.fl \
	sliderdlg.fl

CPPFILES = $(FLUIDFILES:.fl=.cxx)
OBJECTS = $(CPPFILES:.cxx=.o)

## rules for C and H files to be generated from .fl files

.SUFFIXES : .cxx .o .fl .cc

# DEC Unix has some .cc files to be included. Do not compile them
.cc:
	@echo "Do nothing with $<"	

.cxx.o :
	$(CXX) $(CXXTRA) $(CXXFLAGS) -c $<

.fl.hxx:
	${FLUID} -h .hxx -o .cxx -c $<

.fl.cxx:
	${FLUID} -h .hxx -o .cxx -c $<


$(TARGET) : $(OBJECTS)
	$(LIBCOMMAND) $(TARGET) $(OBJECTS)
	$(RANLIB) $(TARGET)

all: $(TARGET)

test:
	@echo "TOP:\t\t:" $(TOP)
	@echo "Fluid files:\t" $(FLUIDFILES)
	@echo "CPP files:\t" $(CPPFILES)
	@echo "Object files:\t" $(OBJECTS)
	@echo "Target:  \t" $(TARGET)

clean:
	- @rm *.cxx *.hxx *.o *.a

realclean:
	- @rm *.cxx *.hxx *.o *.a *~ *.da *.bb *.bbg .ix[0-9]* .inslog*

depend: $(CPPFILES) ${CFILES}
	$(CXX) $(CXXTRA) $(CXXFLAGS)  -M $^ > makedepend


makedepend:
	touch makedepend

include makedepend

# dependencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    # -*- Makefile -*-
# Hand-generated makefile for the fluid part of ImView
#
# These C++ files are fluid-generated
#


SHELL = /bin/sh


prefix          = /usr/local
exec_prefix     = ${prefix}
subdirs         = @subdirs@
top_srcdir      = ..
srcdir          = .
bindir          = $(exec_prefix)/bin
infodir         = $(prefix)/info
libdir          = $(prefix)/lib/gnudl
mandir          = $(prefix)/man/man1

# compilers and flags
CC              = gcc
CXX             = g++
FLUID		= fluid
CPPFLAGS        =  -D_REENTRANT -DLinux  -I.  -I/usr/include/fltk-1.1 -I/usr/include/freetype2 -O2 -march=pentium3 -fomit-frame-pointer -pipe  -I/usr/local/include -Wno-deprecated -I/usr/include
CFLAGS          = $(CPPFLAGS) -O2 -Wall -O2  
CXXFLAGS        = $(CPPFLAGS) -O2 -Wall -Wno-return-type -Wno-unknown-pragmas -O2
LDFLAGS         =  -L/usr/local/lib /usr/lib/fltk-1.1/libfltk_images.a -lpng -ljpeg -lz /usr/lib/fltk-1.1/libfltk.a -lXft -lpthread -lm -lXext -lX11 -lsupc++ -L/usr/lib -lfreetype -lz -L/usr/lib
LIBS            =   -lm
INSTALL         = /bin/install -c

# program to make the archive:
LIBNAME         = @LIBNAME@
LIBCOMMAND      = ar cr
RANLIB          = ranlib
DSONAME         = @DSONAME@
DSOCOMMAND      = @DSOCOMMAND@

# we are building a library

TOP = ${top_srcdir}

TARGET = imview_ui.a

# so as to include the class declarations and config.h
CXXFLAGS += -I${TOP} -I..

FLUIDFILES = \
	printdlg.fl \
	savedlg.fl \
	imginfodlg.fl \
	transfer.fl \
	spectra.fl \
	savespectdlg.fl \
	prntspectdlg.fl \
	profile.fl \
	userprefdlg.fl \
	tmpmsgdlg.fl \
	bivdlg.fl \
	progress.fl \
	arbitrary.fl \
	annotatedlg.fl \
	toolbardlg.fl \
	transfer2.fl \
	sliderdlg.fl

CPPFILES = $(FLUIDFILES:.fl=.cxx)
OBJECTS = $(CPPFILES:.cxx=.o)

## rules for C and H files to be generated from .fl files

.SUFFIXES : .cxx .o .fl .cc

# DEC Unix has some .cc files to be included. Do not compile them
.cc:
	@echo "Do nothing with $<"	

.cxx.o :
	$(CXX) $(CXXTRA) $(CXXFLAGS) -c $<

.fl.hxx:
	${FLUID} -h .hxx -o .cxx -c $<

.fl.cxx:
	${FLUID} -h .hxx -o .cxx -c $<


$(TARGET) : $(OBJECTS)
	$(LIBCOMMAND) $(TARGET) $(OBJECTS)
	$(RANLIB) $(TARGET)

all: $(TARGET)

test:
	@echo "TOP:\t\t:" $(TOP)
	@echo "Fluid files:\t" $(FLUIDFILES)
	@echo "CPP files:\t" $(CPPFILES)
	@echo "Object files:\t" $(OBJECTS)
	@echo "Target:  \t" $(TARGET)

clean:
	- @rm *.cxx *.hxx *.o *.a

realclean:
	- @rm *.cxx *.hxx *.o *.a *~ *.da *.bb *.bbg .ix[0-9]* .inslog*

depend: $(CPPFILES) ${CFILES}
	$(CXX) $(CXXTRA) $(CXXFLAGS)  -M $^ > makedepend


makedepend:
	touch makedepend

include makedepend

# dependencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    printdlg.o: printdlg.cxx printdlg.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Double_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../printPrefs.hxx \
  /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h \
  /usr/include/gnu/stubs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
  /usr/include/bits/typesizes.h /usr/include/libio.h \
  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
  /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
  /usr/include/bits/stdio.h /usr/include/fltk-1.1/FL/Fl_Box.H \
  /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Check_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Light_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Choice.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Item.H \
  /usr/include/fltk-1.1/FL/Fl_Image.H /usr/include/fltk-1.1/FL/Fl_Tabs.H
savedlg.o: savedlg.cxx savedlg.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Double_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../savePrefs.hxx \
  /usr/include/fltk-1.1/FL/Fl_Box.H /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Check_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Light_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Choice.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Item.H \
  /usr/include/fltk-1.1/FL/Fl_Image.H /usr/include/fltk-1.1/FL/Fl_Menu.H \
  ../io/savetiff.hxx
imginfodlg.o: imginfodlg.cxx imginfodlg.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../imageInfo.hxx \
  /usr/include/fltk-1.1/FL/Fl_Box.H /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Output.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H
transfer.o: transfer.cxx transfer.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Double_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../transferFunction.hxx \
  /usr/include/fltk-1.1/FL/x.H /usr/include/X11/Xlib.h \
  /usr/include/sys/types.h /usr/include/features.h \
  /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h \
  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/bits/typesizes.h /usr/include/time.h /usr/include/endian.h \
  /usr/include/bits/endian.h /usr/include/sys/select.h \
  /usr/include/bits/select.h /usr/include/bits/sigset.h \
  /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
  /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h \
  /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \
  /usr/include/X11/Xosdefs.h /usr/include/X11/Xutil.h \
  /usr/include/X11/Xatom.h /usr/include/fltk-1.1/FL/Fl_Slider.H \
  /usr/include/fltk-1.1/FL/Fl_Valuator.H \
  /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Float_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Int_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Check_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Light_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Choice.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Item.H \
  /usr/include/fltk-1.1/FL/Fl_Image.H ../transferBox.hxx \
  /usr/include/fltk-1.1/FL/Fl_Box.H /usr/include/fltk-1.1/FL/fl_draw.H \
  ../transferHistoBox.hxx ../transferRGBBox.hxx ../imview.hxx ../imcfg.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/string \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stringfwd.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/char_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstring \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstddef \
  /usr/include/string.h /usr/include/xlocale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/fpos.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdio \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/wchar.h /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
  /usr/include/bits/stdio.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h \
  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
  /usr/include/bits/environments.h /usr/include/bits/confname.h \
  /usr/include/getopt.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cwchar \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/ctime \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/memory \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algobase.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/climits \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/limits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/syslimits.h \
  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdlib \
  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/new \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/iosfwd \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/clocale \
  /usr/include/locale.h /usr/include/bits/locale.h \
  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
  /usr/include/libintl.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cctype \
  /usr/include/ctype.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/functexcept.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_pair.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/type_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_types.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_funcs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/concept_check.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_alloc.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_threads.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_construct.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_uninitialized.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_raw_storage_iter.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_function.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/algorithm \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algo.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_heap.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_tempbuf.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.tcc \
  /usr/include/fltk-1.1/FL/Fl_Menu.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Bar.H /usr/include/libgen.h \
  ../transferFunctionBox.hxx
spectra.o: spectra.cxx spectra.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Double_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../spectraBox.hxx \
  /usr/include/stdlib.h /usr/include/features.h /usr/include/sys/cdefs.h \
  /usr/include/gnu/stubs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
  /usr/include/endian.h /usr/include/bits/endian.h /usr/include/xlocale.h \
  /usr/include/sys/types.h /usr/include/bits/types.h \
  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
  /usr/include/time.h /usr/include/sys/select.h \
  /usr/include/bits/select.h /usr/include/bits/sigset.h \
  /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
  /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h \
  /usr/include/alloca.h /usr/include/stdio.h /usr/include/libio.h \
  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
  /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
  /usr/include/bits/stdio.h /usr/include/fltk-1.1/FL/x.H \
  /usr/include/X11/Xlib.h /usr/include/X11/X.h \
  /usr/include/X11/Xfuncproto.h /usr/include/X11/Xosdefs.h \
  /usr/include/X11/Xutil.h /usr/include/X11/Xatom.h \
  /usr/include/fltk-1.1/FL/fl_draw.H /usr/include/fltk-1.1/FL/Fl_Box.H \
  /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Check_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Light_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Output.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H /usr/include/fltk-1.1/FL/fl_ask.H \
  ../axisBox.hxx
savespectdlg.o: savespectdlg.cxx savespectdlg.hxx \
  /usr/include/fltk-1.1/FL/Fl.H /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../saveSpect.hxx \
  /usr/include/fltk-1.1/FL/Fl_Box.H /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Check_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Light_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Choice.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Item.H \
  /usr/include/fltk-1.1/FL/Fl_Image.H /usr/include/fltk-1.1/FL/Fl_Menu.H \
  ../imview.hxx ../imcfg.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/string \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h \
  /usr/include/features.h /usr/include/sys/cdefs.h \
  /usr/include/gnu/stubs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stringfwd.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/char_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstring \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstddef \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/string.h /usr/include/xlocale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/fpos.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdio \
  /usr/include/stdio.h /usr/include/bits/types.h \
  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
  /usr/include/bits/wchar.h /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
  /usr/include/bits/stdio.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h \
  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
  /usr/include/bits/sched.h /usr/include/bits/time.h \
  /usr/include/signal.h /usr/include/bits/sigset.h \
  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
  /usr/include/bits/sigthread.h /usr/include/unistd.h \
  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
  /usr/include/bits/confname.h /usr/include/getopt.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cwchar \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/ctime \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/memory \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algobase.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/climits \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/limits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/syslimits.h \
  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdlib \
  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
  /usr/include/bits/waitstatus.h /usr/include/endian.h \
  /usr/include/bits/endian.h /usr/include/sys/types.h \
  /usr/include/sys/select.h /usr/include/bits/select.h \
  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/new \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/iosfwd \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/clocale \
  /usr/include/locale.h /usr/include/bits/locale.h \
  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
  /usr/include/libintl.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cctype \
  /usr/include/ctype.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/functexcept.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_pair.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/type_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_types.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_funcs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/concept_check.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_alloc.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_threads.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_construct.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_uninitialized.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_raw_storage_iter.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_function.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/algorithm \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algo.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_heap.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_tempbuf.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.tcc \
  /usr/include/fltk-1.1/FL/Fl_Menu_Bar.H /usr/include/libgen.h
prntspectdlg.o: prntspectdlg.cxx prntspectdlg.hxx \
  /usr/include/fltk-1.1/FL/Fl.H /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../printSpect.hxx \
  /usr/include/fltk-1.1/FL/Fl_Box.H /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Check_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Light_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H ../imview.hxx ../imcfg.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/string \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h \
  /usr/include/features.h /usr/include/sys/cdefs.h \
  /usr/include/gnu/stubs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stringfwd.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/char_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstring \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstddef \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/string.h /usr/include/xlocale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/fpos.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdio \
  /usr/include/stdio.h /usr/include/bits/types.h \
  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
  /usr/include/bits/wchar.h /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
  /usr/include/bits/stdio.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h \
  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
  /usr/include/bits/sched.h /usr/include/bits/time.h \
  /usr/include/signal.h /usr/include/bits/sigset.h \
  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
  /usr/include/bits/sigthread.h /usr/include/unistd.h \
  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
  /usr/include/bits/confname.h /usr/include/getopt.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cwchar \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/ctime \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/memory \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algobase.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/climits \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/limits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/syslimits.h \
  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdlib \
  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
  /usr/include/bits/waitstatus.h /usr/include/endian.h \
  /usr/include/bits/endian.h /usr/include/sys/types.h \
  /usr/include/sys/select.h /usr/include/bits/select.h \
  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/new \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/iosfwd \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/clocale \
  /usr/include/locale.h /usr/include/bits/locale.h \
  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
  /usr/include/libintl.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cctype \
  /usr/include/ctype.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/functexcept.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_pair.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/type_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_types.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_funcs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/concept_check.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_alloc.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_threads.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_construct.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_uninitialized.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_raw_storage_iter.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_function.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/algorithm \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algo.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_heap.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_tempbuf.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.tcc \
  /usr/include/fltk-1.1/FL/Fl_Menu.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Item.H \
  /usr/include/fltk-1.1/FL/Fl_Image.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Bar.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_.H /usr/include/libgen.h \
  ../io/gplot2.hxx \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/list \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_list.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/list.tcc \
  ../imnmspc.hxx ../machine.hxx /usr/include/setjmp.h \
  /usr/include/bits/setjmp.h /usr/include/bits/signum.h \
  /usr/include/bits/siginfo.h /usr/include/bits/sigaction.h \
  /usr/include/bits/sigcontext.h /usr/include/asm/sigcontext.h \
  /usr/include/bits/sigstack.h /usr/include/sys/ucontext.h
profile.o: profile.cxx profile.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Double_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../profileBox.hxx \
  /usr/include/stdlib.h /usr/include/features.h /usr/include/sys/cdefs.h \
  /usr/include/gnu/stubs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
  /usr/include/endian.h /usr/include/bits/endian.h /usr/include/xlocale.h \
  /usr/include/sys/types.h /usr/include/bits/types.h \
  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
  /usr/include/time.h /usr/include/sys/select.h \
  /usr/include/bits/select.h /usr/include/bits/sigset.h \
  /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
  /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h \
  /usr/include/alloca.h /usr/include/stdio.h /usr/include/libio.h \
  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
  /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
  /usr/include/bits/stdio.h /usr/include/fltk-1.1/FL/x.H \
  /usr/include/X11/Xlib.h /usr/include/X11/X.h \
  /usr/include/X11/Xfuncproto.h /usr/include/X11/Xosdefs.h \
  /usr/include/X11/Xutil.h /usr/include/X11/Xatom.h \
  /usr/include/fltk-1.1/FL/fl_draw.H /usr/include/fltk-1.1/FL/Fl_Box.H \
  /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Check_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Light_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Output.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H /usr/include/fltk-1.1/FL/fl_ask.H \
  ../axisBox.hxx
userprefdlg.o: userprefdlg.cxx userprefdlg.hxx \
  /usr/include/fltk-1.1/FL/Fl.H /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../userPrefs.hxx \
  /usr/include/fltk-1.1/FL/Fl_Box.H /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Check_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Light_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Round_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Float_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Int_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Slider.H \
  /usr/include/fltk-1.1/FL/Fl_Valuator.H \
  /usr/include/fltk-1.1/FL/Fl_Tabs.H /usr/include/fltk-1.1/FL/Fl_Tile.H \
  /usr/include/fltk-1.1/FL/Fl_Value_Slider.H \
  /usr/include/fltk-1.1/FL/Fl_Choice.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Item.H \
  /usr/include/fltk-1.1/FL/Fl_Image.H /usr/include/stdio.h \
  /usr/include/features.h /usr/include/sys/cdefs.h \
  /usr/include/gnu/stubs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
  /usr/include/bits/typesizes.h /usr/include/libio.h \
  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
  /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
  /usr/include/bits/stdio.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/string \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stringfwd.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/char_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstring \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstddef \
  /usr/include/string.h /usr/include/xlocale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/fpos.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdio \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h \
  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
  /usr/include/bits/sched.h /usr/include/bits/time.h \
  /usr/include/signal.h /usr/include/bits/sigset.h \
  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
  /usr/include/bits/sigthread.h /usr/include/unistd.h \
  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
  /usr/include/bits/confname.h /usr/include/getopt.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cwchar \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/ctime \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/memory \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algobase.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/climits \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/limits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/syslimits.h \
  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdlib \
  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
  /usr/include/bits/waitstatus.h /usr/include/endian.h \
  /usr/include/bits/endian.h /usr/include/sys/types.h \
  /usr/include/sys/select.h /usr/include/bits/select.h \
  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/new \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/iosfwd \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/clocale \
  /usr/include/locale.h /usr/include/bits/locale.h \
  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
  /usr/include/libintl.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cctype \
  /usr/include/ctype.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/functexcept.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_pair.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/type_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_types.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_funcs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/concept_check.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_alloc.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_threads.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_construct.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_uninitialized.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_raw_storage_iter.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_function.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/algorithm \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algo.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_heap.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_tempbuf.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.tcc
tmpmsgdlg.o: tmpmsgdlg.cxx tmpmsgdlg.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../tmpMsg.hxx \
  /usr/include/fltk-1.1/FL/Fl_Box.H /usr/include/fltk-1.1/FL/Fl_Output.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Button.H
bivdlg.o: bivdlg.cxx bivdlg.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../bivHist.hxx \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/vector \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/functexcept.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algobase.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h \
  /usr/include/features.h /usr/include/sys/cdefs.h \
  /usr/include/gnu/stubs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstring \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstddef \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/string.h /usr/include/xlocale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/climits \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/limits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/syslimits.h \
  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
  /usr/include/bits/stdio_lim.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdlib \
  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
  /usr/include/bits/waitstatus.h /usr/include/endian.h \
  /usr/include/bits/endian.h /usr/include/sys/types.h \
  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
  /usr/include/bits/typesizes.h /usr/include/time.h \
  /usr/include/sys/select.h /usr/include/bits/select.h \
  /usr/include/bits/sigset.h /usr/include/bits/time.h \
  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
  /usr/include/bits/sched.h /usr/include/alloca.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/new \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/iosfwd \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/clocale \
  /usr/include/locale.h /usr/include/bits/locale.h \
  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
  /usr/include/libintl.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cctype \
  /usr/include/ctype.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stringfwd.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/fpos.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdio \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/wchar.h /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h \
  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
  /usr/include/bits/environments.h /usr/include/bits/confname.h \
  /usr/include/getopt.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cwchar \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/ctime \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_pair.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/type_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_types.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_funcs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/concept_check.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_alloc.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_threads.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_construct.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_uninitialized.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_vector.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_bvector.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/vector.tcc \
  ../imnmspc.hxx /usr/include/fltk-1.1/FL/x.H /usr/include/X11/Xlib.h \
  /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \
  /usr/include/X11/Xosdefs.h /usr/include/X11/Xutil.h \
  /usr/include/X11/Xatom.h /usr/include/fltk-1.1/FL/fl_draw.H \
  /usr/include/fltk-1.1/FL/Fl_Scroll.H \
  /usr/include/fltk-1.1/FL/Fl_Scrollbar.H \
  /usr/include/fltk-1.1/FL/Fl_Slider.H \
  /usr/include/fltk-1.1/FL/Fl_Valuator.H \
  /usr/include/fltk-1.1/FL/Fl_Choice.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Item.H \
  /usr/include/fltk-1.1/FL/Fl_Image.H /usr/include/fltk-1.1/FL/Fl_Box.H \
  /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Output.H \
  /usr/include/fltk-1.1/FL/Fl_Roller.H \
  /usr/include/fltk-1.1/FL/Fl_Value_Output.H \
  /usr/include/fltk-1.1/FL/fl_ask.H ../imview.hxx ../imcfg.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/string \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/char_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/memory \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_raw_storage_iter.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_function.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/algorithm \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algo.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_heap.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_tempbuf.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.tcc \
  /usr/include/fltk-1.1/FL/Fl_Menu.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Bar.H /usr/include/libgen.h \
  ../axisBox.hxx
progress.o: progress.cxx progress.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../progressInfo.hxx \
  /usr/include/fltk-1.1/FL/Fl_Slider.H \
  /usr/include/fltk-1.1/FL/Fl_Valuator.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Button.H
arbitrary.o: arbitrary.cxx arbitrary.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../rawImage.hxx \
  /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Int_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Output.H \
  /usr/include/fltk-1.1/FL/Fl_Choice.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Item.H \
  /usr/include/fltk-1.1/FL/Fl_Image.H /usr/include/fltk-1.1/FL/Fl_Box.H \
  ../imview.hxx ../imcfg.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/string \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h \
  /usr/include/features.h /usr/include/sys/cdefs.h \
  /usr/include/gnu/stubs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stringfwd.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/char_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstring \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstddef \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/string.h /usr/include/xlocale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/fpos.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdio \
  /usr/include/stdio.h /usr/include/bits/types.h \
  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
  /usr/include/bits/wchar.h /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
  /usr/include/bits/stdio.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h \
  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
  /usr/include/bits/sched.h /usr/include/bits/time.h \
  /usr/include/signal.h /usr/include/bits/sigset.h \
  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
  /usr/include/bits/sigthread.h /usr/include/unistd.h \
  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
  /usr/include/bits/confname.h /usr/include/getopt.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cwchar \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/ctime \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/memory \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algobase.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/climits \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/limits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/syslimits.h \
  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdlib \
  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
  /usr/include/bits/waitstatus.h /usr/include/endian.h \
  /usr/include/bits/endian.h /usr/include/sys/types.h \
  /usr/include/sys/select.h /usr/include/bits/select.h \
  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/new \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/iosfwd \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/clocale \
  /usr/include/locale.h /usr/include/bits/locale.h \
  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
  /usr/include/libintl.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cctype \
  /usr/include/ctype.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/functexcept.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_pair.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/type_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_types.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_funcs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/concept_check.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_alloc.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_threads.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_construct.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_uninitialized.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_raw_storage_iter.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_function.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/algorithm \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algo.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_heap.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_tempbuf.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.tcc \
  /usr/include/fltk-1.1/FL/Fl_Menu.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Bar.H /usr/include/libgen.h
annotatedlg.o: annotatedlg.cxx annotatedlg.hxx \
  /usr/include/fltk-1.1/FL/Fl.H /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../annotatePoints.hxx \
  ../imview.hxx ../imcfg.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/string \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h \
  /usr/include/features.h /usr/include/sys/cdefs.h \
  /usr/include/gnu/stubs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stringfwd.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/char_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstring \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstddef \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/string.h /usr/include/xlocale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/fpos.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdio \
  /usr/include/stdio.h /usr/include/bits/types.h \
  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
  /usr/include/bits/wchar.h /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
  /usr/include/bits/stdio.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h \
  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
  /usr/include/bits/sched.h /usr/include/bits/time.h \
  /usr/include/signal.h /usr/include/bits/sigset.h \
  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
  /usr/include/bits/sigthread.h /usr/include/unistd.h \
  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
  /usr/include/bits/confname.h /usr/include/getopt.h \
  /usr/lib/gcc-lib/i686-pc-linux-gn                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                u/3.3.5/include/g++-v3/cwchar \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/ctime \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/memory \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algobase.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/climits \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/limits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/syslimits.h \
  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdlib \
  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
  /usr/include/bits/waitstatus.h /usr/include/endian.h \
  /usr/include/bits/endian.h /usr/include/sys/types.h \
  /usr/include/sys/select.h /usr/include/bits/select.h \
  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/new \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/iosfwd \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/clocale \
  /usr/include/locale.h /usr/include/bits/locale.h \
  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
  /usr/include/libintl.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cctype \
  /usr/include/ctype.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/functexcept.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_pair.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/type_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_types.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_funcs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/concept_check.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_alloc.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_threads.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_construct.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_uninitialized.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_raw_storage_iter.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_function.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/algorithm \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algo.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_heap.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_tempbuf.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.tcc \
  /usr/include/fltk-1.1/FL/Fl_Menu.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Item.H \
  /usr/include/fltk-1.1/FL/Fl_Image.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Bar.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_.H /usr/include/libgen.h \
  ../imnmspc.hxx /usr/include/fltk-1.1/FL/x.H /usr/include/X11/Xlib.h \
  /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \
  /usr/include/X11/Xosdefs.h /usr/include/X11/Xutil.h \
  /usr/include/X11/Xatom.h /usr/include/fltk-1.1/FL/Fl_Scroll.H \
  /usr/include/fltk-1.1/FL/Fl_Scrollbar.H \
  /usr/include/fltk-1.1/FL/Fl_Slider.H \
  /usr/include/fltk-1.1/FL/Fl_Valuator.H \
  /usr/include/fltk-1.1/FL/Fl_Choice.H /usr/include/fltk-1.1/FL/Fl_Box.H \
  /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Round_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Light_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Output.H \
  /usr/include/fltk-1.1/FL/Fl_Roller.H \
  /usr/include/fltk-1.1/FL/Fl_Value_Output.H \
  /usr/include/fltk-1.1/FL/Fl_Value_Slider.H
toolbardlg.o: toolbardlg.cxx toolbardlg.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../toolbar.hxx ../imview.hxx \
  ../imcfg.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/string \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h \
  /usr/include/features.h /usr/include/sys/cdefs.h \
  /usr/include/gnu/stubs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stringfwd.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/char_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstring \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstddef \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/string.h /usr/include/xlocale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/fpos.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdio \
  /usr/include/stdio.h /usr/include/bits/types.h \
  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
  /usr/include/bits/wchar.h /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
  /usr/include/bits/stdio.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h \
  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
  /usr/include/bits/sched.h /usr/include/bits/time.h \
  /usr/include/signal.h /usr/include/bits/sigset.h \
  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
  /usr/include/bits/sigthread.h /usr/include/unistd.h \
  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
  /usr/include/bits/confname.h /usr/include/getopt.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cwchar \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/ctime \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/memory \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algobase.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/climits \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/limits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/syslimits.h \
  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdlib \
  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
  /usr/include/bits/waitstatus.h /usr/include/endian.h \
  /usr/include/bits/endian.h /usr/include/sys/types.h \
  /usr/include/sys/select.h /usr/include/bits/select.h \
  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/new \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/iosfwd \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/clocale \
  /usr/include/locale.h /usr/include/bits/locale.h \
  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
  /usr/include/libintl.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cctype \
  /usr/include/ctype.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/functexcept.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_pair.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/type_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_types.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_funcs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/concept_check.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_alloc.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_threads.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_construct.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_uninitialized.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_raw_storage_iter.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_function.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/algorithm \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algo.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_heap.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_tempbuf.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.tcc \
  /usr/include/fltk-1.1/FL/Fl_Menu.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Item.H \
  /usr/include/fltk-1.1/FL/Fl_Image.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Bar.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_.H /usr/include/libgen.h \
  ../imnmspc.hxx /usr/include/fltk-1.1/FL/x.H /usr/include/X11/Xlib.h \
  /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \
  /usr/include/X11/Xosdefs.h /usr/include/X11/Xutil.h \
  /usr/include/X11/Xatom.h /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Output.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Choice.H /usr/include/fltk-1.1/FL/fl_draw.H \
  /usr/include/fltk-1.1/FL/Fl_Pixmap.H
transfer2.o: transfer2.cxx transfer2.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Double_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../transferRGBFunction.hxx \
  /usr/include/assert.h /usr/include/features.h /usr/include/sys/cdefs.h \
  /usr/include/gnu/stubs.h /usr/include/fltk-1.1/FL/x.H \
  /usr/include/X11/Xlib.h /usr/include/sys/types.h \
  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h \
  /usr/include/bits/typesizes.h /usr/include/time.h /usr/include/endian.h \
  /usr/include/bits/endian.h /usr/include/sys/select.h \
  /usr/include/bits/select.h /usr/include/bits/sigset.h \
  /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
  /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h \
  /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \
  /usr/include/X11/Xosdefs.h /usr/include/X11/Xutil.h \
  /usr/include/X11/Xatom.h /usr/include/fltk-1.1/FL/Fl_Slider.H \
  /usr/include/fltk-1.1/FL/Fl_Valuator.H \
  /usr/include/fltk-1.1/FL/Fl_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Float_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Int_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Check_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Light_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Round_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Choice.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Item.H \
  /usr/include/fltk-1.1/FL/Fl_Image.H ../transferRGBFunctionBox.hxx \
  /usr/include/fltk-1.1/FL/Fl_Box.H /usr/include/fltk-1.1/FL/fl_draw.H \
  ../transferRGBBox.hxx ../imview.hxx ../imcfg.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/string \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stringfwd.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/char_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstring \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstddef \
  /usr/include/string.h /usr/include/xlocale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/fpos.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdio \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/wchar.h /usr/include/gconv.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
  /usr/include/bits/stdio.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h \
  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
  /usr/include/bits/environments.h /usr/include/bits/confname.h \
  /usr/include/getopt.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cwchar \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/ctime \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/memory \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algobase.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/climits \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/limits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/syslimits.h \
  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cstdlib \
  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/new \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/iosfwd \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/clocale \
  /usr/include/locale.h /usr/include/bits/locale.h \
  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
  /usr/include/libintl.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/cctype \
  /usr/include/ctype.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/functexcept.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/exception_defines.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_pair.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/type_traits.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_types.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator_base_funcs.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/concept_check.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_iterator.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_alloc.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_threads.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_construct.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_uninitialized.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_raw_storage_iter.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_function.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/algorithm \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_algo.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_heap.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/stl_tempbuf.h \
  /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/bits/basic_string.tcc \
  /usr/include/fltk-1.1/FL/Fl_Menu.H \
  /usr/include/fltk-1.1/FL/Fl_Menu_Bar.H /usr/include/libgen.h \
  ../transferRGBHistoBox.hxx ../transferBox.hxx
sliderdlg.o: sliderdlg.cxx sliderdlg.hxx /usr/include/fltk-1.1/FL/Fl.H \
  /usr/include/fltk-1.1/FL/Enumerations.H \
  /usr/include/fltk-1.1/FL/Fl_Export.H \
  /usr/include/fltk-1.1/FL/Fl_Window.H \
  /usr/include/fltk-1.1/FL/Fl_Group.H \
  /usr/include/fltk-1.1/FL/Fl_Widget.H ../sliceSlider.hxx \
  /usr/include/fltk-1.1/FL/Fl_Scrollbar.H \
  /usr/include/fltk-1.1/FL/Fl_Slider.H \
  /usr/include/fltk-1.1/FL/Fl_Valuator.H \
  /usr/include/fltk-1.1/FL/Fl_Value_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input.H \
  /usr/include/fltk-1.1/FL/Fl_Input_.H \
  /usr/include/fltk-1.1/FL/Fl_Return_Button.H \
  /usr/include/fltk-1.1/FL/Fl_Button.H
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "printdlg.hxx"

Fl_Menu_Item menu_s[] = {
 {"Automatic", 0,  0, 0, 1, 0, 0, 14, 56},
 {"A5", 0,  0, 0, 4, 0, 0, 14, 56},
 {"B5", 0,  0, 0, 4, 0, 0, 14, 56},
 {"A4", 0,  0, 0, 4, 0, 0, 14, 56},
 {"Letter", 0,  0, 0, 4, 0, 0, 14, 56},
 {"Legal", 0,  0, 0, 4, 0, 0, 14, 56},
 {"A3", 0,  0, 0, 4, 0, 0, 14, 56},
 {0}
};

Fl_Menu_Item menu_s1[] = {
 {"standard", 0,  (Fl_Callback*)chosenmargin_cb, (void*)(0), 0, 0, 0, 14, 56},
 {"small", 0,  (Fl_Callback*)chosenmargin_cb, (void*)(1), 0, 0, 0, 14, 56},
 {"large", 0,  (Fl_Callback*)chosenmargin_cb, (void*)(2), 0, 0, 0, 14, 56},
 {"zero", 0,  (Fl_Callback*)chosenmargin_cb, (void*)(3), 0, 0, 0, 14, 56},
 {"custom", 0,  (Fl_Callback*)chosenmargin_cb, (void*)(4), 0, 0, 0, 14, 56},
 {0}
};

Fl_Menu_Item menu_Unit[] = {
 {"point (pt)", 0,  0, 0, 0, 0, 0, 14, 56},
 {"mm", 0,  0, 0, 0, 0, 0, 14, 56},
 {"cm", 0,  0, 0, 0, 0, 0, 14, 56},
 {"inches (in)", 0,  0, 0, 0, 0, 0, 14, 56},
 {0}
};

Fl_Double_Window* printprefs_panel(printprefs &s) {
  Fl_Double_Window* w;
  { Fl_Double_Window* o = s.prefWindow = new Fl_Double_Window(415, 420, "Print an image");
    w = o;
    o->box(FL_ENGRAVED_BOX);
    { Fl_Group* o = s.printtypeGroup = new Fl_Group(150, 10, 260, 30, "Print to:");
      o->labelfont(7);
      o->align(FL_ALIGN_LEFT);
      { Fl_Check_Button* o = s.printerCheck = new Fl_Check_Button(150, 10, 100, 30, "Printer");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)12);
        o->callback((Fl_Callback*)printercheck_cb, (void*)(&s));
      }
      { Fl_Check_Button* o = s.fileCheck = new Fl_Check_Button(250, 10, 100, 30, "File");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)12);
        o->callback((Fl_Callback*)filecheck_cb, (void*)(&s));
      }
      o->end();
    }
    { Fl_Group* o = s.inputGroup = new Fl_Group(150, 40, 265, 110);
      { Fl_Input* o = s.commandInput = new Fl_Input(150, 40, 260, 30, "Print command:");
        o->color((Fl_Color)43);
        o->selection_color((Fl_Color)12);
        o->labelfont(7);
        o->textfont(4);
        o->textsize(12);
        o->callback((Fl_Callback*)commandInput_cb, (void*)(&s));
      }
      { Fl_Input* o = s.filenameInput = new Fl_Input(150, 80, 190, 30, "File name:");
        o->selection_color((Fl_Color)12);
        o->labelfont(7);
        o->labelcolor((Fl_Color)31);
        o->textfont(4);
        o->textsize(12);
        o->textcolor(31);
        o->callback((Fl_Callback*)filenameInput_cb, (void*)(&s));
        o->deactivate();
      }
      { Fl_Button* o = s.browseButton = new Fl_Button(340, 80, 70, 30, "Browse...");
        o->labelcolor((Fl_Color)31);
        o->callback((Fl_Callback*)browsebutton_cb, (void*)(&s));
        o->deactivate();
      }
      { Fl_Input* o = s.titleInput = new Fl_Input(150, 120, 260, 30, "Page title:");
        o->color((Fl_Color)43);
        o->selection_color((Fl_Color)12);
        o->labelfont(7);
        o->textfont(4);
        o->textsize(12);
        o->callback((Fl_Callback*)titleInput_cb, (void*)(&s));
      }
      o->end();
    }
    { Fl_Tabs* o = new Fl_Tabs(0, 165, 430, 200);
      { Fl_Group* o = new Fl_Group(0, 190, 430, 175, "main parameters");
        { Fl_Group* o = s.orientationGroup = new Fl_Group(155, 205, 200, 30, "Orientation:");
          o->tooltip("General page orientation");
          o->labelfont(7);
          o->align(FL_ALIGN_LEFT);
          { Fl_Check_Button* o = s.portraitCheck = new Fl_Check_Button(155, 205, 100, 30, "Portrait");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color((Fl_Color)12);
            o->callback((Fl_Callback*)portraitcheck_cb, (void*)(&s));
          }
          { Fl_Check_Button* o = s.landscapeCheck = new Fl_Check_Button(255, 205, 100, 30, "Landscape");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color((Fl_Color)12);
            o->callback((Fl_Callback*)landscapecheck_cb, (void*)(&s));
          }
          o->end();
        }
        { Fl_Group* o = s.papersizeGroup = new Fl_Group(155, 235, 268, 30, "Paper size:");
          o->labelfont(7);
          o->align(FL_ALIGN_LEFT);
          { Fl_Choice* o = s.papersizeChoice = new Fl_Choice(160, 235, 85, 30);
            o->tooltip("size of sheet the images will be printed on");
            o->down_box(FL_BORDER_BOX);
            o->callback((Fl_Callback*)papersize_cb, (void*)(&s));
            o->menu(menu_s);
          }
          o->end();
        }
        { Fl_Group* o = s.languageGroup = new Fl_Group(155, 265, 200, 30, "Language:");
          o->tooltip("Use PS for printing and EPS for inclusion in other documents");
          o->labelfont(7);
          o->align(FL_ALIGN_LEFT);
          { Fl_Check_Button* o = s.psCheck = new Fl_Check_Button(155, 265, 100, 30, "PS");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color((Fl_Color)12);
            o->callback((Fl_Callback*)pscheck_cb, (void*)(&s));
          }
          { Fl_Check_Button* o = s.epsCheck = new Fl_Check_Button(255, 265, 100, 30, "EPS");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color((Fl_Color)12);
            o->callback((Fl_Callback*)epscheck_cb, (void*)(&s));
          }
          o->end();
        }
        { Fl_Group* o = s.fitGroup = new Fl_Group(155, 294, 205, 31, "Fit on page:");
          o->tooltip("Print the current image or the whole list, on the one page");
          o->labelfont(7);
          o->align(FL_ALIGN_LEFT);
          { Fl_Check_Button* o = s.oneImageCheck = new Fl_Check_Button(155, 295, 100, 30, "One image");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color((Fl_Color)12);
            o->callback((Fl_Callback*)oneimagecheck_cb, (void*)(&s));
          }
          { Fl_Check_Button* o = s.wholeListCheck = new Fl_Check_Button(255, 294, 100, 30, "Whole list");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color((Fl_Color)12);
            o->callback((Fl_Callback*)wholelistcheck_cb, (void*)(&s));
          }
          o->end();
        }
        { Fl_Input* o = s.nbcopiesInput = new Fl_Input(155, 325, 40, 30, "Nb copies:");
          o->tooltip("Single or multiple copies");
          o->type(2);
          o->color((Fl_Color)43);
          o->selection_color((Fl_Color)12);
          o->labelfont(7);
          o->textfont(4);
          o->textsize(12);
          o->callback((Fl_Callback*)nbcopies_cb, (void*)(&s));
        }
        { Fl_Group* o = s.subsetGroup = new Fl_Group(255, 325, 171, 30, "Image:");
          o->tooltip("Prints whole image or only currently displayed subset");
          o->labelfont(7);
          o->align(FL_ALIGN_LEFT);
          { Fl_Check_Button* o = s.wholeCheck = new Fl_Check_Button(256, 325, 80, 30, "Whole");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color((Fl_Color)12);
            o->callback((Fl_Callback*)wholecheck_cb, (void*)(&s));
          }
          { Fl_Check_Button* o = s.subsetCheck = new Fl_Check_Button(340, 325, 70, 30, "Subset");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color((Fl_Color)12);
            o->callback((Fl_Callback*)subsetcheck_cb, (void*)(&s));
          }
          o->end();
        }
        o->end();
      }
      { Fl_Group* o = new Fl_Group(0, 190, 430, 175, "margins");
        o->hide();
        { Fl_Group* o = new Fl_Group(140, 250, 265, 105, "custom margins:");
          o->box(FL_ENGRAVED_FRAME);
          o->align(FL_ALIGN_LEFT);
          o->deactivate();
          s.leftMarginInput = new Fl_Input(190, 260, 65, 25, "left:");
          s.rightMarginInput = new Fl_Input(320, 260, 65, 25, "right:");
          s.topMarginInput = new Fl_Input(190, 290, 65, 25, "top:");
          s.bottomMarginInput = new Fl_Input(320, 290, 65, 25, "bottom:");
          { Fl_Input* o = s.titleMarginInput = new Fl_Input(190, 320, 65, 25, "title:");
            o->tooltip("Title height");
          }
          o->end();
        }
        { Fl_Choice* o = s.marginDims = new Fl_Choice(140, 215, 110, 25, "Margin dimensions:");
          o->down_box(FL_BORDER_BOX);
          o->callback((Fl_Callback*)marginchoice_cb, (void*)(&s));
          o->menu(menu_s1);
        }
        { Fl_Choice* o = new Fl_Choice(300, 215, 105, 25, "Unit:");
          o->down_box(FL_BORDER_BOX);
          o->menu(menu_Unit);
        }
        o->end();
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(30, 375, 370, 40);
      { Fl_Button* o = s.CancelButton = new Fl_Button(30, 380, 80, 30, "Cancel");
        o->callback((Fl_Callback*)cancelbutton_cb, (void*)(&s));
        o->shortcut("^[");
      }
      { Fl_Button* o = s.PreviewButton = new Fl_Button(180, 380, 80, 30, "Preview");
        o->callback((Fl_Callback*)previewbutton_cb, (void*)(&s));
      }
      { Fl_Group* o = new Fl_Group(310, 375, 90, 40);
        { Fl_Box* o = new Fl_Box(310, 375, 88, 40);
          o->box(FL_THIN_DOWN_FRAME);
        }
        { Fl_Return_Button* o = s.OKButton = new Fl_Return_Button(314, 380, 80, 30, "Print");
          o->callback((Fl_Callback*)okbutton_cb, (void*)(&s));
          w->hotspot(o);
        }
        o->end();
      }
      o->end();
    }
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef printdlg_hxx
#define printdlg_hxx
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include "printPrefs.hxx"
#include <FL/Fl_Group.H>
#include <FL/Fl_Check_Button.H>
extern void printercheck_cb(Fl_Check_Button*, printprefs*);
extern void filecheck_cb(Fl_Check_Button*, printprefs*);
#include <FL/Fl_Input.H>
extern void commandInput_cb(Fl_Input*, printprefs*);
extern void filenameInput_cb(Fl_Input*, printprefs*);
#include <FL/Fl_Button.H>
extern void browsebutton_cb(Fl_Button*, printprefs*);
extern void titleInput_cb(Fl_Input*, printprefs*);
#include <FL/Fl_Tabs.H>
extern void portraitcheck_cb(Fl_Check_Button*, printprefs*);
extern void landscapecheck_cb(Fl_Check_Button*, printprefs*);
#include <FL/Fl_Choice.H>
extern void papersize_cb(Fl_Choice*, printprefs*);
extern void pscheck_cb(Fl_Check_Button*, printprefs*);
extern void epscheck_cb(Fl_Check_Button*, printprefs*);
extern void oneimagecheck_cb(Fl_Check_Button*, printprefs*);
extern void wholelistcheck_cb(Fl_Check_Button*, printprefs*);
extern void nbcopies_cb(Fl_Input*, printprefs*);
extern void wholecheck_cb(Fl_Check_Button*, printprefs*);
extern void subsetcheck_cb(Fl_Check_Button*, printprefs*);
extern void marginchoice_cb(Fl_Choice*, printprefs*);
extern void chosenmargin_cb(Fl_Menu_*, void*);
extern void cancelbutton_cb(Fl_Button*, printprefs*);
extern void previewbutton_cb(Fl_Button*, printprefs*);
#include <FL/Fl_Box.H>
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, printprefs*);
Fl_Double_Window* printprefs_panel(printprefs &s);
extern Fl_Menu_Item menu_s[];
extern Fl_Menu_Item menu_s1[];
extern Fl_Menu_Item menu_Unit[];
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "savedlg.hxx"

Fl_Menu_Item menu_svpr[] = {
 {"TIFF", 0,  (Fl_Callback*)chosenformat_cb, (void*)(0), 0, 0, 4, 12, 56},
 {"Z-IMAGE", 0,  (Fl_Callback*)chosenformat_cb, (void*)(1), 0, 0, 4, 12, 56},
 {"Euro", 0,  (Fl_Callback*)chosenformat_cb, (void*)(2), 17, 0, 4, 12, 56},
 {"PNG", 0,  (Fl_Callback*)chosenformat_cb, (void*)(3), 4, 0, 4, 12, 56},
 {"JPEG", 0,  (Fl_Callback*)chosenformat_cb, (void*)(4), 4, 0, 4, 12, 56},
 {0}
};

Fl_Menu_Item menu_svpr1[] = {
 {"None", 0,  0, 0, 0, 0, 0, 14, 56},
 {0}
};

Fl_Group *svprwhatGroup=(Fl_Group *)0;

Fl_Double_Window* saveprefs_panel(saveprefs &svpr) {
  Fl_Double_Window* w;
  { Fl_Double_Window* o = svpr.saveWindow = new Fl_Double_Window(450, 210, "Save an image");
    w = o;
    o->box(FL_ENGRAVED_BOX);
    { Fl_Box* o = new Fl_Box(0, 100, 450, 60);
      o->box(FL_ENGRAVED_BOX);
    }
    { Fl_Group* o = svpr.inputGroup = new Fl_Group(130, 20, 300, 30);
      o->selection_color((Fl_Color)43);
      { Fl_Input* o = svpr.filenameInput = new Fl_Input(130, 20, 230, 30, "File name:");
        o->color((Fl_Color)43);
        o->selection_color((Fl_Color)84);
        o->labelfont(7);
        o->textfont(4);
        o->textsize(12);
        o->callback((Fl_Callback*)filenameinput_cb, (void*)(&svpr));
      }
      { Fl_Button* o = svpr.browseButton = new Fl_Button(360, 20, 70, 30, "Browse...");
        o->callback((Fl_Callback*)browsebutton_cb, (void*)(&svpr));
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(130, 64, 301, 26);
      { Fl_Choice* o = svpr.formatChoice = new Fl_Choice(130, 64, 90, 26, "Format:");
        o->down_box(FL_BORDER_BOX);
        o->labelfont(7);
        o->textfont(4);
        o->textsize(12);
        o->callback((Fl_Callback*)formatchoice_cb, (void*)(&svpr));
        o->menu(menu_svpr);
      }
      { Fl_Choice* o = svpr.compressionChoice = new Fl_Choice(340, 64, 91, 26, "Compression:");
        o->down_box(FL_BORDER_BOX);
        o->labelfont(7);
        o->labelcolor((Fl_Color)40);
        o->textfont(4);
        o->textsize(12);
        o->textcolor(40);
        o->callback((Fl_Callback*)compressionchoice_cb, (void*)(&svpr));
        o->menu(menu_svpr1);
      }
      o->end();
    }
    { Fl_Group* o = svpr.subsetGroup = new Fl_Group(130, 100, 200, 30, "Save image:");
      o->labelfont(7);
      o->align(FL_ALIGN_LEFT);
      { Fl_Check_Button* o = svpr.wholeCheck = new Fl_Check_Button(130, 100, 80, 30, "Whole");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)84);
        o->callback((Fl_Callback*)wholecheck_cb, (void*)(&svpr));
      }
      { Fl_Check_Button* o = svpr.subsetCheck = new Fl_Check_Button(250, 100, 70, 30, "Subset");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)84);
        o->callback((Fl_Callback*)subsetcheck_cb, (void*)(&svpr));
      }
      o->end();
    }
    { Fl_Group* o = svprwhatGroup = new Fl_Group(130, 130, 220, 30, "Save what:");
      o->labelfont(7);
      o->align(FL_ALIGN_LEFT);
      { Fl_Check_Button* o = svpr.visibleCheck = new Fl_Check_Button(130, 130, 80, 30, "Visible image");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)84);
        o->callback((Fl_Callback*)visiblecheck_cb, (void*)(&svpr));
      }
      { Fl_Check_Button* o = svpr.underlyingCheck = new Fl_Check_Button(250, 130, 100, 30, "Raw data");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)83);
        o->callback((Fl_Callback*)underlyingcheck_cb, (void*)(&svpr));
      }
      o->end();
    }
    { Fl_Button* o = svpr.CancelButton = new Fl_Button(30, 170, 80, 30, "Cancel");
      o->callback((Fl_Callback*)cancelbutton_cb, (void*)(&svpr));
      o->shortcut("^[");
    }
    { Fl_Group* o = new Fl_Group(324, 160, 110, 50);
      { Fl_Box* o = new Fl_Box(344, 167, 88, 36);
        o->box(FL_THIN_DOWN_FRAME);
      }
      { Fl_Return_Button* o = svpr.OKButton = new Fl_Return_Button(348, 170, 80, 30, "Save");
        o->callback((Fl_Callback*)okbutton_cb, (void*)(&svpr));
        w->hotspot(o);
      }
      o->end();
    }
    o->set_modal();
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef savedlg_hxx
#define savedlg_hxx
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include "savePrefs.hxx"
#include <FL/Fl_Box.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Input.H>
extern void filenameinput_cb(Fl_Input*, saveprefs*);
#include <FL/Fl_Button.H>
extern void browsebutton_cb(Fl_Button*, saveprefs*);
#include <FL/Fl_Choice.H>
extern void formatchoice_cb(Fl_Choice*, saveprefs*);
extern void chosenformat_cb(Fl_Menu_*, void*);
extern void compressionchoice_cb(Fl_Choice*, saveprefs*);
#include <FL/Fl_Check_Button.H>
extern void wholecheck_cb(Fl_Check_Button*, saveprefs*);
extern void subsetcheck_cb(Fl_Check_Button*, saveprefs*);
extern Fl_Group *svprwhatGroup;
extern void visiblecheck_cb(Fl_Check_Button*, saveprefs*);
extern void underlyingcheck_cb(Fl_Check_Button*, saveprefs*);
extern void cancelbutton_cb(Fl_Button*, saveprefs*);
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, saveprefs*);
Fl_Double_Window* saveprefs_panel(saveprefs &svpr);
extern Fl_Menu_Item menu_svpr[];
#define zimagemenuitem (menu_svpr+1)
#define euromenuitem (menu_svpr+2)
extern Fl_Menu_Item menu_svpr1[];
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "imginfodlg.hxx"

Fl_Window* imageinfo_panel(imageinfo &s) {
  Fl_Window* w;
  { Fl_Window* o = s.outputWindow = new Fl_Window(450, 240, "Image information");
    w = o;
    o->box(FL_ENGRAVED_BOX);
    { Fl_Box* o = new Fl_Box(10, 20, 432, 170);
      o->box(FL_ENGRAVED_FRAME);
    }
    { Fl_Box* o = new Fl_Box(157, 10, 120, 20, "Image Information");
      o->box(FL_FLAT_BOX);
    }
    { Fl_Output* o = s.textOutput = new Fl_Output(15, 30, 422, 155);
      o->type(12);
      o->box(FL_FLAT_BOX);
      o->selection_color(FL_DARK1);
      o->textsize(12);
      Fl_Group::current()->resizable(o);
    }
    { Fl_Group* o = new Fl_Group(330, 190, 114, 50);
      { Fl_Box* o = new Fl_Box(340, 197, 102, 36);
        o->box(FL_THIN_DOWN_FRAME);
      }
      { Fl_Return_Button* o = s.OKButton = new Fl_Return_Button(344, 200, 94, 30, "Dismiss  ");
        o->callback((Fl_Callback*)okbutton_cb, (void*)(&s));
        w->hotspot(o);
      }
      o->end();
    }
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef imginfodlg_hxx
#define imginfodlg_hxx
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "imageInfo.hxx"
#include <FL/Fl_Box.H>
#include <FL/Fl_Output.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, imageinfo*);
Fl_Window* imageinfo_panel(imageinfo &s);
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "transfer.hxx"

Fl_Double_Window* transfer_panel(transfer &s) {
  Fl_Double_Window* w;
  { Fl_Double_Window* o = s.transferWindow = new Fl_Double_Window(570, 330, "Edit transfer function");
    w = o;
    o->box(FL_THIN_UP_BOX);
    { Fl_Group* o = new Fl_Group(453, 277, 110, 50);
      { Fl_Box* o = new Fl_Box(462, 284, 99, 36);
        o->box(FL_THIN_DOWN_FRAME);
      }
      { Fl_Return_Button* o = s.OKButton = new Fl_Return_Button(466, 287, 91, 30, "Dismiss  ");
        o->callback((Fl_Callback*)okbutton_cb, (void*)(&s));
        w->hotspot(o);
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(10, 9, 402, 321);
      { Fl_Box* o = new Fl_Box(20, 10, 370, 266);
        o->box(FL_EMBOSSED_FRAME);
      }
      { Fl_Slider* o = s.contrastSlider = new Fl_Slider(20, 280, 370, 20, "Contrast ");
        o->tooltip("Change slope of transfer function");
        o->type(1);
        o->labelsize(12);
        o->callback((Fl_Callback*)contrastslider_cb, (void*)(&s));
        o->align(FL_ALIGN_RIGHT);
        o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
      }
      { myTransferBox* o = s.transferBox = new myTransferBox(25, 15, 360, 256);
        o->tooltip("Transfer function graph");
        o->box(FL_FLAT_BOX);
        o->color((Fl_Color)199);
        o->selection_color(FL_DARK1);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->user_data((void*)(&s));
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
      }
      { Fl_Slider* o = s.brightnessSlider = new Fl_Slider(20, 300, 370, 20, "Brightness ");
        o->tooltip("Change additive constant to transfer function");
        o->type(1);
        o->labelsize(12);
        o->callback((Fl_Callback*)brightnessslider_cb, (void*)(&s));
        o->align(FL_ALIGN_RIGHT);
        o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
      }
      { Fl_Slider* o = s.gammaSlider = new Fl_Slider(393, 11, 19, 264);
        o->tooltip("Change gamma");
        o->labelsize(12);
        o->callback((Fl_Callback*)gammaslider_cb, (void*)(&s));
        o->align(FL_ALIGN_LEFT);
        o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
      }
      o->end();
    }
    { Fl_Choice* o = s.displayChoice = new Fl_Choice(420, 10, 140, 30);
      o->tooltip("Display transfer function or histogram");
      o->down_box(FL_BORDER_BOX);
      o->textsize(12);
      o->callback((Fl_Callback*)displaychoice_cb, (void*)(&s));
      o->align(FL_ALIGN_CENTER);
    }
    { Fl_Button* o = s.resetButton = new Fl_Button(420, 50, 68, 20, "reset");
      o->tooltip("reset to linear, 1:1  transfer");
      o->labelsize(12);
      o->callback((Fl_Callback*)resetbutton_cb, (void*)(&s));
    }
    { Fl_Button* o = s.normaliseButton = new Fl_Button(494, 50, 66, 19, "normalise");
      o->tooltip("set min to black and max to white");
      o->labelsize(12);
      o->callback((Fl_Callback*)normalisebutton_cb, (void*)(&s));
    }
    { Fl_Float_Input* o = s.gammaInput = new Fl_Float_Input(469, 124, 90, 30, "Gamma:");
      o->tooltip("transfer function = 1^(1/gamma)");
      o->type(1);
      o->box(FL_DOWN_BOX);
      o->color(FL_BACKGROUND2_COLOR);
      o->selection_color(FL_SELECTION_COLOR);
      o->labeltype(FL_NORMAL_LABEL);
      o->labelfont(0);
      o->labelsize(12);
      o->labelcolor(FL_BLACK);
      o->textsize(12);
      o->callback((Fl_Callback*)gammainput_cb, (void*)(&s));
      o->align(FL_ALIGN_LEFT);
      o->when(FL_WHEN_ENTER_KEY);
      o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
    }
    { Fl_Int_Input* o = s.topInput = new Fl_Int_Input(469, 154, 90, 30, "Top:");
      o->tooltip("intersection with top edge of box");
      o->type(2);
      o->box(FL_DOWN_BOX);
      o->color(FL_BACKGROUND2_COLOR);
      o->selection_color(FL_SELECTION_COLOR);
      o->labeltype(FL_NORMAL_LABEL);
      o->labelfont(0);
      o->labelsize(12);
      o->labelcolor(FL_BLACK);
      o->textsize(12);
      o->callback((Fl_Callback*)topinput_cb, (void*)(&s));
      o->align(FL_ALIGN_LEFT);
      o->when(FL_WHEN_ENTER_KEY);
    }
    { Fl_Int_Input* o = s.bottomInput = new Fl_Int_Input(469, 184, 90, 30, "Bottom:");
      o->tooltip("intersection with bottom edge of box");
      o->type(2);
      o->box(FL_DOWN_BOX);
      o->color(FL_BACKGROUND2_COLOR);
      o->selection_color(FL_SELECTION_COLOR);
      o->labeltype(FL_NORMAL_LABEL);
      o->labelfont(0);
      o->labelsize(12);
      o->labelcolor(FL_BLACK);
      o->textsize(12);
      o->callback((Fl_Callback*)bottominput_cb, (void*)(&s));
      o->align(FL_ALIGN_LEFT);
      o->when(FL_WHEN_ENTER_KEY);
      o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
    }
    { Fl_Int_Input* o = s.leftInput = new Fl_Int_Input(469, 214, 90, 30, "Left:");
      o->tooltip("intersection with left edge of box");
      o->type(2);
      o->box(FL_DOWN_BOX);
      o->color(FL_BACKGROUND2_COLOR);
      o->selection_color(FL_SELECTION_COLOR);
      o->labeltype(FL_NORMAL_LABEL);
      o->labelfont(0);
      o->labelsize(12);
      o->labelcolor(FL_BLACK);
      o->textsize(12);
      o->callback((Fl_Callback*)leftinput_cb, (void*)(&s));
      o->align(FL_ALIGN_LEFT);
      o->when(FL_WHEN_ENTER_KEY);
      o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
    }
    { Fl_Int_Input* o = s.rightInput = new Fl_Int_Input(469, 244, 90, 30, "Right:");
      o->tooltip("intersection with right edge of box");
      o->type(2);
      o->box(FL_DOWN_BOX);
      o->color(FL_BACKGROUND2_COLOR);
      o->selection_color(FL_SELECTION_COLOR);
      o->labeltype(FL_NORMAL_LABEL);
      o->labelfont(0);
      o->labelsize(12);
      o->labelcolor(FL_BLACK);
      o->textsize(12);
      o->callback((Fl_Callback*)rightinput_cb, (void*)(&s));
      o->align(FL_ALIGN_LEFT);
      o->when(FL_WHEN_ENTER_KEY);
      o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
    }
    { Fl_Check_Button* o = s.applyToAllButton = new Fl_Check_Button(420, 80, 140, 20, "Apply to all images");
      o->tooltip("Apply same transfer to all images");
      o->box(FL_UP_FRAME);
      o->down_box(FL_ROUND_UP_BOX);
      o->selection_color((Fl_Color)130);
      o->labelsize(12);
      o->callback((Fl_Callback*)applytoallbutton_cb, (void*)(&s));
      o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
    }
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef transfer_hxx
#define transfer_hxx
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include "transferFunction.hxx"
#include "transferBox.hxx"
#include <FL/Fl_Group.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, transfer*);
#include <FL/Fl_Slider.H>
extern void contrastslider_cb(Fl_Slider*, transfer*);
extern void brightnessslider_cb(Fl_Slider*, transfer*);
extern void gammaslider_cb(Fl_Slider*, transfer*);
#include <FL/Fl_Choice.H>
extern void displaychoice_cb(Fl_Choice*, transfer*);
#include <FL/Fl_Button.H>
extern void resetbutton_cb(Fl_Button*, transfer*);
extern void normalisebutton_cb(Fl_Button*, transfer*);
extern void gammainput_cb(Fl_Float_Input*, transfer*);
extern void topinput_cb(Fl_Int_Input*, transfer*);
extern void bottominput_cb(Fl_Int_Input*, transfer*);
extern void leftinput_cb(Fl_Int_Input*, transfer*);
extern void rightinput_cb(Fl_Int_Input*, transfer*);
#include <FL/Fl_Check_Button.H>
extern void applytoallbutton_cb(Fl_Check_Button*, transfer*);
Fl_Double_Window* transfer_panel(transfer &s);
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "spectra.hxx"

Fl_Double_Window* spectra_panel(spectra &s) {
  Fl_Double_Window* w;
  { Fl_Double_Window* o = s.spectraWindow = new Fl_Double_Window(570, 395, "Display spectra");
    w = o;
    o->box(FL_ENGRAVED_BOX);
    o->align(FL_ALIGN_LEFT);
    { Fl_Group* o = new Fl_Group(0, 0, 560, 310);
      { Fl_Output* o = s.spectrumTitle = new Fl_Output(130, 6, 290, 21);
        o->tooltip("Coordinates of image point");
        o->box(FL_EMBOSSED_BOX);
        o->selection_color(FL_DARK1);
      }
      { mySpectraBox* o = s.spectraBox = new mySpectraBox(48, 30, 512, 260);
        o->tooltip("Spectrum at selected image point");
        o->box(FL_EMBOSSED_BOX);
        o->color((Fl_Color)204);
        o->selection_color(FL_DARK1);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->user_data((void*)(&s));
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
        Fl_Group::current()->resizable(o);
      }
      { axisBox* o = s.abcissaBox = new axisBox(48, 290, 512, 20);
        o->box(FL_NO_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color(FL_BACKGROUND_COLOR);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
      }
      { axisBox* o = s.ordinateBox = new axisBox(0, 30, 48, 260);
        o->box(FL_NO_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color(FL_BACKGROUND_COLOR);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
      }
      o->end();
      Fl_Group::current()->resizable(o);
    }
    { Fl_Group* o = new Fl_Group(0, 310, 556, 30);
      { Fl_Box* o = new Fl_Box(270, 310, 50, 30);
        Fl_Group::current()->resizable(o);
      }
      { Fl_Group* o = new Fl_Group(0, 312, 272, 28);
        { Fl_Output* o = s.xvalue = new Fl_Output(126, 312, 49, 28, "component:");
          o->tooltip("Component/depth index");
        }
        { Fl_Output* o = s.yvalue = new Fl_Output(222, 312, 50, 28, "value:");
          o->tooltip("component value");
        }
        o->end();
      }
      { Fl_Group* o = new Fl_Group(390, 310, 166, 30, "Display is:");
        o->align(FL_ALIGN_LEFT);
        { Fl_Check_Button* o = s.absolute = new Fl_Check_Button(472, 310, 84, 30, "Absolute");
          o->tooltip("Display fixed range (0-255)");
          o->type(102);
          o->down_box(FL_DIAMOND_DOWN_BOX);
          o->selection_color((Fl_Color)42);
          o->callback((Fl_Callback*)absolutecheck_cb, (void*)(&s));
        }
        { Fl_Check_Button* o = s.relative = new Fl_Check_Button(390, 310, 84, 30, "Relative");
          o->tooltip("Fit to display range");
          o->type(102);
          o->down_box(FL_DIAMOND_DOWN_BOX);
          o->selection_color((Fl_Color)42);
          o->callback((Fl_Callback*)relativecheck_cb, (void*)(&s));
        }
        o->end();
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(0, 340, 560, 40);
      { Fl_Group* o = new Fl_Group(260, 340, 300, 40);
        { Fl_Box* o = new Fl_Box(459, 344, 99, 36);
          o->box(FL_THIN_DOWN_FRAME);
        }
        { Fl_Return_Button* o = s.OKButton = new Fl_Return_Button(463, 347, 91, 30, "Dismiss  ");
          o->tooltip("Close window");
          o->callback((Fl_Callback*)okbutton_cb, (void*)(&s));
          w->hotspot(o);
        }
        { Fl_Button* o = s.saveButton = new Fl_Button(360, 348, 91, 29, "Save");
          o->tooltip("Save to text or binary format");
          o->callback((Fl_Callback*)savebutton_cb, (void*)(&s));
        }
        { Fl_Button* o = s.printButton = new Fl_Button(260, 348, 91, 29, "Print");
          o->tooltip("Print spectrum (or save to PS)");
          o->callback((Fl_Callback*)printbutton_cb, (void*)(&s));
        }
        o->end();
      }
      { Fl_Group* o = new Fl_Group(0, 340, 250, 40);
        o->end();
        Fl_Group::current()->resizable(o);
      }
      o->end();
    }
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef spectra_hxx
#define spectra_hxx
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include "spectraBox.hxx"
#include <FL/Fl_Group.H>
#include <FL/Fl_Output.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Check_Button.H>
extern void absolutecheck_cb(Fl_Check_Button*, spectra*);
extern void relativecheck_cb(Fl_Check_Button*, spectra*);
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, spectra*);
#include <FL/Fl_Button.H>
extern void savebutton_cb(Fl_Button*, spectra*);
extern void printbutton_cb(Fl_Button*, spectra*);
Fl_Double_Window* spectra_panel(spectra &s);
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "savespectdlg.hxx"

Fl_Menu_Item menu_svsp[] = {
 {"TIFF", 0,  (Fl_Callback*)chosenSpectFormat_cb, (void*)(0), 0, 0, 4, 12, 56},
 {"Z-IMAGE", 0,  (Fl_Callback*)chosenSpectFormat_cb, (void*)(1), 0, 0, 4, 12, 56},
 {"Euro", 0,  (Fl_Callback*)chosenSpectFormat_cb, (void*)(2), 0, 0, 4, 12, 56},
 {0}
};

Fl_Window* savespect_panel(savespect &svsp) {
  Fl_Window* w;
  { Fl_Window* o = svsp.saveWindow = new Fl_Window(440, 150, "Save one-dimensional data");
    w = o;
    o->box(FL_ENGRAVED_BOX);
    { Fl_Group* o = svsp.inputGroup = new Fl_Group(130, 20, 300, 30);
      o->selection_color((Fl_Color)43);
      o->align(129);
      { Fl_Input* o = svsp.filenameInput = new Fl_Input(130, 20, 230, 30, "Filename:");
        o->color((Fl_Color)43);
        o->selection_color((Fl_Color)43);
        o->labelfont(7);
        o->textfont(4);
        o->textsize(12);
        o->callback((Fl_Callback*)filenameinput_cb, (void*)(&svsp));
      }
      { Fl_Button* o = svsp.browseButton = new Fl_Button(360, 20, 70, 30, "Browse...");
        o->callback((Fl_Callback*)browsebutton_cb, (void*)(&svsp));
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(130, 64, 301, 26);
      { Fl_Choice* o = svsp.formatChoice = new Fl_Choice(130, 64, 90, 26, "Format:");
        o->down_box(FL_BORDER_BOX);
        o->labelfont(7);
        o->textfont(4);
        o->textsize(12);
        o->callback((Fl_Callback*)formatchoice_cb, (void*)(&svsp));
        o->align(132);
        o->menu(menu_svsp);
      }
      o->end();
    }
    { Fl_Button* o = svsp.CancelButton = new Fl_Button(30, 107, 80, 30, "Cancel");
      o->callback((Fl_Callback*)cancelbutton_cb, (void*)(&svsp));
      o->shortcut("^[");
    }
    { Fl_Group* o = new Fl_Group(324, 104, 110, 46);
      { Fl_Box* o = new Fl_Box(344, 104, 88, 36);
        o->box(FL_THIN_DOWN_FRAME);
      }
      { Fl_Return_Button* o = svsp.OKButton = new Fl_Return_Button(348, 107, 80, 30, "Save");
        o->callback((Fl_Callback*)okbutton_cb, (void*)(&svsp));
        w->hotspot(o);
      }
      o->end();
    }
    o->set_modal();
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef savespectdlg_hxx
#define savespectdlg_hxx
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "saveSpect.hxx"
#include <FL/Fl_Group.H>
#include <FL/Fl_Input.H>
extern void filenameinput_cb(Fl_Input*, savespect*);
#include <FL/Fl_Button.H>
extern void browsebutton_cb(Fl_Button*, savespect*);
#include <FL/Fl_Choice.H>
extern void formatchoice_cb(Fl_Choice*, savespect*);
extern void chosenSpectFormat_cb(Fl_Menu_*, void*);
extern void cancelbutton_cb(Fl_Button*, savespect*);
#include <FL/Fl_Box.H>
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, savespect*);
Fl_Window* savespect_panel(savespect &svsp);
extern Fl_Menu_Item menu_svsp[];
#define tiffmenuitem (menu_svsp+0)
#define zimagemenuitem (menu_svsp+1)
#define euromenuitem (menu_svsp+2)
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "prntspectdlg.hxx"

Fl_Window* printspect_panel(printspect &s) {
  Fl_Window* w;
  { Fl_Window* o = s.prefWindow = new Fl_Window(430, 330, "Print one-dimensional data");
    w = o;
    o->box(FL_ENGRAVED_BOX);
    { Fl_Box* o = new Fl_Box(0, 164, 430, 106);
      o->box(FL_ENGRAVED_BOX);
    }
    { Fl_Group* o = s.printtypeGroup = new Fl_Group(150, 10, 260, 30, "Print to:");
      o->labelfont(7);
      o->align(FL_ALIGN_LEFT);
      { Fl_Check_Button* o = s.printerCheck = new Fl_Check_Button(150, 10, 100, 30, "Printer");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)17);
        o->callback((Fl_Callback*)printercheck_cb, (void*)(&s));
      }
      { Fl_Check_Button* o = s.fileCheck = new Fl_Check_Button(250, 10, 100, 30, "File");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)17);
        o->callback((Fl_Callback*)filecheck_cb, (void*)(&s));
      }
      o->end();
    }
    { Fl_Group* o = s.inputGroup = new Fl_Group(150, 40, 265, 110);
      { Fl_Input* o = s.commandInput = new Fl_Input(150, 40, 260, 30, "Print command:");
        o->color((Fl_Color)43);
        o->selection_color((Fl_Color)43);
        o->labelfont(7);
        o->textfont(4);
        o->textsize(12);
        o->callback((Fl_Callback*)commandInput_cb, (void*)(&s));
        o->align(132);
      }
      { Fl_Input* o = s.filenameInput = new Fl_Input(150, 80, 190, 30, "File name:");
        o->selection_color((Fl_Color)43);
        o->labelfont(7);
        o->labelcolor((Fl_Color)31);
        o->textfont(4);
        o->textsize(12);
        o->textcolor(31);
        o->callback((Fl_Callback*)filenameInput_cb, (void*)(&s));
        o->align(132);
        o->deactivate();
      }
      { Fl_Button* o = s.browseButton = new Fl_Button(340, 80, 70, 30, "Browse...");
        o->labelcolor((Fl_Color)31);
        o->callback((Fl_Callback*)browsebutton_cb, (void*)(&s));
        o->deactivate();
      }
      { Fl_Input* o = s.titleInput = new Fl_Input(150, 120, 260, 30, "Page title:");
        o->color((Fl_Color)43);
        o->selection_color((Fl_Color)43);
        o->labelfont(7);
        o->textfont(4);
        o->textsize(12);
        o->callback((Fl_Callback*)titleInput_cb, (void*)(&s));
        o->align(132);
      }
      o->end();
    }
    { Fl_Group* o = s.orientationGroup = new Fl_Group(150, 165, 200, 30, "Orientation:");
      o->labelfont(7);
      o->align(FL_ALIGN_LEFT);
      { Fl_Check_Button* o = s.portraitCheck = new Fl_Check_Button(150, 165, 100, 30, "Portrait");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)17);
        o->callback((Fl_Callback*)portraitcheck_cb, (void*)(&s));
      }
      { Fl_Check_Button* o = s.landscapeCheck = new Fl_Check_Button(250, 165, 100, 30, "Landscape");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)17);
        o->callback((Fl_Callback*)landscapecheck_cb, (void*)(&s));
      }
      o->end();
    }
    { Fl_Group* o = s.papersizeGroup = new Fl_Group(150, 195, 268, 30, "Paper size:");
      o->labelfont(7);
      o->align(FL_ALIGN_LEFT);
      { Fl_Check_Button* o = s.A4Check = new Fl_Check_Button(150, 195, 100, 30, "A4");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)17);
        o->callback((Fl_Callback*)a4check_cb, (void*)(&s));
      }
      { Fl_Check_Button* o = s.letterCheck = new Fl_Check_Button(250, 195, 100, 30, "Letter");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)17);
        o->callback((Fl_Callback*)lettercheck_cb, (void*)(&s));
      }
      { Fl_Check_Button* o = s.A3Check = new Fl_Check_Button(350, 195, 50, 30, "A3");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)17);
        o->callback((Fl_Callback*)a3check_cb, (void*)(&s));
      }
      o->end();
    }
    { Fl_Button* o = s.CancelButton = new Fl_Button(30, 287, 80, 30, "Cancel");
      o->callback((Fl_Callback*)cancelbutton_cb, (void*)(&s));
      o->shortcut("^[");
    }
    { Fl_Input* o = s.nbcopiesInput = new Fl_Input(150, 230, 40, 30, "Nb copies:");
      o->type(2);
      o->color((Fl_Color)43);
      o->selection_color((Fl_Color)43);
      o->labelfont(7);
      o->textfont(4);
      o->textsize(12);
      o->callback((Fl_Callback*)nbcopies_cb, (void*)(&s));
    }
    { Fl_Group* o = s.joinGroup = new Fl_Group(250, 230, 170, 30, "Join:");
      o->labelfont(7);
      o->align(FL_ALIGN_LEFT);
      { Fl_Check_Button* o = s.linesCheck = new Fl_Check_Button(250, 230, 80, 30, "Lines");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)17);
        o->callback((Fl_Callback*)linescheck_cb, (void*)(&s));
      }
      { Fl_Check_Button* o = s.splinesCheck = new Fl_Check_Button(350, 230, 70, 30, "Splines");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color((Fl_Color)17);
        o->callback((Fl_Callback*)splinescheck_cb, (void*)(&s));
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(290, 284, 110, 46);
      { Fl_Box* o = new Fl_Box(310, 284, 88, 36);
        o->box(FL_THIN_DOWN_FRAME);
      }
      { Fl_Return_Button* o = s.OKButton = new Fl_Return_Button(314, 287, 80, 30, "Print");
        o->callback((Fl_Callback*)okbutton_cb, (void*)(&s));
        w->hotspot(o);
      }
      o->end();
    }
    { Fl_Button* o = s.previewButton = new Fl_Button(210, 287, 80, 30, "Preview");
      o->type(1);
      o->down_box(FL_DOWN_BOX);
      o->callback((Fl_Callback*)previewbutton_cb, (void*)(&s));
      o->when(FL_WHEN_CHANGED);
      o->shortcut("p");
    }
    o->set_modal();
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef prntspectdlg_hxx
#define prntspectdlg_hxx
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "printSpect.hxx"
#include <FL/Fl_Box.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Check_Button.H>
extern void printercheck_cb(Fl_Check_Button*, printspect*);
extern void filecheck_cb(Fl_Check_Button*, printspect*);
#include <FL/Fl_Input.H>
extern void commandInput_cb(Fl_Input*, printspect*);
extern void filenameInput_cb(Fl_Input*, printspect*);
#include <FL/Fl_Button.H>
extern void browsebutton_cb(Fl_Button*, printspect*);
extern void titleInput_cb(Fl_Input*, printspect*);
extern void portraitcheck_cb(Fl_Check_Button*, printspect*);
extern void landscapecheck_cb(Fl_Check_Button*, printspect*);
extern void a4check_cb(Fl_Check_Button*, printspect*);
extern void lettercheck_cb(Fl_Check_Button*, printspect*);
extern void a3check_cb(Fl_Check_Button*, printspect*);
extern void cancelbutton_cb(Fl_Button*, printspect*);
extern void nbcopies_cb(Fl_Input*, printspect*);
extern void linescheck_cb(Fl_Check_Button*, printspect*);
extern void splinescheck_cb(Fl_Check_Button*, printspect*);
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, printspect*);
extern void previewbutton_cb(Fl_Button*, printspect*);
Fl_Window* printspect_panel(printspect &s);
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "profile.hxx"

Fl_Double_Window* profile_panel(profile &s) {
  Fl_Double_Window* w;
  { Fl_Double_Window* o = s.profileWindow = new Fl_Double_Window(622, 398, "Display Profile");
    w = o;
    o->box(FL_ENGRAVED_BOX);
    o->labeltype(FL_NORMAL_LABEL);
    o->align(FL_ALIGN_LEFT);
    { Fl_Group* o = new Fl_Group(-3, 309, 621, 79);
      { Fl_Group* o = new Fl_Group(306, 312, 312, 74);
        { Fl_Group* o = new Fl_Group(306, 312, 312, 30, "RGB Range is:");
          o->labelfont(7);
          o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
          { Fl_Check_Button* o = s.absolute = new Fl_Check_Button(520, 312, 98, 30, "Absolute");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color((Fl_Color)42);
            o->callback((Fl_Callback*)absolutecheck_cb, (void*)(&s));
          }
          { Fl_Check_Button* o = s.relative = new Fl_Check_Button(435, 312, 87, 30, "Relative");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color((Fl_Color)42);
            o->callback((Fl_Callback*)relativecheck_cb, (void*)(&s));
          }
          o->end();
        }
        { Fl_Group* o = new Fl_Group(308, 350, 310, 36);
          { Fl_Box* o = new Fl_Box(507, 350, 99, 36);
            o->box(FL_THIN_DOWN_FRAME);
          }
          { Fl_Return_Button* o = s.OKButton = new Fl_Return_Button(511, 353, 91, 30, "Dismiss  ");
            o->callback((Fl_Callback*)okbutton_cb, (void*)(&s));
            w->hotspot(o);
          }
          { Fl_Button* o = s.saveButton = new Fl_Button(408, 354, 91, 29, "Save");
            o->callback((Fl_Callback*)savebutton_cb, (void*)(&s));
          }
          { Fl_Button* o = s.printButton = new Fl_Button(308, 354, 91, 29, "Print");
            o->callback((Fl_Callback*)printbutton_cb, (void*)(&s));
          }
          o->end();
        }
        o->end();
      }
      { Fl_Box* o = new Fl_Box(252, 312, 54, 75);
        Fl_Group::current()->resizable(o);
      }
      { Fl_Group* o = new Fl_Group(-3, 309, 255, 79);
        s.xvalue = new Fl_Output(88, 318, 68, 20, "x:");
        s.yvalue = new Fl_Output(88, 340, 68, 20, "y:");
        s.zvalue = new Fl_Output(88, 362, 68, 20, "z:");
        s.Rvalue = new Fl_Output(181, 318, 69, 20, "R:");
        s.Gvalue = new Fl_Output(181, 340, 69, 18, "G:");
        s.Bvalue = new Fl_Output(181, 362, 69, 20, "B:");
        o->end();
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(0, -144, 627, 454);
      { Fl_Group* o = new Fl_Group(0, 0, 618, 30);
        { Fl_Output* o = s.profileTitle = new Fl_Output(120, 3, 350, 24);
          o->box(FL_EMBOSSED_BOX);
          o->selection_color(FL_DARK1);
          o->textcolor(36);
          o->align(FL_ALIGN_CENTER);
          Fl_Group::current()->resizable(o);
        }
        { Fl_Check_Button* o = s.keepline = new Fl_Check_Button(582, 3, 36, 27, "Keep line:");
          o->down_box(FL_ROUND_DOWN_BOX);
          o->labelfont(7);
          o->callback((Fl_Callback*)keepline_cb, (void*)(&s));
          o->align(FL_ALIGN_LEFT);
        }
        new Fl_Box(0, 3, 120, 24);
        o->end();
      }
      { myProfileBox* o = s.profileBox = new myProfileBox(66, 30, 537, 260);
        o->box(FL_EMBOSSED_BOX);
        o->color((Fl_Color)93);
        o->selection_color(FL_DARK1);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->user_data((void*)(&s));
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
        Fl_Group::current()->resizable(o);
      }
      { axisBox* o = s.abcissaBox = new axisBox(66, 290, 537, 20, "profile length");
        o->box(FL_NO_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color(FL_BACKGROUND_COLOR);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(10);
        o->labelcolor(FL_BLACK);
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
      }
      { axisBox* o = s.ordinateBox = new axisBox(0, 30, 66, 260, "profile  values");
        o->box(FL_NO_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color(FL_BACKGROUND_COLOR);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(10);
        o->labelcolor(FL_BLACK);
        o->align(136|FL_ALIGN_INSIDE);
        o->when(FL_WHEN_RELEASE);
      }
      o->end();
      Fl_Group::current()->resizable(o);
    }
    o->end();
  }
  return w;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef profile_hxx
#define profile_hxx
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include "profileBox.hxx"
#include <FL/Fl_Group.H>
#include <FL/Fl_Check_Button.H>
extern void absolutecheck_cb(Fl_Check_Button*, profile*);
extern void relativecheck_cb(Fl_Check_Button*, profile*);
#include <FL/Fl_Box.H>
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, profile*);
#include <FL/Fl_Button.H>
extern void savebutton_cb(Fl_Button*, profile*);
extern void printbutton_cb(Fl_Button*, profile*);
#include <FL/Fl_Output.H>
extern void keepline_cb(Fl_Check_Button*, profile*);
Fl_Double_Window* profile_panel(profile &s);
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "userprefdlg.hxx"

Fl_Menu_Item menu_up[] = {
 {"Automatic", 0,  0, 0, 0, 0, 0, 14, 56},
 {"A5", 0,  0, 0, 0, 0, 0, 14, 56},
 {"B5", 0,  0, 0, 4, 0, 0, 14, 56},
 {"A4", 0,  0, 0, 4, 0, 0, 14, 56},
 {"Letter", 0,  0, 0, 4, 0, 0, 14, 56},
 {"Legal", 0,  0, 0, 4, 0, 0, 14, 56},
 {"A3", 0,  0, 0, 4, 0, 0, 14, 56},
 {0}
};

Fl_Window* userprefs_panel(userprefs &up) {
  Fl_Window* w;
  { Fl_Window* o = up.userprefsWindow = new Fl_Window(575, 330, "User Preferences");
    w = o;
    o->box(FL_ENGRAVED_BOX);
    { Fl_Tabs* o = new Fl_Tabs(5, 25, 560, 245);
      o->box(FL_THIN_UP_FRAME);
      { Fl_Group* o = up.generalGroup = new Fl_Group(10, 55, 550, 210, "General");
        o->box(FL_FLAT_BOX);
        o->hide();
        { Fl_Round_Button* o = up.smoothWhenZoomoutButton = new Fl_Round_Button(204, 110, 25, 25, "Smooth when zooming out: ");
          o->tooltip("Linear interpolation for zoom factors < 1.0");
          o->down_box(FL_ROUND_DOWN_BOX);
          o->callback((Fl_Callback*)smoothzoomout_cb, (void*)(&up));
          o->align(FL_ALIGN_LEFT);
        }
        { Fl_Group* o = new Fl_Group(200, 135, 300, 30, "Default zoom behaviour is:");
          o->tooltip("Constrain (or not)  zoom box to same aspect ratio as main window");
          o->align(FL_ALIGN_LEFT);
          { Fl_Check_Button* o = up.constrainZoomCheck = new Fl_Check_Button(200, 135, 30, 30, "Constrained");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->value(1);
            o->selection_color(FL_DARK3);
            o->callback((Fl_Callback*)constrainedzoom_cb, (void*)(&up));
            o->align(FL_ALIGN_RIGHT);
          }
          { Fl_Check_Button* o = up.unconstrainZoomCheck = new Fl_Check_Button(325, 135, 30, 30, "Unconstrained");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color(FL_DARK3);
            o->callback((Fl_Callback*)unconstrainedzoom_cb, (void*)(&up));
            o->align(FL_ALIGN_RIGHT);
          }
          o->end();
        }
        { Fl_Group* o = new Fl_Group(202, 75, 353, 30);
          { Fl_Input* o = up.pathToPrefsInput = new Fl_Input(205, 80, 280, 25, "Path to preference file: ");
            o->tooltip("Changing that does nothing -- information only");
            o->textfont(4);
            o->textsize(12);
            o->value("preferences");
          }
          { Fl_Button* o = up.prefBrowse = new Fl_Button(485, 80, 70, 25, "Browse");
            o->callback((Fl_Callback*)prefbrowse_cb, (void*)(&up));
            o->deactivate();
          }
          o->end();
        }
        { Fl_Round_Button* o = up.keepPointsButton = new Fl_Round_Button(530, 110, 25, 25, "Keep points when switching images: ");
          o->tooltip("Keep points (as in pointfiles) on display");
          o->down_box(FL_ROUND_DOWN_BOX);
          o->callback((Fl_Callback*)keeppoints_cb, (void*)(&up));
          o->align(FL_ALIGN_LEFT);
        }
        { Fl_Value_Slider* o = up.transparencyValueSlider = new Fl_Value_Slider(200, 165, 355, 25, "Overlay transparency:");
          o->tooltip("0 = fully transparent ; 1= fully opaque");
          o->type(1);
          o->step(0.05);
          o->callback((Fl_Callback*)transparency_cb, (void*)(&up));
          o->align(FL_ALIGN_LEFT);
          o->when(FL_WHEN_RELEASE);
        }
        o->end();
      }
      { Fl_Group* o = new Fl_Group(10, 55, 550, 210, "Postscript");
        o->box(FL_FLAT_BOX);
        { Fl_Group* o = new Fl_Group(170, 70, 385, 25);
          { Fl_Input* o = up.pathToGsInput = new Fl_Input(170, 70, 315, 25, "Path to Ghostscript:");
            o->tooltip("Path to postscript interpreter");
            o->textfont(4);
            o->textsize(12);
            o->callback((Fl_Callback*)pathtogsinput_cb, (void*)(&up));
            o->value("gs");
          }
          { Fl_Button* o = up.gsBrowse = new Fl_Button(485, 70, 70, 25, "Browse");
            o->callback((Fl_Callback*)gsbrowse_cb, (void*)(&up));
            o->deactivate();
          }
          o->end();
        }
        { Fl_Group* o = new Fl_Group(170, 105, 130, 25);
          o->align(FL_ALIGN_CENTER);
          { Fl_Int_Input* o = up.renderInput = new Fl_Int_Input(170, 105, 75, 25, "Render at:");
            o->tooltip("Resolution at which the file is rendered");
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color(FL_BACKGROUND2_COLOR);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(14);
            o->labelcolor(FL_BLACK);
            o->textfont(4);
            o->textsize(12);
            o->callback((Fl_Callback*)renderinput_cb, (void*)(&up));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_RELEASE);
            o->value("300");
          }
          { Fl_Box* o = new Fl_Box(245, 105, 55, 25, "dpi");
            o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
          }
          o->end();
        }
        { Fl_Group* o = new Fl_Group(355, 105, 130, 25);
          { Fl_Int_Input* o = up.displayInput = new Fl_Int_Input(355, 105, 75, 25, "display at:");
            o->tooltip("Display resolution");
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color(FL_BACKGROUND2_COLOR);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(14);
            o->labelcolor(FL_BLACK);
            o->textfont(4);
            o->textsize(12);
            o->callback((Fl_Callback*)displayinput_cb, (void*)(&up));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_RELEASE);
            o->value("150");
          }
          { Fl_Box* o = new Fl_Box(430, 105, 55, 25, "dpi");
            o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
          }
          o->end();
        }
        { Fl_Group* o = new Fl_Group(170, 135, 275, 25, "Render in:");
          o->tooltip("Use colour except if speed is an issue");
          o->align(132);
          { Fl_Check_Button* o = up.colourCheck = new Fl_Check_Button(170, 135, 70, 25, "colour");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color(FL_DARK3);
            o->callback((Fl_Callback*)colourcheck_cb, (void*)(&up));
          }
          { Fl_Check_Button* o = up.greyCheck = new Fl_Check_Button(270, 135, 70, 25, "grey");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->selection_color(FL_DARK3);
            o->callback((Fl_Callback*)greycheck_cb, (void*)(&up));
          }
          { Fl_Check_Button* o = up.bwCheck = new Fl_Check_Button(355, 135, 90, 25, "binary b&&w");
            o->type(102);
            o->down_box(FL_DIAMOND_DOWN_BOX);
            o->value(1);
            o->selection_color(FL_DARK3);
            o->callback((Fl_Callback*)bwcheck_cb, (void*)(&up));
          }
          o->end();
        }
        { Fl_Group* o = new Fl_Group(105, 165, 325, 25);
          { Fl_Round_Button* o = up.antialiasButton = new Fl_Round_Button(355, 165, 20, 25, "Antialias:");
            o->tooltip("Smoothing at the rendering level");
            o->down_box(FL_ROUND_DOWN_BOX);
            o->value(1);
            o->callback((Fl_Callback*)aabutton_cb, (void*)(&up));
            o->align(FL_ALIGN_LEFT);
          }
          { Fl_Round_Button* o = up.smoothButton = new Fl_Round_Button(170, 165, 20, 25, "Smooth:");
            o->tooltip("Smooth at the display level");
            o->down_box(FL_ROUND_DOWN_BOX);
            o->value(1);
            o->callback((Fl_Callback*)smoothbutton_cb, (void*)(&up));
            o->align(FL_ALIGN_LEFT);
          }
          o->end();
        }
        { Fl_Choice* o = up.boundingChoice = new Fl_Choice(170, 195, 125, 25, "Bounding box:");
          o->tooltip("Set this if the display is truncated");
          o->down_box(FL_BORDER_BOX);
          o->callback((Fl_Callback*)boundingchoice_cb, (void*)(&up));
          o->menu(menu_up);
        }
        { Fl_Group* o = new Fl_Group(170, 230, 385, 25);
          { Fl_Input* o = up.pathToPSPreviewer = new Fl_Input(170, 230, 315, 25, "Path to previewer:");
            o->tooltip("Postscript previewer (for print preview)");
            o->textfont(4);
            o->textsize(12);
            o->callback((Fl_Callback*)pathtogsinput_cb, (void*)(&up));
            o->value("ghostview");
          }
          { Fl_Button* o = up.gvBrowse = new Fl_Button(485, 230, 70, 25, "Browse");
            o->callback((Fl_Callback*)gsbrowse_cb, (void*)(&up));
            o->deactivate();
          }
          o->end();
        }
        o->end();
      }
      { Fl_Group* o = new Fl_Group(10, 55, 550, 210, "Server");
        o->box(FL_FLAT_BOX);
        o->hide();
        { Fl_Group* o = new Fl_Group(25, 70, 530, 55);
          o->box(FL_ENGRAVED_BOX);
          o->labelfont(10);
          { Fl_Slider* o = up.pollFrequencySlider = new Fl_Slider(125, 75, 320, 25, "Poll frequency");
            o->tooltip("Influences speed of image loadup via server");
            o->type(1);
            o->callback((Fl_Callback*)pollslider_cb, (void*)(&up));
            o->align(FL_ALIGN_LEFT);
          }
          { Fl_Float_Input* o = up.pollFrequencyInput = new Fl_Float_Input(455, 75, 65, 25);
            o->type(1);
            o->box(FL_DOWN_BOX);
            o->color(FL_BACKGROUND2_COLOR);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(14);
            o->labelcolor(FL_BLACK);
            o->callback((Fl_Callback*)pollinput_cb, (void*)(&up));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->value("100");
          }
          new Fl_Box(520, 70, 35, 30, "Hz");
          new Fl_Box(115, 100, 25, 25, "10");
          new Fl_Box(420, 100, 40, 25, "1000");
          new Fl_Box(275, 100, 25, 25, "100");
          o->end();
        }
        { Fl_Group* o = new Fl_Group(25, 155, 155, 45, "Security");
          o->box(FL_ENGRAVED_BOX);
          o->labelfont(10);
          { Fl_Round_Button* o = up.securityPasswordButton = new Fl_Round_Button(155, 155, 25, 25, "Require password");
            o->down_box(FL_ROUND_DOWN_BOX);
            o->callback((Fl_Callback*)requirepassword_cb, (void*)(&up));
            o->align(FL_ALIGN_LEFT);
            o->deactivate();
          }
          { Fl_Round_Button* o = up.securityLocalhostButton = new Fl_Round_Button(155, 175, 25, 25, "Localhost only");
            o->down_box(FL_ROUND_DOWN_BOX);
            o->callback((Fl_Callback*)localhostonly_cb, (void*)(&up));
            o->align(FL_ALIGN_LEFT);
            o->deactivate();
          }
          o->end();
        }
        { Fl_Box* o = new Fl_Box(190, 165, 255, 25, "<- these settings not available yet");
          o->labelfont(3);
          o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        }
        o->end();
      }
      { Fl_Group* o = new Fl_Group(10, 55, 550, 210, "Expert");
        o->box(FL_FLAT_BOX);
        o->hide();
        { Fl_Round_Button* o = up.hideMenuButton = new Fl_Round_Button(100, 65, 25, 25, "Hide menu");
          o->tooltip("Will hide the main menu");
          o->down_box(FL_ROUND_DOWN_BOX);
          o->callback((Fl_Callback*)hidemenu_cb, (void*)(&up));
          o->align(FL_ALIGN_LEFT);
        }
        o->end();
      }
      { Fl_Group* o = new Fl_Group(10, 50, 550, 215, "Debug");
        o->box(FL_FLAT_BOX);
        o->hide();
        { Fl_Box* o = new Fl_Box(51, 74, 500, 20, "Do not modify anything here unless you know what you are doing!!");
          o->box(FL_ENGRAVED_BOX);
          o->labelfont(3);
        }
        { Fl_Round_Button* o = up.showDebugMsgButton = new Fl_Round_Button(275, 110, 30, 25, "Show debug messages");
          o->down_box(FL_ROUND_DOWN_BOX);
          o->callback((Fl_Callback*)showdebug_cb, (void*)(&up));
          o->align(FL_ALIGN_LEFT);
        }
        { Fl_Round_Button* o = up.stopAfterDebugMsgButton = new Fl_Round_Button(275, 135, 30, 25, "Stop after each debug message");
          o->down_box(FL_ROUND_DOWN_BOX);
          o->callback((Fl_Callback*)stopdebug_cb, (void*)(&up));
          o->align(FL_ALIGN_LEFT);
        }
        { Fl_Input* o = up.xorValueBreakLineInput = new Fl_Input(280, 170, 120, 25, "XOR value for `break\' lines:");
          o->textfont(4);
          o->textsize(12);
          o->callback((Fl_Callback*)xorbreakline_cb, (void*)(&up));
          o->value("0xffffffff");
        }
        { Fl_Input* o = up.xorValueProfileLineInput = new Fl_Input(280, 200, 120, 25, "XOR value for profile lines:");
          o->textfont(4);
          o->textsize(12);
          o->callback((Fl_Callback*)xorprofileline_cb, (void*)(&up));
          o->value("0xffffffff");
        }
        { Fl_Box* o = new Fl_Box(295, 116, 265, 15, "This item won\'t be saved");
          o->labelfont(2);
          o->labelsize(12);
          o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        }
        { Fl_Box* o = new Fl_Box(295, 141, 265, 15, "This item won\'t be saved");
          o->labelfont(2);
          o->labelsize(12);
          o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        }
        o->end();
      }
      o->value(up.generalGroup);
      o->end();
    }
    { Fl_Group* o = new Fl_Group(265, 285, 300, 35);
      { Fl_Group* o = new Fl_Group(470, 285, 95, 35);
        o->box(FL_THIN_DOWN_FRAME);
        { Fl_Return_Button* o = up.OKButton = new Fl_Return_Button(475, 290, 85, 25, "OK");
          o->callback((Fl_Callback*)okbutton_cb, (void*)(&up));
        }
        o->end();
      }
      { Fl_Button* o = up.saveButton = new Fl_Button(370, 290, 90, 25, "Save");
        o->callback((Fl_Callback*)savebutton_cb, (void*)(&up));
      }
      { Fl_Button* o = up.cancelButton = new Fl_Button(265, 290, 95, 25, "Cancel");
        o->callback((Fl_Callback*)cancelbutton_cb, (void*)(&up));
      }
      o->end();
    }
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef userprefdlg_hxx
#define userprefdlg_hxx
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "userPrefs.hxx"
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Round_Button.H>
extern void smoothzoomout_cb(Fl_Round_Button*, userprefs*);
#include <FL/Fl_Check_Button.H>
extern void constrainedzoom_cb(Fl_Check_Button*, userprefs*);
extern void unconstrainedzoom_cb(Fl_Check_Button*, userprefs*);
#include <FL/Fl_Input.H>
#include <FL/Fl_Button.H>
extern void prefbrowse_cb(Fl_Button*, userprefs*);
extern void keeppoints_cb(Fl_Round_Button*, userprefs*);
#include <FL/Fl_Value_Slider.H>
extern void transparency_cb(Fl_Value_Slider*, userprefs*);
extern void pathtogsinput_cb(Fl_Input*, userprefs*);
extern void gsbrowse_cb(Fl_Button*, userprefs*);
extern void renderinput_cb(Fl_Int_Input*, userprefs*);
#include <FL/Fl_Box.H>
extern void displayinput_cb(Fl_Int_Input*, userprefs*);
extern void colourcheck_cb(Fl_Check_Button*, userprefs*);
extern void greycheck_cb(Fl_Check_Button*, userprefs*);
extern void bwcheck_cb(Fl_Check_Button*, userprefs*);
extern void aabutton_cb(Fl_Round_Button*, userprefs*);
extern void smoothbutton_cb(Fl_Round_Button*, userprefs*);
#include <FL/Fl_Choice.H>
extern void boundingchoice_cb(Fl_Choice*, userprefs*);
#include <FL/Fl_Slider.H>
extern void pollslider_cb(Fl_Slider*, userprefs*);
extern void pollinput_cb(Fl_Float_Input*, userprefs*);
extern void requirepassword_cb(Fl_Round_Button*, userprefs*);
extern void localhostonly_cb(Fl_Round_Button*, userprefs*);
extern void hidemenu_cb(Fl_Round_Button*, userprefs*);
extern void showdebug_cb(Fl_Round_Button*, userprefs*);
extern void stopdebug_cb(Fl_Round_Button*, userprefs*);
extern void xorbreakline_cb(Fl_Input*, userprefs*);
extern void xorprofileline_cb(Fl_Input*, userprefs*);
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, userprefs*);
extern void savebutton_cb(Fl_Button*, userprefs*);
extern void cancelbutton_cb(Fl_Button*, userprefs*);
Fl_Window* userprefs_panel(userprefs &up);
extern Fl_Menu_Item menu_up[];
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "tmpmsgdlg.hxx"

static void cb_Dismiss(Fl_Return_Button* o, void*) {
  ((Fl_Window*)(o->parent()))->hide();
}

Fl_Window* tmpmsg_panel(tmpmsg &tm) {
  Fl_Window* w;
  { Fl_Window* o = tm.outputWindow = new Fl_Window(520, 335, "Warning message ring");
    w = o;
    o->color(FL_SELECTION_COLOR);
    { Fl_Output* o = tm.MessageOutput = new Fl_Output(20, 25, 480, 265, "Warning");
      o->type(12);
      o->box(FL_ENGRAVED_BOX);
      o->color((Fl_Color)197);
      o->labelfont(9);
      o->labelsize(16);
      o->align(FL_ALIGN_TOP);
      Fl_Group::current()->resizable(o);
    }
    { Fl_Return_Button* o = new Fl_Return_Button(395, 300, 105, 25, "Dismiss");
      o->callback((Fl_Callback*)cb_Dismiss);
    }
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef tmpmsgdlg_hxx
#define tmpmsgdlg_hxx
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "tmpMsg.hxx"
#include <FL/Fl_Output.H>
#include <FL/Fl_Return_Button.H>
Fl_Window* tmpmsg_panel(tmpmsg &tm);
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "bivdlg.hxx"

Fl_Menu_Item menu_bh[] = {
 {"red", 0,  0, 0, 0, 0, 0, 14, 56},
 {"green", 0,  0, 0, 0, 0, 0, 14, 56},
 {"yellow", 0,  0, 0, 0, 0, 0, 14, 56},
 {"blue", 0,  0, 0, 0, 0, 0, 14, 56},
 {"magenta", 0,  0, 0, 0, 0, 0, 14, 56},
 {"cyan", 0,  0, 0, 0, 0, 0, 14, 56},
 {0}
};

Fl_Window* bivhist_panel(bivhist &bh) {
  Fl_Window* w;
  { Fl_Window* o = bh.bivhistWindow = new Fl_Window(800, 600, "Bivariate histogram");
    w = o;
    { Fl_Group* o = new Fl_Group(0, 45, 685, 510);
      { Fl_Scroll* o = bh.bivhistScroll = new Fl_Scroll(65, 45, 620, 480);
        o->box(FL_THIN_DOWN_BOX);
        o->color((Fl_Color)53);
        o->end();
        Fl_Group::current()->resizable(o);
      }
      { axisBox* o = bh.absissaBox = new axisBox(65, 526, 620, 24, "X");
        o->box(FL_NO_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color(FL_BACKGROUND_COLOR);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(3);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        o->when(FL_WHEN_RELEASE);
      }
      { axisBox* o = bh.ordinateBox = new axisBox(0, 45, 63, 480, "Y");
        o->box(FL_NO_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color(FL_BACKGROUND_COLOR);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(3);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        o->when(FL_WHEN_RELEASE);
      }
      new Fl_Box(0, 525, 65, 25);
      o->end();
      Fl_Group::current()->resizable(o);
    }
    { Fl_Group* o = new Fl_Group(0, 560, 800, 35);
      bh.printButton = new Fl_Button(600, 565, 80, 25, "print");
      bh.saveButton = new Fl_Button(510, 565, 80, 25, "save");
      { Fl_Box* o = new Fl_Box(690, 560, 100, 35);
        o->box(FL_THIN_DOWN_BOX);
      }
      { Fl_Return_Button* o = bh.computeButton = new Fl_Return_Button(695, 565, 90, 25, "compute");
        o->callback((Fl_Callback*)computebivhist_cb, (void*)(&bh));
      }
      { Fl_Button* o = bh.dismissButton = new Fl_Button(65, 565, 70, 25, "dismiss");
        o->callback((Fl_Callback*)dismissbutton_cb, (void*)(&bh));
      }
      { Fl_Box* o = new Fl_Box(135, 560, 375, 35);
        Fl_Group::current()->resizable(o);
      }
      new Fl_Box(0, 560, 65, 35);
      new Fl_Box(790, 560, 10, 35);
      o->end();
    }
    { Fl_Group* o = new Fl_Group(690, 0, 110, 525);
      { Fl_Group* o = new Fl_Group(690, 45, 92, 165, "region");
        o->box(FL_ENGRAVED_BOX);
        { Fl_Group* o = new Fl_Group(695, 55, 80, 60);
          { Fl_Button* o = bh.selectRegionButton = new Fl_Button(695, 55, 80, 25, "select");
            o->type(102);
            o->value(1);
          }
          { Fl_Button* o = bh.clearRegionButton = new Fl_Button(695, 90, 80, 25, "clear");
            o->type(102);
          }
          o->end();
        }
        { Fl_Choice* o = bh.regioncolourChoice = new Fl_Choice(695, 140, 80, 25, "colour:");
          o->down_box(FL_BORDER_BOX);
          o->align(FL_ALIGN_TOP);
          o->menu(menu_bh);
        }
        bh.clearAllRegionsButton = new Fl_Button(695, 175, 80, 25, "clear all");
        o->end();
      }
      { Fl_Group* o = new Fl_Group(690, 235, 92, 115, "zoom");
        o->box(FL_ENGRAVED_BOX);
        { Fl_Button* o = bh.zoominButton = new Fl_Button(695, 245, 80, 25, "enlarge");
          o->callback((Fl_Callback*)zoominbutton_cb, (void*)(&bh));
        }
        { Fl_Button* o = bh.zoomoutButton = new Fl_Button(695, 280, 80, 25, "shrink");
          o->callback((Fl_Callback*)zoomoutbutton_cb, (void*)(&bh));
        }
        { Fl_Button* o = bh.resetzoomButton = new Fl_Button(695, 315, 80, 25, "reset");
          o->callback((Fl_Callback*)resetbutton_cb, (void*)(&bh));
        }
        o->end();
      }
      { Fl_Group* o = new Fl_Group(690, 465, 95, 60, "pen width");
        o->box(FL_ENGRAVED_BOX);
        { Fl_Roller* o = bh.penRadiusRoller = new Fl_Roller(695, 470, 85, 25);
          o->type(1);
          o->minimum(1);
          o->maximum(40);
          o->step(1);
          o->value(1);
          o->callback((Fl_Callback*)setpenwidth_cb, (void*)(&bh));
          o->align(FL_ALIGN_TOP);
        }
        { Fl_Value_Output* o = bh.penWidthValue = new Fl_Value_Output(695, 495, 85, 25);
          o->minimum(1);
          o->maximum(40);
          o->step(1);
          o->value(1);
        }
        o->end();
      }
      { Fl_Group* o = new Fl_Group(690, 385, 95, 60, "transparency");
        o->box(FL_ENGRAVED_BOX);
        { Fl_Roller* o = bh.transparencyRoller = new Fl_Roller(695, 390, 85, 25);
          o->type(1);
          o->step(0.05);
          o->callback((Fl_Callback*)settransparency_cb, (void*)(&bh));
          o->align(FL_ALIGN_TOP);
        }
        { Fl_Value_Output* o = bh.transparencyValue = new Fl_Value_Output(695, 415, 85, 25);
          o->step(0.05);
        }
        o->end();
      }
      new Fl_Box(690, 0, 110, 45);
      new Fl_Box(690, 210, 90, 25);
      { Fl_Box* o = new Fl_Box(690, 350, 90, 35);
        Fl_Group::current()->resizable(o);
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(0, 5, 685, 35);
      { Fl_Group* o = new Fl_Group(150, 5, 150, 35);
        { Fl_Group* o = new Fl_Group(150, 5, 150, 35, "vs.");
          o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
          { Fl_Input* o = bh.Xinput = new Fl_Input(170, 10, 35, 25, "X:");
            o->type(2);
          }
          { Fl_Input* o = bh.Yinput = new Fl_Input(260, 10, 35, 25, "Y:");
            o->type(2);
          }
          o->end();
        }
        { Fl_Box* o = new Fl_Box(150, 5, 150, 35, "Components:");
          o->box(FL_ENGRAVED_FRAME);
          o->align(FL_ALIGN_LEFT);
        }
        o->end();
      }
      { Fl_Output* o = bh.positionOutput = new Fl_Output(460, 5, 225, 35, "Position:");
        o->box(FL_ENGRAVED_BOX);
        o->color(FL_BACKGROUND_COLOR);
      }
      new Fl_Box(0, 5, 150, 35);
      { Fl_Box* o = new Fl_Box(300, 5, 160, 35);
        Fl_Group::current()->resizable(o);
      }
      o->end();
    }
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef bivdlg_hxx
#define bivdlg_hxx
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "bivHist.hxx"
#include <FL/Fl_Group.H>
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Return_Button.H>
extern void computebivhist_cb(Fl_Return_Button*, bivhist*);
extern void dismissbutton_cb(Fl_Button*, bivhist*);
#include <FL/Fl_Choice.H>
extern void zoominbutton_cb(Fl_Button*, bivhist*);
extern void zoomoutbutton_cb(Fl_Button*, bivhist*);
extern void resetbutton_cb(Fl_Button*, bivhist*);
#include <FL/Fl_Roller.H>
extern void setpenwidth_cb(Fl_Roller*, bivhist*);
#include <FL/Fl_Value_Output.H>
extern void settransparency_cb(Fl_Roller*, bivhist*);
#include <FL/Fl_Input.H>
#include <FL/Fl_Output.H>
Fl_Window* bivhist_panel(bivhist &bh);
extern Fl_Menu_Item menu_bh[];
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "progress.hxx"

Fl_Window* progress_panel(progress &p) {
  Fl_Window* w;
  { Fl_Window* o = p.progressWindow = new Fl_Window(300, 100, "Progress Indicator");
    w = o;
    { Fl_Slider* o = p.progressSlider = new Fl_Slider(25, 25, 255, 25, "Progress");
      o->type(3);
      o->color((Fl_Color)174);
      o->selection_color((Fl_Color)230);
      o->maximum(100);
      o->align(FL_ALIGN_TOP);
    }
    { Fl_Return_Button* o = new Fl_Return_Button(195, 60, 85, 25, "Dismiss");
      o->callback((Fl_Callback*)okbutton_cb, (void*)(&p));
    }
    o->end();
    o->resizable(o);
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef progress_hxx
#define progress_hxx
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "progressInfo.hxx"
#include <FL/Fl_Slider.H>
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, progress *);
Fl_Window* progress_panel(progress &p);
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "arbitrary.hxx"

Fl_Menu_Item menu_ri[] = {
 {"BIL", 0,  0, 0, 0, 0, 0, 14, 56},
 {"BIP", 0,  0, 0, 0, 0, 0, 14, 56},
 {"BSQ", 0,  0, 0, 0, 0, 0, 14, 56},
 {0}
};

Fl_Menu_Item menu_ri1[] = {
 {"Uchar", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Short", 0,  0, 0, 0, 0, 0, 14, 56},
 {"UShort", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Int", 0,  0, 0, 0, 0, 0, 14, 56},
 {"UInt", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Long", 0,  0, 0, 0, 0, 0, 14, 56},
 {"ULong", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Float", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Double", 0,  0, 0, 0, 0, 0, 14, 56},
 {0}
};

Fl_Menu_Item menu_ri2[] = {
 {"Default", 0,  0, 0, 0, 0, 0, 14, 56},
 {"MSB", 0,  0, 0, 0, 0, 0, 14, 56},
 {"LSB", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Guess", 0,  0, 0, 0, 0, 0, 14, 56},
 {0}
};

Fl_Window* rawimage_panel(rawimage &ri) {
  Fl_Window* w;
  { Fl_Window* o = ri.rawimageWindow = new Fl_Window(550, 284, "Unknown image format");
    w = o;
    { Fl_Group* o = new Fl_Group(12, 105, 258, 51, "Dimensions");
      o->box(FL_ENGRAVED_FRAME);
      { Fl_Int_Input* o = ri.xInput = new Fl_Int_Input(40, 117, 60, 30, "X:");
        o->type(2);
        o->box(FL_DOWN_BOX);
        o->color(FL_BACKGROUND2_COLOR);
        o->selection_color(FL_SELECTION_COLOR);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)xinput_cb, (void*)(&ri));
        o->align(FL_ALIGN_LEFT);
        o->when(FL_WHEN_RELEASE);
      }
      { Fl_Int_Input* o = ri.yInput = new Fl_Int_Input(120, 117, 60, 30, "Y:");
        o->type(2);
        o->box(FL_DOWN_BOX);
        o->color(FL_BACKGROUND2_COLOR);
        o->selection_color(FL_SELECTION_COLOR);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)yinput_cb, (void*)(&ri));
        o->align(FL_ALIGN_LEFT);
        o->when(FL_WHEN_RELEASE);
      }
      { Fl_Int_Input* o = ri.zInput = new Fl_Int_Input(200, 117, 60, 30, "Z:");
        o->type(2);
        o->box(FL_DOWN_BOX);
        o->color(FL_BACKGROUND2_COLOR);
        o->selection_color(FL_SELECTION_COLOR);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)zinput_cb, (void*)(&ri));
        o->align(FL_ALIGN_LEFT);
        o->when(FL_WHEN_RELEASE);
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(11, 179, 259, 49, "Bands");
      o->box(FL_ENGRAVED_FRAME);
      { Fl_Int_Input* o = ri.nbBandsInput = new Fl_Int_Input(40, 190, 60, 28, "Nb:");
        o->type(2);
        o->box(FL_DOWN_BOX);
        o->color(FL_BACKGROUND2_COLOR);
        o->selection_color(FL_SELECTION_COLOR);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)nbband_cb, (void*)(&ri));
        o->align(FL_ALIGN_LEFT);
        o->when(FL_WHEN_RELEASE);
      }
      { Fl_Choice* o = ri.bandTypeChoice = new Fl_Choice(121, 189, 62, 28);
        o->down_box(FL_BORDER_BOX);
        o->callback((Fl_Callback*)interleave_cb, (void*)(&ri));
        o->menu(menu_ri);
      }
      ri.assignButton = new Fl_Button(200, 189, 59, 28, "Assign");
      o->end();
    }
    { Fl_Group* o = new Fl_Group(280, 105, 259, 51, "Pixel");
      o->box(FL_ENGRAVED_FRAME);
      { Fl_Choice* o = ri.pixelTypeChoice = new Fl_Choice(324, 116, 79, 29, "Type:");
        o->down_box(FL_BORDER_BOX);
        o->callback((Fl_Callback*)pixeltype_cb, (void*)(&ri));
        o->menu(menu_ri1);
      }
      { Fl_Choice* o = ri.byteOrderChoice = new Fl_Choice(453, 116, 78, 29, "Order:");
        o->down_box(FL_BORDER_BOX);
        o->callback((Fl_Callback*)byteorder_cb, (void*)(&ri));
        o->menu(menu_ri2);
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(281, 179, 258, 49, "File and header");
      o->box(FL_ENGRAVED_FRAME);
      { Fl_Int_Input* o = ri.headerSizeInput = new Fl_Int_Input(453, 190, 79, 30, "Skip:");
        o->type(2);
        o->box(FL_DOWN_BOX);
        o->color(FL_BACKGROUND2_COLOR);
        o->selection_color(FL_SELECTION_COLOR);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)headersize_cb, (void*)(&ri));
        o->align(132);
        o->when(FL_WHEN_RELEASE);
      }
      ri.filesizeOutput = new Fl_Output(325, 190, 92, 30, "Size:");
      o->end();
    }
    { Fl_Button* o = ri.cancelButton = new Fl_Button(381, 241, 75, 30, "Cancel");
      o->callback((Fl_Callback*)cancelbutton_cb, (void*)(&ri));
    }
    { Fl_Button* o = ri.OKButton = new Fl_Button(464, 241, 75, 30, "Try");
      o->callback((Fl_Callback*)okbutton_cb, (void*)(&ri));
    }
    { Fl_Button* o = ri.helpButton = new Fl_Button(282, 241, 75, 30, "Help");
      o->callback((Fl_Callback*)helpbutton_cb, (void*)(&ri));
    }
    { Fl_Button* o = ri.computeHeaderButton = new Fl_Button(11, 242, 119, 30, "Compute header");
      o->callback((Fl_Callback*)computeskip_cb, (void*)(&ri));
    }
    { Fl_Output* o = ri.bannerOutput = new Fl_Output(13, 37, 525, 43);
      o->type(12);
      o->box(FL_ENGRAVED_BOX);
      o->color((Fl_Color)93);
      o->selection_color(FL_DARK1);
      o->textfont(3);
      o->value("Sample text\nSample text");
    }
    { Fl_Box* o = ri.titleBox = new Fl_Box(18, 5, 516, 28, "File format not recognized");
      o->labelfont(1);
      o->labelsize(16);
      o->labelcolor((Fl_Color)1);
    }
    o->set_non_modal();
    o->end();
  }
  return w;
}

void make_window() {
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef arbitrary_hxx
#define arbitrary_hxx
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "rawImage.hxx"
#include <FL/Fl_Group.H>
extern void xinput_cb(Fl_Int_Input*, rawimage*);
extern void yinput_cb(Fl_Int_Input*, rawimage*);
extern void zinput_cb(Fl_Int_Input*, rawimage*);
extern void nbband_cb(Fl_Int_Input*, rawimage*);
#include <FL/Fl_Choice.H>
extern void interleave_cb(Fl_Choice*, rawimage*);
#include <FL/Fl_Button.H>
extern void pixeltype_cb(Fl_Choice*, rawimage*);
extern void byteorder_cb(Fl_Choice*, rawimage*);
extern void headersize_cb(Fl_Int_Input*, rawimage*);
#include <FL/Fl_Output.H>
extern void cancelbutton_cb(Fl_Button*, rawimage*);
extern void okbutton_cb(Fl_Button*, rawimage*);
extern void helpbutton_cb(Fl_Button*, rawimage*);
extern void computeskip_cb(Fl_Button*, rawimage*);
#include <FL/Fl_Box.H>
Fl_Window* rawimage_panel(rawimage &ri);
extern Fl_Menu_Item menu_ri[];
extern Fl_Menu_Item menu_ri1[];
extern Fl_Menu_Item menu_ri2[];
void make_window();
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "annotatedlg.hxx"

Fl_Menu_Item menu_anpp[] = {
 {"Helvetica", 0,  0, 0, 4, 0, 0, 14, 56},
 {"Helv.Bold", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Helv.Italic", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Helv.Bold.Ital", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Courier", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Courier Bold", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Courier Ital", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Cour.Bold.Ital.", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Times", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Times Bold", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Times.Bld.Ital.", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Symbol", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Screen", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Screen Bold", 0,  0, 0, 0, 0, 0, 14, 56},
 {0}
};

Fl_Menu_Item menu_anpp1[] = {
 {"black", 0,  0, 0, 0, 0, 0, 14, 56},
 {"red", 0,  0, 0, 0, 0, 0, 14, 56},
 {"green", 0,  0, 0, 0, 0, 0, 14, 56},
 {"yellow", 0,  0, 0, 0, 0, 0, 14, 56},
 {"blue", 0,  0, 0, 0, 0, 0, 14, 56},
 {"magenta", 0,  0, 0, 0, 0, 0, 14, 56},
 {"cyan", 0,  0, 0, 0, 0, 0, 14, 56},
 {"white", 0,  0, 0, 0, 0, 0, 14, 56},
 {0}
};

Fl_Window* annotatept_panel(annotatept &anpp) {
  Fl_Window* w;
  { Fl_Window* o = anpp.annotateWindow = new Fl_Window(451, 317, "Annotate point");
    w = o;
    o->box(FL_ENGRAVED_BOX);
    { Fl_Group* o = new Fl_Group(15, 15, 455, 65);
      { Fl_Input* o = anpp.annotateInput = new Fl_Input(125, 15, 310, 60, "Annotation:");
        o->tooltip("Text to appear next to point");
        o->type(4);
        o->color((Fl_Color)43);
        o->selection_color((Fl_Color)143);
        o->labelfont(7);
        o->callback((Fl_Callback*)annotateinput_cb, (void*)(&anpp));
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(329, 239, 110, 66);
      { Fl_Box* o = new Fl_Box(349, 269, 88, 36);
        o->box(FL_THIN_DOWN_FRAME);
      }
      { Fl_Return_Button* o = anpp.OKButton = new Fl_Return_Button(353, 272, 80, 30, "OK");
        o->tooltip("Accept changes");
        o->callback((Fl_Callback*)okbutton_cb, (void*)(&anpp));
        w->hotspot(o);
      }
      o->end();
    }
    { Fl_Button* o = anpp.CancelButton = new Fl_Button(15, 270, 80, 30, "Cancel");
      o->tooltip("Close dialog -- discard changes");
      o->callback((Fl_Callback*)cancelbutton_cb, (void*)(&anpp));
      o->shortcut("^[");
    }
    { Fl_Group* o = new Fl_Group(125, 80, 125, 60, "Position:");
      o->tooltip("Position of text relative to point");
      o->box(FL_ENGRAVED_FRAME);
      o->labelfont(7);
      o->align(FL_ALIGN_LEFT);
      { Fl_Round_Button* o = new Fl_Round_Button(160, 80, 30, 30, "NW");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color(FL_DARK3);
        o->callback((Fl_Callback*)NW_cb, (void*)(&anpp));
        o->align(FL_ALIGN_LEFT);
      }
      { Fl_Round_Button* o = new Fl_Round_Button(190, 80, 30, 30, "NE");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color(FL_DARK3);
        o->callback((Fl_Callback*)NE_cb, (void*)(&anpp));
        o->align(FL_ALIGN_RIGHT);
      }
      { Fl_Round_Button* o = new Fl_Round_Button(190, 110, 30, 30, "SE");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->value(1);
        o->selection_color(FL_DARK3);
        o->callback((Fl_Callback*)SE_cb, (void*)(&anpp));
        o->align(FL_ALIGN_RIGHT);
      }
      { Fl_Round_Button* o = new Fl_Round_Button(160, 110, 30, 30, "SW");
        o->type(102);
        o->down_box(FL_DIAMOND_DOWN_BOX);
        o->selection_color(FL_DARK3);
        o->callback((Fl_Callback*)SW_cb, (void*)(&anpp));
        o->align(FL_ALIGN_LEFT);
      }
      o->end();
    }
    { Fl_Choice* o = anpp.fontChoice = new Fl_Choice(125, 145, 125, 25, "Text font:");
      o->tooltip("Text font");
      o->down_box(FL_BORDER_BOX);
      o->labelfont(7);
      o->menu(menu_anpp);
    }
    { Fl_Group* o = new Fl_Group(340, 80, 95, 60, "Distance:");
      o->tooltip("Distance point-text");
      o->box(FL_ENGRAVED_BOX);
      o->labelfont(7);
      o->align(FL_ALIGN_LEFT);
      { Fl_Roller* o = anpp.distanceRoller = new Fl_Roller(345, 85, 85, 25);
        o->type(1);
        o->minimum(5);
        o->maximum(40);
        o->step(1);
        o->value(7);
        o->callback((Fl_Callback*)setdistance_cb, (void*)(&anpp));
        o->align(FL_ALIGN_TOP);
      }
      { Fl_Value_Output* o = anpp.distanceValue = new Fl_Value_Output(345, 110, 85, 25);
        o->minimum(5);
        o->maximum(40);
        o->step(1);
        o->value(7);
      }
      o->end();
    }
    { Fl_Choice* o = anpp.fontColourChoice = new Fl_Choice(340, 145, 95, 25, "Colour:");
      o->tooltip("Text colour");
      o->down_box(FL_BORDER_BOX);
      o->labelfont(7);
      o->menu(menu_anpp1);
    }
    { Fl_Group* o = new Fl_Group(125, 185, 310, 40);
      o->tooltip("Text size");
      { Fl_Slider* o = anpp.fontSizeSlider = new Fl_Slider(125, 185, 310, 25, "Text size:");
        o->type(5);
        o->labelfont(7);
        o->minimum(5);
        o->maximum(24);
        o->step(1);
        o->value(10);
        o->align(FL_ALIGN_LEFT);
      }
      { Fl_Box* o = new Fl_Box(125, 210, 310, 15, "tiny       small      medium       large      huge");
        o->labelfont(4);
        o->labelsize(10);
        o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
      }
      o->end();
    }
    { Fl_Round_Button* o = anpp.hiddenButton = new Fl_Round_Button(125, 230, 25, 25, "Hidden:");
      o->tooltip("Hide text");
      o->down_box(FL_ROUND_DOWN_BOX);
      o->selection_color(FL_DARK3);
      o->labelfont(7);
      o->align(FL_ALIGN_LEFT);
    }
    { Fl_Value_Slider* o = anpp.pointsizeValueSlider = new Fl_Value_Slider(265, 230, 170, 25, "Point size:");
      o->tooltip("Size of point");
      o->type(1);
      o->labelfont(7);
      o->minimum(1);
      o->maximum(15);
      o->step(1);
      o->value(3);
      o->align(FL_ALIGN_LEFT);
    }
    o->set_modal();
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef annotatedlg_hxx
#define annotatedlg_hxx
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "annotatePoints.hxx"
#include <FL/Fl_Group.H>
#include <FL/Fl_Input.H>
extern void annotateinput_cb(Fl_Input*, annotatept*);
#include <FL/Fl_Box.H>
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, annotatept*);
#include <FL/Fl_Button.H>
extern void cancelbutton_cb(Fl_Button*, annotatept*);
#include <FL/Fl_Round_Button.H>
extern void NW_cb(Fl_Round_Button*, annotatept*);
extern void NE_cb(Fl_Round_Button*, annotatept*);
extern void SE_cb(Fl_Round_Button*, annotatept*);
extern void SW_cb(Fl_Round_Button*, annotatept*);
#include <FL/Fl_Choice.H>
#include <FL/Fl_Roller.H>
extern void setdistance_cb(Fl_Roller*, annotatept*);
#include <FL/Fl_Value_Output.H>
#include <FL/Fl_Slider.H>
#include <FL/Fl_Value_Slider.H>
Fl_Window* annotatept_panel(annotatept &anpp);
extern Fl_Menu_Item menu_anpp[];
extern Fl_Menu_Item menu_anpp1[];
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "toolbardlg.hxx"

#include <FL/Fl_Pixmap.H>
static const char *idata_zoom_s[] = {
"33 31 2 1",
" \ts mask c none",
".\tc #000000000000",
"                                 ",
"                                 ",
"                                 ",
"   ............                  ",
"   . .       .  . .              ",
"   .   .     .       .           ",
"   .     .   .          .        ",
"   .      ...................    ",
"   .      .  .              .    ",
"   .      .  .              .    ",
"   .      .  .              .    ",
"   ...........              .    ",
"          .                 .    ",
"    .     .    .            .    ",
"     .    .      .          .    ",
"          .        .        .    ",
"      .   .                 .    ",
"       .  .          .      .    ",
"          .            .    .    ",
"        . .              .  .    ",
"         ..                 .    ",
"          ...................    ",
"  .......                        ",
"       ..                        ",
"      ..  ....   ....   ...  ... ",
"     ..  ..  .. ..  .. ..  ..  ..",
"    ..   .    . .    . ..  ..  ..",
"   ..    .    . .    . ..  ..  ..",
"  ..     ..  .. ..  .. ..  ..  ..",
"  ....... ....   ....  ..  ..  ..",
"                                 "
};
static Fl_Pixmap image_zoom_s(idata_zoom_s);

static const char *idata_measure[] = {
"32 28 2 1",
" \ts mask c none  ",
".\tc #000000000000",
"     .               .          ",
"    .               ..          ",
"   ...             . .          ",
"   .  ....         . .          ",
"    .     ....      ..          ",
"    .         ....         .    ",
"                  ....     .    ",
"   ..                 ....  .   ",
"   . ....                 ...   ",
"    .    ....             ..    ",
"    .        ....        .      ",
"    .            ....           ",
"     .           .   ....       ",
"     .           .       ..     ",
"      .          .              ",
"      .         .               ",
"      .         .               ",
"       .        .               ",
"       .       .                ",
"       .      .       ... .     ",
"        .     .      .. . .     ",
"        .   ..       .   .      ",
"         ...         .   .      ",
"         .           .. . .     ",
"         .            ..  ..    ",
"          .                     ",
"          .                     ",
"                                "
};
static Fl_Pixmap image_measure(idata_measure);

static const char *idata_pencil[] = {
"22 22 15 1",
"  c opaque",
". c gray19",
"X c #400000",
"o c #800000",
"O c #c00000",
"+ c #cc0000",
"@ c red",
"# c #808080",
"$ c #aaaaaa",
"% c #ff8080",
"& c #c8c8c8",
"* c gainsboro",
"= c #ffc0c0",
"- c white",
"; c None",
";;;;;;;;;;;;;;;;;;o@%O",
";;;;;;;;;;;;;;;;;oO=OO",
";;;;;;;;;;;;;;;;oO=OOO",
";;;;;;;;;;;;;;;oO=OOOo",
";;;;;;;;;;;;;;oO=OOOoo",
";;;;;;;;;;;;;oO=OOOoo ",
";;;;;;;;;;;;oO=OOOoo ;",
";;;;;;;;;;;oO=OOOoo ;;",
";;;;;;;;;;oO=OOOoo ;;;",
";;;;;;;;;oO=OOOoo ;;;;",
";;;;;;;;oO=OOOoo ;;;;;",
";;;;;;;oO=OOOoo ;;;;;;",
";;;;;;oO=OOOoo ;;;;;;;",
";;;;;oO=OOOoo ;;;;;;;;",
";;;;;-&OOOoo ;;;;;;;;;",
";;;;*-*&Ooo ;;;;;;;;;;",
";;;;-*&&#o ;;;;;;;;;;;",
";;;-*&$#. ;;;;;;;;;;;;",
";;;O&$. ;;;;;;;;;;;;;;",
";;OoX ;;;;;;;;;;;;;;;;",
";;oX;;;;;;;;;;;;;;;;;;",
";;;;;;;;;;;;;;;;;;;;;;"
};
static Fl_Pixmap image_pencil(idata_pencil);

Fl_Menu_Item menu_[] = {
 {"Add points", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Select points", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Draw points", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Rm points", 0,  0, 0, 0, 0, 0, 14, 56},
 {"Remove group", 0,  0, 0, 0, 0, 0, 14, 56},
 {0}
};

static const char *idata_rotate[] = {
"32 28 2   2",
"   c gray0",
".  s mask c none",
". . . . . . . . . . . . . . . . .   . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . .     . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . .   .   . . . . . . . . . . . . ",
". . . . . . . . . . . . . .         . .   . . . . . . . . . . . ",
". . . . . . . . . . . .     . . . . . . .   . . . . . . . . . . ",
". . . . . . . . . . .   . . . . . . . . .   . . . . . . . . . . ",
". . . . . . . . . .   . . .         . .   . . . . . . . . . . . ",
". . . . . . . . . .   . .   . . .   .   . . . . . . . . . . . . ",
". . . . . . . . .   . .   . . . .     . . . . . . . . . . . . . ",
". . . . . . . . .   . .   . . . .   . . . . . . . . . . . . . . ",
". . . . . . . . .   . .   . . . . . . .         . . . . . . . . ",
". . . . . . . . .   . .   . . . . . . .   . .   . . . . . . . . ",
". . . . . . . . .   . .   . . . . . . .   . .   . . . . . . . . ",
". . . . . . . . . .   . .   . . . . .   . .   . . . . . . . . . ",
". . . . . . . . . .   . . .           . . .   . . . . . . . . . ",
". . . . . . . . . . .   . . . . . . . . .   . . . . . . . . . . ",
". . . . . . . . . . . .     . . . . .     . . . . . . . . . . . ",
". . . . . . . . . . . . . .           . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
".         . . . . . . . .   . . . . . . . . .   . . . . . . . . ",
".   . . .   . . . . . . .   . . . . . . . . .   . . . . . . . . ",
".   . . .   . .     . .       . . .     . .       . . .     . . ",
".   . . .   .   . .   . .   . . . . . .   . .   . . .   . .   . ",
".         . .   . .   . .   . . .         . .   . . .         . ",
".   . . .   .   . .   . .   . . .   . .   . .   . . .   . . . . ",
".   . . .   .   . .   . .   .   .   . .   . .   .   .   . .   . ",
".   . . .   . .     . . . .   . . .       . . .   . . .     . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "
};
static Fl_Pixmap image_rotate(idata_rotate);

static const char *idata_rotate1[] = {
"32 28 2   2",
"   c gray0",
".  s mask c none",
". . . . . . . . . . . . . . .   . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . .     . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . .   .   . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . .   . .         . . . . . . . . . . . . . ",
". . . . . . . . . . .   . . . . . . .     . . . . . . . . . . . ",
". . . . . . . . . . .   . . . . . . . . .   . . . . . . . . . . ",
". . . . . . . . . . . .   . .         . . .   . . . . . . . . . ",
". . . . . . . . . . . . .   .   . . .   . .   . . . . . . . . . ",
". . . . . . . . . . . . . .     . . . .   . .   . . . . . . . . ",
". . . . . . . . . . . . . . .   . . . .   . .   . . . . . . . . ",
". . . . . . . . .         . . . . . . .   . .   . . . . . . . . ",
". . . . . . . . .   . .   . . . . . . .   . .   . . . . . . . . ",
". . . . . . . . .   . .   . . . . . . .   . .   . . . . . . . . ",
". . . . . . . . . .   . .   . . . . .   . .   . . . . . . . . . ",
". . . . . . . . . .   . . .           . . .   . . . . . . . . . ",
". . . . . . . . . . .   . . . . . . . . .   . . . . . . . . . . ",
". . . . . . . . . . . .     . . . . .     . . . . . . . . . . . ",
". . . . . . . . . . . . . .           . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
".         . . . . . . . .   . . . . . . . . .   . . . . . . . . ",
".   . . .   . . . . . . .   . . . . . . . . .   . . . . . . . . ",
".   . . .   . .     . .       . . .     . .       . . .     . . ",
".   . . .   .   . .   . .   . . . . . .   . .   . . .   . .   . ",
".         . .   . .   . .   . . .         . .   . . .         . ",
".   . . .   .   . .   . .   . . .   . .   . .   . . .   . . . . ",
".   . . .   .   . .   . .   .   .   . .   . .   .   .   . .   . ",
".   . . .   . .     . . . .   . . .       . . .   . . .     . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "
};
static Fl_Pixmap image_rotate1(idata_rotate1);

static const char *idata_flipv[] = {
"32 28 2   2",
"   c gray0",
".  s mask c none",
". . . . . . . . . . . . . . .   . . . . . . . . . . . . . . . . ",
". . . . . . . .       . . . . . . . . .       . . . . . . . . . ",
". . . . . . .   . . .   . . .   . . .   . . .   . . . . . . . . ",
". . . . . .   . . . . .   . . . . .   . . . . .   . . . . . . . ",
". . . . . .   . . . . .   . .   . .   . . . . .   . . . . . . . ",
". . . . . .   . . . . .   . . . . .   . . . . .   . . . . . . . ",
". . . . . . .   . . .   . . .   . . .   . . .   . . . . . . . . ",
". . . . . . . .   .   . . . . . . . . .   .   . . . . . . . . . ",
". . . . . . . .   .   . . . .   . . . .   .   . . . . . . . . . ",
". . . . .       . . .       . . .       . . .       . . . . . . ",
". . . .   . . . . . . . . .       . . . . . . . . .   . . . . . ",
". . .   . .     . . . .     . . .     . . . . .   . .   . . . . ",
". .   . .   .   . . .   . .       . .   . . .   .   . .   . . . ",
". .   .   . .   . . .   . . .   . . .   . . .   . .   .   . . . ",
". .     . .   . . . . .   . . . . .   . . . . .   . .     . . . ",
". . . . . .   . . . . .   . .   . .   . . . . .   . . . . . . . ",
". . . . .   . . . . . . .   . . .   . . . . . . .   . . . . . . ",
". . . . .   . . . . . . .   .   .   . . . . . . .   . . . . . . ",
". . . .   . . . . . . . . .   .   . . . . . . . . .   . . . . . ",
". . . .         .   .                   .   .         . . . . . ",
". . . . . . .   .   .   . . . . . . .   .   .   . . . . . . . . ",
". . . . . . .   .   .   . . .   . . .   .   .   . . . . . . . . ",
". . . . . . .   .   .   . . . . . . .   .   .   . . . . . . . . ",
". . . . . . .   .   .   . . .   . . .   .   .   . . . . . . . . ",
". . . . . . .   .   .   . . . . . . .   .   .   . . . . . . . . ",
". . . . . . .   .   .   . . .   . . .   .   .   . . . . . . . . ",
". . . . . . .           . . . . . . .           . . . . . . . . ",
". . . . . . . . . . . . . . .   . . . . . . . . . . . . . . . . "
};
static Fl_Pixmap image_flipv(idata_flipv);

static const char *idata_fliph[] = {
"32 28 2   2",
"   c gray0",
".  s mask c none",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . .   . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . .   . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . .   .   . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . .   .   . . . . . . . . . .   . . . . . . . ",
". . . . . . . . . .   . . .   . . . . . . . .   . . . . . . . . ",
". . . . . . . . . .   . . .   . . . . . . .         . . . . . . ",
". . . . . . . . .   . . . . .   . . . . . . .   . .     . . . . ",
". . . . . . . . .   . . . . .   . . . . . . . .   . . .   . . . ",
". . . . . . . .   . . . . . . .   . . . . . . . . . . .   . . . ",
". . . . . . . .                   . . . . . . . . . . . .   . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . .   . . ",
". .   .   .   .   .   .   .   .   .   .   .   . . . . . .   . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . .   . . ",
". . . . . . . .                   . . . . . . . . . . . .   . . ",
". . . . . . . .   . . . . . . .   . . . . . . . . . . .   . . . ",
". . . . . . . . .   . . . . .   . . . . . . . .   . . .   . . . ",
". . . . . . . . .   . . . . .   . . . . . . .   . .     . . . . ",
". . . . . . . . . .   . . .   . . . . . . .         . . . . . . ",
". . . . . . . . . .   . . .   . . . . . . . .   . . . . . . . . ",
". . . . . . . . . . .   .   . . . . . . . . . .   . . . . . . . ",
". . . . . . . . . . .   .   . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . .   . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . .   . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "
};
static Fl_Pixmap image_fliph(idata_fliph);

static const char *idata_hidetoolbar[] = {
"    32    32      250            2",
".. c #0c0204",
".# c #7c8664",
".a c #394219",
".b c #784618",
".c c #471d09",
".d c #bcc29c",
".e c #6c6430",
".f c #0c2224",
".g c #5c441e",
".h c #b48254",
".i c #2f2406",
".j c #786218",
".k c #2f3313",
".l c #9ca078",
".m c #662d20",
".n c #9c6634",
".o c #99835e",
".p c #4c310c",
".q c #4c5430",
".r c #76644f",
".s c #2c352f",
".t c #ece2a4",
".u c #46432a",
".v c #544440",
".w c #472e2f",
".x c #240f04",
".y c #a0936f",
".z c #b7a571",
".A c #67441c",
".B c #2c222c",
".C c #7c724f",
".D c #64724c",
".E c #333c31",
".F c #443b35",
".G c #785220",
".H c #d4a268",
".I c #4c6254",
".J c #ecf6cc",
".K c #111407",
".L c #33433c",
".M c #e7c389",
".N c #575551",
".O c #aa8858",
".P c #322d16",
".Q c #8e6436",
".R c #323c1f",
".S c #173527",
".T c #8f7450",
".U c #acb19f",
".V c #484544",
".W c #745440",
".X c #9c9280",
".Y c #6a4b1e",
".Z c #374c3a",
".0 c #9ea08c",
".1 c #281906",
".2 c #3c3d2f",
".3 c #66645a",
".4 c #8c966c",
".5 c #503a10",
".6 c #1f2508",
".7 c #c4b27c",
".8 c #8e5d26",
".9 c #798476",
"#. c #b49450",
"## c #3c3511",
"#a c #988270",
"#b c #593c38",
"#c c #391909",
"#d c #242420",
"#e c #46280a",
"#f c #5a4b20",
"#g c #643a08",
"#h c #77756f",
"#i c #0e1b0a",
"#j c #e4d294",
"#k c #3c2514",
"#l c #78643e",
"#m c #6a5429",
"#n c #3c3535",
"#o c #484a38",
"#p c #543431",
"#q c #f4f2dc",
"#r c #a2a794",
"#s c #878471",
"#t c #cc9654",
"#u c #9e7940",
"#v c #583414",
"#w c #906e4c",
"#x c #644440",
"#y c #745b2f",
"#z c #666c60",
"#A c #160504",
"#B c #49544f",
"#C c #c4a478",
"#D c #664530",
"#E c #302d27",
"#F c #313c3e",
"#G c #473e49",
"#H c #d9b577",
"#I c #3c453b",
"#J c #695354",
"#K c #e4d2c4",
"#L c #84643d",
"#M c #695c36",
"#N c #d4deac",
"#O c #2f2417",
"#P c #483120",
"#Q c #3c2b0b",
"#R c #936f40",
"#S c #291e07",
"#T c #b6946a",
"#U c #562824",
"#V c #303420",
"#W c #7a6b56",
"#X c #483634",
"#Y c #fbfbc3",
"#Z c #a88464",
"#0 c #4b4c49",
"#1 c #694c2f",
"#2 c #3b4b49",
"#3 c #616b44",
"#4 c #742d1f",
"#5 c #343431",
"#6 c #797d5c",
"#7 c #4c3d34",
"#8 c #dcc294",
"#9 c #8c5e5c",
"a. c #7c3927",
"a# c #f4d8b4",
"aa c #81453c",
"ab c #c0b29c",
"ac c #d7b98f",
"ad c #e6e3cc",
"ae c #f4d29c",
"af c #a9977c",
"ag c #b07848",
"ah c #6c7e64",
"ai c #8c7a74",
"aj c #d4c2ac",
"ak c #d4aa6c",
"al c #1c3e2c",
"am c #b48e64",
"an c #5a6b5e",
"ao c #787e70",
"ap c #fcecaf",
"aq c #c7ad77",
"ar c #c4bea4",
"as c #683828",
"at c #745e3c",
"au c #6c7567",
"av c #845214",
"aw c #846e51",
"ax c #6c4b3f",
"ay c #645e44",
"az c #ecdeb4",
"aA c #eceebc",
"aB c #b7a989",
"aC c #e4ba84",
"aD c #a16f3f",
"aE c #5a4c42",
"aF c #595b53",
"aG c #917d5c",
"aH c #202c08",
"aI c #998c71",
"aJ c #202b23",
"aK c #ecdea1",
"aL c #fcfdd9",
"aM c #b79c6f",
"aN c #a48b6c",
"aO c #ececc4",
"aP c #dcceb4",
"aQ c #8c8258",
"aR c #ac9f74",
"aS c #847654",
"aT c #fcf4bf",
"aU c #243524",
"aV c #aca18c",
"aW c #5c3a14",
"aX c #1c1b0a",
"aY c #aca68e",
"aZ c #5c5e34",
"a0 c #170c05",
"a1 c #f8dc98",
"a2 c #84622c",
"a3 c #340e04",
"a4 c #cc9e70",
"a5 c #d4d8c8",
"a6 c #0b0d04",
"a7 c #696549",
"a8 c #607368",
"a9 c #3c3d1c",
"b. c #482820",
"b# c #695636",
"ba c #845c2c",
"bb c #3c2c2f",
"bc c #ccb694",
"bd c #e4ae7c",
"be c #847d77",
"bf c #c4ae8c",
"bg c #a49a68",
"bh c #8f6a3f",
"bi c #999a81",
"bj c #341e0d",
"bk c #a07e50",
"bl c #c48e54",
"bm c #84664c",
"bn c #3c2428",
"bo c #1c1404",
"bp c #8c9a8c",
"bq c #6c6e44",
"br c #fceac4",
"bs c #846a6c",
"bt c #ac9a6c",
"bu c #744e1c",
"bv c #44220c",
"bw c #6c322c",
"bx c #948a64",
"by c #49360f",
"bz c #bcaa74",
"bA c #5c625c",
"bB c #e4ca7c",
"bC c #7c8a84",
"bD c #7c6a44",
"bE c #485a4c",
"bF c #d4be94",
"bG c #ac7e54",
"bH c #745e5c",
"bI c #3a432b",
"bJ c #56442e",
"bK c #454439",
"bL c #49313f",
"bM c #79745e",
"bN c #775531",
"bO c #2c1a1c",
"bP c #523b20",
"bQ c #594c31",
"bR c #6c6c70",
"bS c #888c80",
"bT c #644c50",
"bU c #47361f",
"bV c #c4ba8c",
"bW c #846a34",
"bX c #74322c",
"bY c #dccaa0",
"bZ c #fcdeb4",
"b0 c #4c523f",
"b1 c #9c9694",
"b2 c #3c3d40",
"b3 c #3c351f",
"af#X.2.2#0.saJb0#o.R.k.Ra9.k###o.u#V#V.E.P.sbI.R.E.Z.R#oa8.F#O#p",
"#Qbo#5#BaJ.PbI.q.kaH.k#i#Q.i#A##.P.Pa6.P.E.KbIbI.P.q.a.#bS#Fa0#b",
"bJ.F#d.E#E.s.u.ia0##.e#MbtbtbtaRaG#s.X#r.Ua5.0a5ad.daObian.L#E#J",
"b3#0#IaJ#0.FaE#Q#e#l#Zbx.zaMbD.r#KadaVbeb1be#s.0#qaLaz.0a8#F#d#7",
"#O.V#B.saFaX.1#c.g#TacbZbraT.o#Majab.N.V#haF.V#zadaLaL.la8.Lb2.F",
"#X#G#F.L#oaX##.eaRazaK#Yapapbz.obxbM#7#0#5aE.6.kbiaO#Y#3#z#2aF#P",
"#b#n#F.E.Z.k#f.ebg#j.t#Y#Yap.zbtaRbM.P.R.2.s.Z.P#3aLaA.l.9#F#Gbn",
".w#5#0.La6##.e#..Map#Y#YaTa1btaQ.lay#I.3#o#I.kaU.k.J#N.4au#5#X#p",
"bL#5#FaFa6###laMaeapaTapapaq.7btbiay#zan.L#z#IbI.6#YaA#6#h#Ebb#x",
"bL#G#G#IaXbPaW.oaMaCa1bBbdakbW.TbxbC.9#F.L#FaH.k#Saz#YaBbI#F#5#b",
"bL#G#naXbo.PbxaG#TbW.j.j.8#g.AbN#r.0.Z.EaUbI.2bQ.1azaTaw.R.s.B#J",
"bn.B#I#VaX.k.xbj.i.5#f#m.Abu.Y#mbFara7#o.kaVbYbY#mbFbYbxau.s#Ibs",
"bT.V#5#ia6b3.1bj#Q.x##.1#e#m#laSaBayb#.oaL#8#C.o.1.obV.y.EaJ.NbH",
"bbb2aJbI.UbM#V#A...1#Abo#Q.1.Pbyabbra#aqa2bu.Obh#Law.C#raobC#B#X",
"bT.3aJ#i.lao.K#S#7#KaPaV.1bobUa7aG#m.Y.c.ca3.Q.Y.g#Qa9aQ.9an#d.w",
".w#0bIal.D#6#oa0a0bj#Wa0.1bQ#M#W#1.p.T.Q#c.G#u#y.o#Q#O.0.9#2.3ai",
"#k#nbIaH#3.abQ.P#Aa3.v#1aGataIaNbx.C.i.p.oaMat#maI.6.PbpbpaJ#Bbb",
"#b.F.RaH.abqa7#QbP#1#l#C#T.O.Obfafbob3.Pboaybx#s#W.K#0.U.9.sb2bb",
"#b#7#VaH.aaZaIb#.T.T.O.M.HaC.Obcbx#s#dbI.K#EbR.u#dbo#d#rbp.L#Ibb",
"#b.V#IaH.6a9bg.Y.T#CaC.Ma1avbha#bM#z#B#2.L.f#I#i#S#o#Ebibp.L#5bO",
"#p#7bK.RaH.6#M#kbNam#H.H#t.n.bataVbR#2.f#F#F.s#5#db3.FaIa8#B#z.v",
".w#E.EaU.ZaX.iby.A.A#Ragavba#Raf.XaF#2#F#2.sa6.F.vbPbP.3#z#BbAaE",
"bL#5.L.LbI.k.1#P#Dbv#g.G.G.8atbJ#sbS#IaJ#5.B.FaEbJbPbP#aaF#B.s.F",
".v#F.Z.LalbI#E.x#1.A.b.Aa2atbJ#P#6#5bob0#XbobPbP#D#1#vaw#oan#IaE",
"#7.L#2.San.Z#5#Absbm.Ga2.oac.o#sbM#5bK.2.ibj.g.A.YaW.A#WaFau#E.v",
".VaJal.Sal.ZaUa6#lbm#u#.#u#ebQ##an#B#i#I.1.i.A#m.A.Y#laGbebR#n#p",
"#XaX.L.IbE.S.E.2#Oaw#H#..8.b.5#Sa7.E#0a9.1by.Aba#Ra2#yaSaobRb2bn",
"bLbbb2bA#F#5b2#X#A#b#Za4bl.h#R#1.r#W#Oa0a3.Q.n.b.8aDbh.oana8#0bQ",
"#p#JbL#0#5aF#n#5bO#c.p#Tbd.ha4#ZaIbO#k.WaDbGagaDaDbaa2aRah.Zal#V",
"bb#0.saU.Z.ZaU.s.EaJ.6#f#y#Rbf#a.raV.Caf.ybkbk#.aMaN.yaY.9#V.2#S",
"#P.1#o#obI#I#o#F#0.2#Vbybv.p#eb##a.r#a#1.W.Q#wbh#waNaVaIbJ#k#P#U",
"#U#cax.WbvbJ#x#PbJ#Ub.aW.ma..mbw#UaaaabX#4#4#4a.as.c#U#9.maa.mbX"
};
static Fl_Pixmap image_hidetoolbar(idata_hidetoolbar);

Fl_Window* toolbar_panel(toolbar &tb) {
  Fl_Window* w;
  { Fl_Window* o = tb.toolbarWindow = new Fl_Window(540, 60, "Toolbar");
    w = o;
    o->box(FL_ENGRAVED_BOX);
    { Fl_Group* o = new Fl_Group(5, 5, 270, 50);
      o->box(FL_ENGRAVED_FRAME);
      o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
      { tipButton* o = new tipButton(10, 10, 40, 40);
        o->tooltip("Zoom mode, <Shift> toggles constrained/unconstrained zoom");
        o->type(102);
        o->box(FL_UP_BOX);
        o->value(1);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color((Fl_Color)42);
        o->image(image_zoom_s);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(10);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)setzoommode_cb, (void*)(&tb));
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
      }
      { tipButton* o = new tipButton(55, 10, 40, 40);
        o->tooltip("Measurement mode, shortcut = <Control>");
        o->type(102);
        o->box(FL_UP_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color((Fl_Color)41);
        o->image(image_measure);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(10);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)setmeasuremode_cb, (void*)(&tb));
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
      }
      { Fl_Choice* o = new Fl_Choice(140, 10, 130, 40);
        o->tooltip("Point modes");
        o->down_box(FL_BORDER_BOX);
        o->image(image_pencil);
        o->callback((Fl_Callback*)setpointmode_cb, (void*)(&tb));
        o->when(FL_WHEN_RELEASE_ALWAYS);
        o->menu(menu_);
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(280, 5, 175, 50);
      o->box(FL_ENGRAVED_FRAME);
      o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
      { tipButton* o = new tipButton(285, 10, 40, 40);
        o->tooltip("Rotate 90 degree clockwise");
        o->box(FL_UP_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color(FL_BACKGROUND_COLOR);
        o->image(image_rotate);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(10);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)local_rotate90right_cb);
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
      }
      { tipButton* o = new tipButton(325, 10, 45, 40);
        o->tooltip("Rotate 90 degree counter-clockwise");
        o->box(FL_UP_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color(FL_BACKGROUND_COLOR);
        o->image(image_rotate1);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(10);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)local_rotate90left_cb);
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
      }
      { tipButton* o = new tipButton(370, 10, 40, 40);
        o->tooltip("Flip image horizontally");
        o->box(FL_UP_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color(FL_BACKGROUND_COLOR);
        o->image(image_flipv);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(10);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)local_flipv_cb);
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
      }
      { tipButton* o = new tipButton(410, 10, 40, 40);
        o->tooltip("Flip image vertically");
        o->box(FL_UP_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color(FL_BACKGROUND_COLOR);
        o->image(image_fliph);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(10);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)local_fliph_cb);
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(460, 5, 55, 50);
      o->box(FL_ENGRAVED_FRAME);
      o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
      { tipButton* o = new tipButton(465, 10, 45, 40);
        o->tooltip("Hide in shadow");
        o->box(FL_UP_BOX);
        o->color(FL_BACKGROUND_COLOR);
        o->selection_color(FL_BACKGROUND_COLOR);
        o->image(image_hidetoolbar);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(10);
        o->labelcolor(FL_BLACK);
        o->callback((Fl_Callback*)hidetoolbar_cb, (void*)(&tb));
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
      }
      o->end();
    }
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef toolbardlg_hxx
#define toolbardlg_hxx
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "toolbar.hxx"
#include <FL/Fl_Group.H>
extern void setzoommode_cb(tipButton*, toolbar*);
extern void setmeasuremode_cb(tipButton*, toolbar*);
#include <FL/Fl_Choice.H>
extern void setpointmode_cb(Fl_Choice*, toolbar*);
extern void local_rotate90right_cb(tipButton*, void*);
extern void local_rotate90left_cb(tipButton*, void*);
extern void local_flipv_cb(tipButton*, void*);
extern void local_fliph_cb(tipButton*, void*);
extern void hidetoolbar_cb(tipButton*, toolbar*);
Fl_Window* toolbar_panel(toolbar &tb);
extern Fl_Menu_Item menu_[];
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "transfer2.hxx"

Fl_Double_Window* RGB_transfer_panel(transferRGB &s) {
  Fl_Double_Window* w;
  { Fl_Double_Window* o = s.RGBtransferWindow = new Fl_Double_Window(658, 517, "Edit transfer function");
    w = o;
    o->labeltype(FL_NORMAL_LABEL);
    o->align(FL_ALIGN_LEFT);
    { Fl_Group* o = new Fl_Group(490, 345, 160, 167);
      { Fl_Box* o = new Fl_Box(490, 345, 160, 130);
        Fl_Group::current()->resizable(o);
      }
      { Fl_Group* o = new Fl_Group(490, 475, 159, 37);
        { Fl_Group* o = new Fl_Group(550, 475, 99, 37);
          { Fl_Box* o = new Fl_Box(550, 475, 99, 37);
            o->box(FL_THIN_DOWN_FRAME);
          }
          { Fl_Return_Button* o = s.OKButton = new Fl_Return_Button(554, 479, 91, 30, "Dismiss  ");
            o->callback((Fl_Callback*)okbutton_cb, (void*)(&s));
          }
          o->end();
        }
        { Fl_Box* o = new Fl_Box(490, 475, 60, 35);
          Fl_Group::current()->resizable(o);
        }
        o->end();
      }
      o->end();
    }
    { Fl_Group* o = new Fl_Group(0, 370, 490, 140, "link");
      o->align(FL_ALIGN_RIGHT);
      { Fl_Group* o = new Fl_Group(420, 370, 70, 140);
        o->align(FL_ALIGN_RIGHT);
        { Fl_Group* o = new Fl_Group(420, 370, 50, 40);
          { Fl_Box* o = new Fl_Box(420, 380, 50, 20);
            o->box(FL_BORDER_FRAME);
            o->color(FL_FOREGROUND_COLOR);
          }
          { Fl_Box* o = new Fl_Box(420, 370, 30, 40);
            o->box(FL_FLAT_BOX);
          }
          o->end();
        }
        { Fl_Group* o = new Fl_Group(420, 420, 50, 40);
          { Fl_Box* o = new Fl_Box(420, 430, 50, 20);
            o->box(FL_BORDER_FRAME);
            o->color(FL_FOREGROUND_COLOR);
          }
          { Fl_Box* o = new Fl_Box(420, 420, 30, 40);
            o->box(FL_FLAT_BOX);
          }
          o->end();
        }
        { Fl_Group* o = new Fl_Group(420, 470, 50, 40);
          { Fl_Box* o = new Fl_Box(420, 480, 50, 19);
            o->box(FL_BORDER_FRAME);
            o->color(FL_FOREGROUND_COLOR);
          }
          { Fl_Box* o = new Fl_Box(420, 470, 30, 40);
            o->box(FL_FLAT_BOX);
          }
          o->end();
        }
        { Fl_Group* o = new Fl_Group(460, 380, 30, 120);
          { Fl_Group* o = new Fl_Group(460, 388, 30, 102);
            { Fl_Group* o = new Fl_Group(460, 388, 30, 52);
              { Fl_Box* o = new Fl_Box(469, 389, 21, 51);
                o->box(FL_BORDER_FRAME);
                o->color(FL_FOREGROUND_COLOR);
              }
              { Fl_Box* o = new Fl_Box(460, 400, 20, 30);
                o->box(FL_FLAT_BOX);
              }
              o->end();
            }
            { Fl_Group* o = new Fl_Group(460, 438, 30, 52);
              { Fl_Box* o = new Fl_Box(469, 439, 21, 51);
                o->box(FL_BORDER_FRAME);
                o->color(FL_FOREGROUND_COLOR);
              }
              { Fl_Box* o = new Fl_Box(460, 450, 20, 30);
                o->box(FL_FLAT_BOX);
              }
              o->end();
            }
            o->end();
          }
          { Fl_Round_Button* o = s.linkRButton = new Fl_Round_Button(470, 380, 20, 20);
            o->down_box(FL_ROUND_DOWN_BOX);
            o->selection_color((Fl_Color)3);
          }
          { Fl_Round_Button* o = s.linkGButton = new Fl_Round_Button(470, 430, 20, 20);
            o->down_box(FL_ROUND_DOWN_BOX);
            o->selection_color((Fl_Color)3);
          }
          { Fl_Round_Button* o = s.linkBButton = new Fl_Round_Button(470, 480, 20, 20);
            o->down_box(FL_ROUND_DOWN_BOX);
            o->selection_color((Fl_Color)3);
          }
          o->end();
        }
        o->end();
      }
      { Fl_Group* o = new Fl_Group(30, 370, 370, 140);
        { Fl_Slider* o = s.RcontrastSlider = new Fl_Slider(30, 370, 370, 20, "R cntrst");
          o->type(5);
          o->color((Fl_Color)9);
          o->labelsize(12);
          o->callback((Fl_Callback*)contrastslider_cb, (void*)(&s));
          o->align(FL_ALIGN_RIGHT);
          o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
        }
        { Fl_Slider* o = s.RbrightnessSlider = new Fl_Slider(30, 390, 370, 20, "R bright");
          o->type(5);
          o->color((Fl_Color)9);
          o->labelsize(12);
          o->callback((Fl_Callback*)brightnessslider_cb, (void*)(&s));
          o->align(FL_ALIGN_RIGHT);
          o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
        }
        { Fl_Slider* o = s.GcontrastSlider = new Fl_Slider(30, 420, 370, 20, "G cntrst");
          o->type(5);
          o->color((Fl_Color)10);
          o->labelsize(12);
          o->callback((Fl_Callback*)contrastslider_cb, (void*)(&s));
          o->align(FL_ALIGN_RIGHT);
          o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
        }
        { Fl_Slider* o = s.GbrightnessSlider = new Fl_Slider(30, 440, 370, 20, "G bright");
          o->type(5);
          o->color((Fl_Color)10);
          o->labelsize(12);
          o->callback((Fl_Callback*)brightnessslider_cb, (void*)(&s));
          o->align(FL_ALIGN_RIGHT);
          o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
        }
        { Fl_Slider* o = s.BcontrastSlider = new Fl_Slider(30, 470, 370, 20, "B cntrst");
          o->type(5);
          o->color((Fl_Color)12);
          o->labelsize(12);
          o->callback((Fl_Callback*)contrastslider_cb, (void*)(&s));
          o->align(FL_ALIGN_RIGHT);
          o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
        }
        { Fl_Slider* o = s.BbrightnessSlider = new Fl_Slider(30, 490, 370, 20, "B bright");
          o->type(5);
          o->color((Fl_Color)12);
          o->labelsize(12);
          o->callback((Fl_Callback*)brightnessslider_cb, (void*)(&s));
          o->align(FL_ALIGN_RIGHT);
          o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
        }
        o->end();
        Fl_Group::current()->resizable(o);
      }
      new Fl_Box(0, 370, 30, 140);
      o->end();
    }
    { Fl_Group* o = new Fl_Group(420, 0, 60, 370, "gamma");
      o->align(FL_ALIGN_TOP|FL_ALIGN_INSIDE);
      { Fl_Group* o = new Fl_Group(420, 20, 60, 320);
        { Fl_Slider* o = s.RgammaSlider = new Fl_Slider(420, 20, 20, 320);
          o->type(4);
          o->color((Fl_Color)9);
          o->labelsize(12);
          o->callback((Fl_Callback*)gammaslider_cb, (void*)(&s));
          o->align(FL_ALIGN_LEFT);
          o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
        }
        { Fl_Slider* o = s.GgammaSlider = new Fl_Slider(440, 20, 20, 320);
          o->type(4);
          o->color((Fl_Color)10);
          o->labelsize(12);
          o->callback((Fl_Callback*)gammaslider_cb, (void*)(&s));
          o->align(FL_ALIGN_LEFT);
          o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
        }
        { Fl_Slider* o = s.BgammaSlider = new Fl_Slider(460, 20, 20, 320);
          o->type(4);
          o->color((Fl_Color)12);
          o->labelsize(12);
          o->callback((Fl_Callback*)gammaslider_cb, (void*)(&s));
          o->align(FL_ALIGN_LEFT);
          o->when(FL_WHEN_CHANGED|FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED);
        }
        o->end();
        Fl_Group::current()->resizable(o);
      }
      new Fl_Box(420, 340, 60, 30);
      new Fl_Box(420, 0, 60, 25);
      o->end();
    }
    { Fl_Group* o = s.displayBoxGroup = new Fl_Group(0, 10, 400, 350);
      { myTransferRGBBox* o = s.RGBtransferBox = new myTransferRGBBox(30, 20, 370, 320);
        o->box(FL_ENGRAVED_BOX);
        o->color((Fl_Color)43);
        o->selection_color(FL_DARK1);
        o->labeltype(FL_NORMAL_LABEL);
        o->labelfont(0);
        o->labelsize(14);
        o->labelcolor(FL_BLACK);
        o->user_data((void*)(&s));
        o->align(FL_ALIGN_CENTER);
        o->when(FL_WHEN_RELEASE);
        Fl_Group::current()->resizable(o);
      }
      { Fl_Group* o = new Fl_Group(30, 340, 370, 20);
        { Fl_Box* o = new Fl_Box(50, 340, 330, 20, "Input data range");
          o->labelsize(12);
          Fl_Group::current()->resizable(o);
        }
        { Fl_Box* o = new Fl_Box(30, 340, 20, 20, "min");
          o->labelsize(12);
        }
        { Fl_Box* o = new Fl_Box(380, 340, 20, 20, "max");
          o->labelsize(12);
        }
        o->end();
      }
      { Fl_Group* o = new Fl_Group(0, 20, 30, 320);
        { Fl_Box* o = new Fl_Box(0, 30, 30, 300, "out val");
          o->labelsize(12);
          o->align(FL_ALIGN_WRAP);
          Fl_Group::current()->resizable(o);
        }
        { Fl_Box* o = new Fl_Box(0, 330, 30, 10, "0");
          o->labelsize(12);
        }
        { Fl_Box* o = new Fl_Box(0, 20, 30, 15, "255");
          o->labelsize(12);
        }
        o->end();
      }
      o->end();
      Fl_Group::current()->resizable(o);
    }
    { Fl_Group* o = new Fl_Group(490, 0, 160, 345);
      { Fl_Group* o = new Fl_Group(490, 20, 160, 320);
        o->box(FL_ENGRAVED_FRAME);
        { Fl_Choice* o = s.displayChoice = new Fl_Choice(500, 30, 140, 30);
          o->down_box(FL_BORDER_BOX);
          o->textsize(10);
          o->callback((Fl_Callback*)displaychoice_cb, (void*)(&s));
          o->align(FL_ALIGN_CENTER);
        }
        { Fl_Button* o = s.resetButton = new Fl_Button(500, 66, 60, 24, "reset");
          o->labelsize(12);
          o->callback((Fl_Callback*)resetbutton_cb, (void*)(&s));
        }
        { Fl_Button* o = s.normaliseButton = new Fl_Button(570, 66, 70, 24, "normalise");
          o->labelsize(12);
          o->callback((Fl_Callback*)normalisebutton_cb, (void*)(&s));
        }
        { Fl_Check_Button* o = s.applyToAllButton = new Fl_Check_Button(499, 305, 141, 20, "Apply to all images");
          o->box(FL_UP_FRAME);
          o->down_box(FL_ROUND_UP_BOX);
          o->selection_color((Fl_Color)130);
          o->labelsize(12);
          o->callback((Fl_Callback*)applytoallbutton_cb, (void*)(&s));
          o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        }
        { Fl_Group* o = new Fl_Group(540, 110, 95, 25, "Affected:");
          o->labelsize(10);
          o->align(132);
          { Fl_Button* o = s.Rselect = new Fl_Button(540, 110, 25, 25, "R");
            o->type(1);
            o->value(1);
            o->color((Fl_Color)9);
            o->selection_color((Fl_Color)1);
            o->callback((Fl_Callback*)selectchannel_cb, (void*)(&s));
          }
          { Fl_Button* o = s.Gselect = new Fl_Button(575, 110, 25, 25, "G");
            o->type(1);
            o->value(1);
            o->color((Fl_Color)10);
            o->selection_color((Fl_Color)2);
            o->callback((Fl_Callback*)selectchannel_cb, (void*)(&s));
          }
          { Fl_Button* o = s.Bselect = new Fl_Button(610, 110, 25, 25, "B");
            o->type(1);
            o->value(1);
            o->color((Fl_Color)12);
            o->selection_color((Fl_Color)4);
            o->callback((Fl_Callback*)selectchannel_cb, (void*)(&s));
          }
          o->end();
        }
        { Fl_Group* o = new Fl_Group(535, 145, 105, 150);
          { Fl_Float_Input* o = s.RgammaInput = new Fl_Float_Input(535, 145, 35, 30, "Gamma:");
            o->type(1);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)9);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)gammainput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.RtopInput = new Fl_Int_Input(535, 175, 35, 30, "Top:");
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)9);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)topinput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.RbottomInput = new Fl_Int_Input(535, 205, 35, 30, "Bottom:");
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)9);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)bottominput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.RleftInput = new Fl_Int_Input(535, 235, 35, 30, "Left:");
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)9);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)leftinput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.RrightInput = new Fl_Int_Input(535, 265, 35, 30, "Right:");
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)9);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)rightinput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          { Fl_Float_Input* o = s.GgammaInput = new Fl_Float_Input(570, 145, 35, 30);
            o->type(1);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)10);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)gammainput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.GtopInput = new Fl_Int_Input(570, 175, 35, 30);
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)10);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)topinput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.GbottomInput = new Fl_Int_Input(570, 205, 35, 30);
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)10);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)bottominput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.GleftInput = new Fl_Int_Input(570, 235, 35, 30);
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)10);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)leftinput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.GrightInput = new Fl_Int_Input(570, 265, 35, 30);
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)10);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)rightinput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          { Fl_Float_Input* o = s.BgammaInput = new Fl_Float_Input(605, 145, 35, 30);
            o->type(1);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)12);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)gammainput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.BtopInput = new Fl_Int_Input(605, 175, 35, 30);
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)12);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)topinput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.BbottomInput = new Fl_Int_Input(605, 205, 35, 30);
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)12);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)bottominput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.BleftInput = new Fl_Int_Input(605, 235, 35, 30);
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)12);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)leftinput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          { Fl_Int_Input* o = s.BrightInput = new Fl_Int_Input(605, 265, 35, 30);
            o->type(2);
            o->box(FL_DOWN_BOX);
            o->color((Fl_Color)12);
            o->selection_color(FL_SELECTION_COLOR);
            o->labeltype(FL_NORMAL_LABEL);
            o->labelfont(0);
            o->labelsize(10);
            o->labelcolor(FL_BLACK);
            o->textsize(10);
            o->callback((Fl_Callback*)rightinput_cb, (void*)(&s));
            o->align(FL_ALIGN_LEFT);
            o->when(FL_WHEN_ENTER_KEY);
            o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);
          }
          o->end();
        }
        o->end();
      }
      { Fl_Box* o = new Fl_Box(490, 340, 160, 5);
        Fl_Group::current()->resizable(o);
      }
      new Fl_Box(490, 0, 160, 20);
      o->end();
    }
    o->end();
  }
  return w;
}
                                       // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef transfer2_hxx
#define transfer2_hxx
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include "transferRGBFunction.hxx"
#include "transferRGBBox.hxx"
#include <FL/Fl_Group.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, transferRGB*);
#include <FL/Fl_Round_Button.H>
#include <FL/Fl_Slider.H>
extern void contrastslider_cb(Fl_Slider*, transferRGB*);
extern void brightnessslider_cb(Fl_Slider*, transferRGB*);
extern void gammaslider_cb(Fl_Slider*, transferRGB*);
#include <FL/Fl_Choice.H>
extern void displaychoice_cb(Fl_Choice*, transferRGB*);
#include <FL/Fl_Button.H>
extern void resetbutton_cb(Fl_Button*, transferRGB*);
extern void normalisebutton_cb(Fl_Button*, transferRGB*);
#include <FL/Fl_Check_Button.H>
extern void applytoallbutton_cb(Fl_Check_Button*, transferRGB*);
extern void selectchannel_cb(Fl_Button*, transferRGB*);
extern void gammainput_cb(Fl_Float_Input*, transferRGB*);
extern void topinput_cb(Fl_Int_Input*, transferRGB*);
extern void bottominput_cb(Fl_Int_Input*, transferRGB*);
extern void leftinput_cb(Fl_Int_Input*, transferRGB*);
extern void rightinput_cb(Fl_Int_Input*, transferRGB*);
Fl_Double_Window* RGB_transfer_panel(transferRGB &s);
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           // generated by Fast Light User Interface Designer (fluid) version 1.0104

#include "sliderdlg.hxx"

Fl_Window* slider_panel(slideinput &s) {
  Fl_Window* w;
  { Fl_Window* o = s.sliceWindow = new Fl_Window(480, 45, "Choose slice");
    w = o;
    o->box(FL_ENGRAVED_BOX);
    { Fl_Return_Button* o = new Fl_Return_Button(385, 10, 85, 25, "Dismiss");
      o->tooltip("Close window");
      o->callback((Fl_Callback*)okbutton_cb, (void*)(&s));
    }
    { Fl_Scrollbar* o = s.sliceSlider = new Fl_Scrollbar(115, 10, 260, 25);
      o->tooltip("Select slice");
      o->type(1);
      o->color((Fl_Color)40);
      o->labelcolor(FL_GRAY0);
      o->callback((Fl_Callback*)sliceslider_cb, (void*)(&s));
    }
    { Fl_Value_Input* o = s.sliceValue = new Fl_Value_Input(55, 10, 50, 25, "value:");
      o->tooltip("Drag to change");
      o->callback((Fl_Callback*)slicevalue_cb, (void*)(&s));
    }
    o->end();
  }
  return w;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               // generated by Fast Light User Interface Designer (fluid) version 1.0104

#ifndef sliderdlg_hxx
#define sliderdlg_hxx
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include "sliceSlider.hxx"
#include <FL/Fl_Return_Button.H>
extern void okbutton_cb(Fl_Return_Button*, slideinput *);
#include <FL/Fl_Scrollbar.H>
extern void sliceslider_cb(Fl_Scrollbar*, slideinput *);
#include <FL/Fl_Value_Input.H>
extern void slicevalue_cb(Fl_Value_Input*, slideinput *);
Fl_Window* slider_panel(slideinput &s);
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        