Split many surfaces intersected with intersection line

Hi all,
I get a bunch of surfaces, and they are intersected. I find that the present tool for intersect part in GH is to solve one to one intersection. how can i get all intersection line and split the surface with it?
thanks
surface are like this,

here is GH,
HEXAGON.gh (12.1 KB)

i want to get this,

Hi,

Here it is.
There are 4 surfaces on the sides that only have partial intersection, hence the Extend Curve.

HEXAGON.gh (18.1 KB)

Got it. it give me new inspiration to think about the basic logic of intersection for multiple surfaces. and i never use breo to brep before as a beginner.
Thank you very much