function  DomController( minesweeperGame,  domView)  { 
    //...установили что нужно 
 
    this ._setEvents( ) ; 
} 
 
DomController.prototype ._setEvents =  function ( )  { 
    var  that =  this ; 
    this ._domView.setLeftMouseDownEventToCell ( function ( event)  { 
        if  ( event.which  ==  1 )  { 
            that._domView.setFaceType ( "danger-face" ) ; 
        } 
    } ) ; 
    this ._domView.setLeftMouseUpEventToCell ( function ( event)  { 
        var  target =  event.target ; 
        if  ( event.which  ==  1 )  { 
            that.open ( target.dataset .x ,  target.dataset .y ) ; 
            that._domView.setFaceType ( "cool-face" ) ; 
        } 
    } ) ; 
    this ._domView.setRightDownEventToCell ( function ( event)  { 
        var  target =  event.target ; 
        if  ( event.which  ==  3 )  { 
            that.toggleFlag .apply ( that,  [ target.dataset .x ,  target.dataset .y ] ) ; 
        } 
    } ) ; 
    this ._domView.setClickEventToFace ( function ( event)  { 
        that.reset .call ( that) ; 
    } ) ; 
} ; 
 
DomView.prototype .setLeftMouseUpEventToCell  =  function ( func)  { 
    this ._field.addEventListener ( "mouseup" ,  func) ; 
} ; 
 
//Поменять смайлик как в классическом сапере 
DomView.prototype .setLeftMouseDownEventToCell  =  function ( func)  { 
    this ._field.addEventListener ( "mousedown" ,  func) ; 
} ; 
 
//Установка флажков 
DomView.prototype .setRightDownEventToCell  =  function ( func)  { 
    this ._field.addEventListener ( "mousedown" ,  func) ; 
} ; 
 
DomView.prototype .setClickEventToFace  =  function ( func)  { 
    this ._face.addEventListener ( "click" ,  func) ; 
} ; 
 
				ZnVuY3Rpb24gRG9tQ29udHJvbGxlcihtaW5lc3dlZXBlckdhbWUsIGRvbVZpZXcpIHsKICAgIC8vLi4u0YPRgdGC0LDQvdC+0LLQuNC70Lgg0YfRgtC+INC90YPQttC90L4KICAgIAogICAgdGhpcy5fc2V0RXZlbnRzKCk7Cn0KCkRvbUNvbnRyb2xsZXIucHJvdG90eXBlLl9zZXRFdmVudHMgPSBmdW5jdGlvbigpIHsKICAgIHZhciB0aGF0ID0gdGhpczsKICAgIHRoaXMuX2RvbVZpZXcuc2V0TGVmdE1vdXNlRG93bkV2ZW50VG9DZWxsKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09IDEpIHsKICAgICAgICAgICAgdGhhdC5fZG9tVmlldy5zZXRGYWNlVHlwZSgiZGFuZ2VyLWZhY2UiKTsKICAgICAgICB9CiAgICB9KTsKICAgIHRoaXMuX2RvbVZpZXcuc2V0TGVmdE1vdXNlVXBFdmVudFRvQ2VsbChmdW5jdGlvbihldmVudCkgewogICAgICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7CiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09IDEpIHsKICAgICAgICAgICAgdGhhdC5vcGVuKHRhcmdldC5kYXRhc2V0LngsIHRhcmdldC5kYXRhc2V0LnkpOwogICAgICAgICAgICB0aGF0Ll9kb21WaWV3LnNldEZhY2VUeXBlKCJjb29sLWZhY2UiKTsKICAgICAgICB9CiAgICB9KTsKICAgIHRoaXMuX2RvbVZpZXcuc2V0UmlnaHREb3duRXZlbnRUb0NlbGwoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0OwogICAgICAgIGlmIChldmVudC53aGljaCA9PSAzKSB7CiAgICAgICAgICAgIHRoYXQudG9nZ2xlRmxhZy5hcHBseSh0aGF0LCBbdGFyZ2V0LmRhdGFzZXQueCwgdGFyZ2V0LmRhdGFzZXQueV0pOwogICAgICAgIH0KICAgIH0pOwogICAgdGhpcy5fZG9tVmlldy5zZXRDbGlja0V2ZW50VG9GYWNlKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgdGhhdC5yZXNldC5jYWxsKHRoYXQpOwogICAgfSk7Cn07CgpEb21WaWV3LnByb3RvdHlwZS5zZXRMZWZ0TW91c2VVcEV2ZW50VG9DZWxsID0gZnVuY3Rpb24oZnVuYykgewogICAgdGhpcy5fZmllbGQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIGZ1bmMpOwp9OwoKLy/Qn9C+0LzQtdC90Y/RgtGMINGB0LzQsNC50LvQuNC6INC60LDQuiDQsiDQutC70LDRgdGB0LjRh9C10YHQutC+0Lwg0YHQsNC/0LXRgNC1CkRvbVZpZXcucHJvdG90eXBlLnNldExlZnRNb3VzZURvd25FdmVudFRvQ2VsbCA9IGZ1bmN0aW9uKGZ1bmMpIHsKICAgIHRoaXMuX2ZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGZ1bmMpOwp9OwoKLy/Qo9GB0YLQsNC90L7QstC60LAg0YTQu9Cw0LbQutC+0LIKRG9tVmlldy5wcm90b3R5cGUuc2V0UmlnaHREb3duRXZlbnRUb0NlbGwgPSBmdW5jdGlvbihmdW5jKSB7CiAgICB0aGlzLl9maWVsZC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBmdW5jKTsKfTsKCkRvbVZpZXcucHJvdG90eXBlLnNldENsaWNrRXZlbnRUb0ZhY2UgPSBmdW5jdGlvbihmdW5jKSB7CiAgICB0aGlzLl9mYWNlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuYyk7Cn07